
CC = gcc
CFLAGS = -g

LD = gcc

BISON = bison
FLEX  = flex


OBJS = scanner.o parser.tab.o registry.o main.o
DERIVED_SRCS =  scanner.c parser.tab.h parser.tab.c
SRCS = $(patsubst %.o, %.c, $(OBJS))

LIBS = -lfl

MAIN = main

default : $(MAIN)



%.tab.h %.tab.c : %.y
	$(BISON) -d $<

%.c : %.l
	$(FLEX) $< 
	mv lex.yy.c $@

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

$(MAIN) : $(OBJS) 
	$(LD) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)


clean : 
	rm -f $(OBJS) $(DERIVED_SRCS)


.depend : $(SRCS) 
	$(CC) -MM $(SRCS) > $@

include .depend
