##############
# $Id: makefile,v 1.2 1993/09/19 00:58:51 Exp $
##############
# This makefile will produce an executable file named simple.
#
CC	= /usr/local/bin/gcc
#CC      = /usr/ucb/cc
CFLAGS	= -c -g

OBJS	= codegen.o printree.o sem.o simple.o symtab.o tracing.o yaccextr.o \
          y-tab.o lex-yy.o

simple:		$(OBJS)
		$(CC) $(OBJS) -o simple -ll

codegen.o:	codegen.c astdef.h booldef.h codegen.h filedef.h spim_def.h \
		sem.h semform.h symboltb.h tracing.h
		$(CC) $(CFLAGS) codegen.c

printree.o:	printree.c astdef.h printree.h semform.h symboltb.h tracing.h
		$(CC) $(CFLAGS) printree.c

sem.o:		sem.c astdef.h booldef.h sem.h semform.h semstack.h symtab.h \
		tracing.h
		$(CC) $(CFLAGS) sem.c

simple.o:	simple.c astdef.h booldef.h codegen.h filedef.h printree.h \
		sem.h semform.h symboltb.h tracing.h
		$(CC) $(CFLAGS) simple.c

symtab.o:	symtab.c symtab.h symboltb.h tracing.h
		$(CC) $(CFLAGS) symtab.c

tracing.o:	tracing.c booldef.h tracing.h
		$(CC) $(CFLAGS) tracing.c

yaccextr.o:	yaccextr.c booldef.h filedef.h yaccextr.h y-tok.h
		$(CC) $(CFLAGS) yaccextr.c

lex-yy.o:	simple.lex
		lex simple.lex
		cat lex-yy.cTitle lex.yy.c > lex-yy.c
		rm lex.yy.c
		$(CC) $(CFLAGS) lex-yy.c

y-tab.o:	y-tab.c 
		$(CC) $(CFLAGS) y-tab.c

y-tok.h:	y-tab.h
		maketokn

y-tab.c y-tab.h:simple.lr
		yacc -vd simple.lr
		cat y-tab.cTitle y.tab.c > y-tab.c
		cat y-tab.hTitle y.tab.h > y-tab.h
		rm y.tab.c y.tab.h

printall:	*.c *.h *.lr *.lex
		rm -f y-tab.c y-tab.h y-tok.h lex-yy.c
		lpr -P laser *.c *.h simple.lr simple.lex
		touch print


