#! /bin/make -f
# Makefile for zsh
# generated by buildzsh

AUX=buildzsh

SRC=builtin.c cond.c exec.c glob.c hist.c init.c jobs.c lex.c loop.c \
math.c mem.c params.c parse.c subst.c table.c text.c utils.c watch.c \
zle_bindings.c zle_hist.c zle_main.c zle_misc.c zle_move.c zle_refresh.c \
zle_tricky.c zle_utils.c zle_vi.c zle_word.c

HEADER=funcs.h zle.h zsh.h ztype.h

PROTO=builtin.pro cond.pro exec.pro glob.pro hist.pro init.pro jobs.pro \
lex.pro loop.pro math.pro mem.pro params.pro parse.pro subst.pro table.pro \
text.pro utils.pro watch.pro zle_bindings.pro zle_hist.pro zle_main.pro \
zle_misc.pro zle_move.pro zle_refresh.pro zle_tricky.pro zle_utils.pro \
zle_vi.pro zle_word.pro

OBJS=builtin.o cond.o exec.o glob.o hist.o init.o jobs.o lex.o loop.o \
math.o mem.o params.o parse.o subst.o table.o text.o utils.o watch.o \
zle_bindings.o zle_hist.o zle_main.o zle_misc.o zle_move.o zle_refresh.o \
zle_tricky.o zle_utils.o zle_vi.o zle_word.o

BINDIR=/usr/local/bin
MANDIR=/usr/local/man/man1

# Debugging flags
DFLAGS = # -DQDEBUG

# For gcc 2.3.3
#CC=gcc -fpcc-struct-return
#CFLAGS= -O2 -g -Wall -Wno-implicit -Wno-parentheses -Wno-comment $(DFLAGS)

CC=cc
CFLAGS= -O
LIBS= -ltermcap

ZSHPATH=zsh

.SUFFIXES: .c .o .pro

.c.o:
	$(CC) $(CFLAGS) $(DFLAGS) -c $<

.c.pro:
	sed -n '/\/\*\*\/$$/{N;s/^\([^(]*\).*\/\*\*\/.\(.*\)/\1 DCLPROTO((\2))/p;}' $< | sed -e 's/;/,/g' -e 's/,))$$/));/' -e 's/(({))$$/((void));/' >$@

all: $(PROTO) $(ZSHPATH)

$(ZSHPATH): $(OBJS)
	$(CC) -o $(ZSHPATH) $(OBJS) $(LIBS) $(LFLAGS)
	
tags: /tmp
	ctags *.[cy]

# I hate this next line
$(OBJS): config.h zsh.h zle.h signals.h ztype.h funcs.h

params.o: version.h

clean:
	rm -f *.o *.pro zsh core 

cleanall:
	rm -f *.o *.pro zsh core Makefile signals.h config.h

install: zsh
	install -s -m 755 zsh $(BINDIR)
	install -m 444 ../man/man1/zsh.1 $(MANDIR)
