BINDIR	=	/usr/local/bin
CFLAGS	=	-O4 -s $(CROSS)
#LDFLAGS=	-zs
LDFLAGS=	-z $(CROSS)
YFLAGS	=	-d

MOFILES = main.o boxgen.o print.o misc.o symtab.o blockgen.o circgen.o  \
	  arcgen.o linegen.o movegen.o texgen.o textgen.o  \
	  pic2.o lineseg.o
OFILES = main.o print.o misc.o symtab.o blockgen.o boxgen.o circgen.o \
	arcgen.o linegen.o movegen.o texgen.o textgen.o \
	pic2.o plfig.o figd.o
CFILES = main.c print.c misc.c symtab.c blockgen.c boxgen.c circgen.c \
	arcgen.c linegen.c movegen.c texgen.c textgen.c \
	pic2.c plfig.c figd.c

SRCFILES = picy.y picl.l pic.h $(CFILES)

all:	pic2fig

inst-all:	inst-tpic manuals

inst-tpic:	$(BINDIR)/tpic

$(BINDIR)/tpic:	tpic
	-cp $@ zpic
	cp tpic $@
	-@ls -ls $@
	-@echo ""

pic2fig: picy.o picl.o $(OFILES)
	cc $(LDFLAGS) -o $@ picy.o picl.o $(OFILES) -lm

# The following .o files depend of picy.c, since they really need picy.h
picl.o:		picl.c pic.h picy.c
main.o:		main.c pic.h picy.c
print.o:	print.c pic.h picy.c
misc.o:		misc.c pic.h picy.c
symtab.o:	symtab.c pic.h picy.c
blockgen.o:	blockgen.c pic.h picy.c
boxgen.o:	boxgen.c pic.h picy.c
linegen.o:	linegen.c pic.h picy.c
texgen.o:	texgen.c pic.h picy.c
textgen.o:	textgen.c pic.h picy.c
circgen.o:	circgen.c pic.h picy.c
pic2.o:		pic2.c pic.h picy.c
arcgen.o:	arcgen.c pic.h picy.c
movegen.o:	movegen.c pic.h picy.c
picy.o:		picy.c pic.h
pltex.o:	pltex.c
figd.o:		figd.c

picy.c:	picy.y
	yacc $(YFLAGS) picy.y
	@cp y.tab.c picy.c
	@rm -f y.tab.c
	-@cmp -s y.tab.h picy.h || cp y.tab.h picy.h
	@rm -f y.tab.h

picl.c:	picl.l
	lex picl.l
	@cp lex.yy.c picl.c
	@rm -f lex.yy.c

check:	picy.c picl.c
	lint -zhxa *.c > lint.out

################################################################
# manual pages
################################################################

MANUALS	=	tpic.1

manuals:;	@echo $(MANUALS) | \
		tr " " "\012" | \
		sed -e "s%.*%install -m 0644 -c & /usr/man/man1/&%" | \
		sed -e 's%\.[1-8c]*$$%.l%' | \
		sh -ve

clean:
	rm -f a.out *.o y.tab.h make.out pic2fig
