CFLAGS = -O -I.
PARSEOBJS = y.tab.o lex.yy.o nametoval.o buildtab.o printsubs.o acttab.o
SCREENOBJS = unpack.o screenit.o frag.o log.o
CFILES = acttab.c buildtab.c ckscreentab.c frag.c log.c \
	nametoval.c printsubs.c screend.c screenit.c screenmini.c \
	screenmode.c screenstat.c screentest.c unpack.c
HFILES = screentab.h net/gw_screen.h
LFILES = screentab.l
YFILES = screentab.y
SRCS = ${CFILES} ${HFILES} ${LFILES} ${YFILES}

all: screend ckscreentab screentest screenmode screenstat screenmini

SCREENDOBJS = ${PARSEOBJS} ${SCREENOBJS} screend.o
screend: ${SCREENDOBJS}
	cc ${CFLAGS} -o screend ${SCREENDOBJS} -ll

CKOBJS = ${PARSEOBJS} ckscreentab.o
ckscreentab: ${CKOBJS}
	cc ${CFLAGS} -o ckscreentab ${CKOBJS} -ll

TESTOBJS = screentest.o printsubs.o nametoval.o
screentest: ${TESTOBJS}
	cc ${CFLAGS} -o screentest ${TESTOBJS}

screenmode: screenmode.o
	cc ${CFLAGS} -o screenmode screenmode.o

screenstat: screenstat.o
	cc ${CFLAGS} -o screenstat screenstat.o

screenmini: screenmini.o
	cc ${CFLAGS} -o screenmini screenmini.o

lex.yy.o: y.tab.h screentab.h
	cc -c lex.yy.c

lex.yy.c: screentab.l
	lex screentab.l

y.tab.c: screentab.y screentab.h
	yacc -vd screentab.y

y.tab.h: screentab.y screentab.h
	yacc -vd screentab.y

clean:
	rm -f *.o *.BAK *.CKP core a.out
	rm -f lex.yy.c y.tab.c y.tab.h y.output
	rm -f screend ckscreentab screentest screenmode screenstat screenmini
	rm -f screend.tar screend.tar.Z

acttab.o: screentab.h
buildtab.o: screentab.h
printsubs.o: screentab.h
screend.o: screentab.h
screenit.o: screentab.h
unpack.o: screentab.h

DOCFILES = README LICENSE grammar ToDo man doc examples

NEWSYSFILES = sys/netinet/ip_screen.c sys/net/gw_screen.c sys/net/gw_screen.h

SYSDIFFS = sys/netinet/ip_input.c.diffs sys/netinet/ip_icmp.c.diffs \
		sys/net/if.c.diffs

SYSFILES = sys/README ${NEWSYSFILES} ${SYSDIFFS}

DISTRIBUTION = ${DOCFILES} ${SYSFILES} makefile ${SRCS}

screend.tar.Z: screend.tar
	rm -f screend.tar.Z
	compress screend.tar

screend.tar: ${DISTRIBUTION}
	tar cf screend.tar ${DISTRIBUTION}
