CC	= gcc
LD	= gcc
CFLAGS	= -g -Wall -O2

CFILES	= canvas.c line.c expr.c lexer.c parser.c vector.c matrix.c brush.c
OBJS	= $(CFILES:.c=.o)
LIBS	= -lm
LFLAGS	=

all: tube font

tube: $(OBJS) tube.o
	$(LD) $(LFLAGS) $(OBJS) tube.o -o $@ $(LIBS)

font: $(OBJS) font.o
	$(LD) $(LFLAGS) $(OBJS) font.o -o $@ $(LIBS)

banner: $(OBJS) banner.o
	$(LD) $(LFLAGS) $(OBJS) banner.o -o $@ $(LIBS)

.c.o:
	$(CC) $(CFLAGS) -c $<

parser.c parser.h: parser.y
	bison -d -b parser -o parser.c $<

lexer.c: lexer.l parser.h
	flex lexer.l
	mv lex.yy.c lexer.c

clean:
	rm -f *.o *~ core* tube font .depend *.stackdump

depend: $(CFILES)
	mkdep $(CFLAGS) $(CFILES)
