CC   = gcc
YACC = bison
LEX  = flex
EXE  = .exe

YFLAGS	= #-dv
CFLAGS	= -O
LFLAGS	=

SRC	= cm.y cm.l
OBJ1 = cm.tab.o cm.lex.o
OBJ2 = tm.o 

all:	$(OBJ1) $(OBJ2)
	$(CC) $(CFLAGS) $(OBJ1) -o cm
	$(CC) $(CFLAGS) $(OBJ2) -o tm

tm.o:	tm.c

cm.lex.o:	cm.tab.h

cm.lex.c: cm.l
	$(LEX) -t cm.l > cm.lex.c

cm.tab.o:	cm.tab.c

cm.tab.c:	cm.y
	$(YACC) -dv cm.y

cm.tab.h:	cm.y
	$(YACC) -dv cm.y

tidy:
	rm -f cm.output cm.tab.* cm.lex.c *.o

clean:
	rm -f cm$(EXE) tm$(EXE) cm.output cm.tab.* cm.lex.c *.o
