CC = gcc 
TCL_INC = /usr/local/tcl/include
TCL_LIB = /usr/local/tcl
INCLUDES = -I$(TCL_INC)
CFLAGS = -g $(INCLUDES) -pedantic -L$(TCL_LIB)
SRCS = deriv.c sub.c expr.c flex.c tcl_support.c
OBJS = $(SRCS:.c=.o)

all:	main tcl_test

deriv.c:	deriv.y expr.h
	bison -d -b deriv -p deriv_ -o deriv.c deriv.y

flex.c:		flex.l
	flex -t flex.l > flex.c

libderiv.a:	$(OBJS)
	ar rv libderiv.a $(OBJS)
	ranlib libderiv.a

main:	main.o libderiv.a
	$(CC) $(CFLAGS) -o main main.o libderiv.a -lm

tcl_test:	tcl_test.o libderiv.a
	$(CC) $(CFLAGS) -o tcl_test tcl_test.o libderiv.a -ltcl -lm

depend:
	makedepend $(SRCS) $(INCLUDES)

clean:
	-rm main main.o tcl_test tcl_test.o 
	-rm libderiv.a $(OBJS) flex.c deriv.c deriv.h

