INCLUDE= /usr/include -I/usr/local/include
# LIBS= /usr/local/lib -L/usr/lib -lbdd -lfl -lm
# LDFLAGS=-Wl,--rpath -Wl,/usr/local/lib 
YACC = yacc

OBJS += PortParse.tab.o 
OBJS += BogonParse.tab.o
OBJS += ProtoParse.tab.o
OBJS += InfoBase.o 
LEX=flex
BISON=bison -d  --debug -v
CPP = g++ -Wall -Wformat -O3


default:libInfoBase.a

%.o: %.cpp %.h
	$(CPP) -c $< -o $@	
%.o: %.c
	$(CPP) -c $< -o $@	

lex.proto.c: ProtoParse.lex
	$(LEX) $<
lex.port.c: PortParse.lex
	$(LEX) $<
lex.bogon.c: BogonParse.lex
	$(LEX) $<

ProtoParse.tab.cpp ProtoParse.tab.h: ProtoParse.ypp lex.proto.c
	$(BISON) -p proto -o ProtoParse.tab.cpp $<
	mv ProtoParse.tab.hpp ProtoParse.tab.h
PortParse.tab.cpp PortParse.tab.h: PortParse.ypp lex.port.c
	$(BISON) -p port -o PortParse.tab.cpp $<
	mv PortParse.tab.hpp PortParse.tab.h
BogonParse.tab.cpp BogonParse.tab.h: BogonParse.ypp lex.bogon.c
	$(BISON) -p bogon -o BogonParse.tab.cpp $<
	mv BogonParse.tab.hpp BogonParse.tab.h

InfoBaseTest: InfoBaseTest.cpp libInfoBase.a
	$(CPP) $< -L./ -lInfoBase -o $@


libInfoBase.a: $(OBJS)
	$(AR) -rcsv $@ $(OBJS) 
.PHONY: clean	
clean: 
	-rm -vRf *~ *.dot $(OBJS) *.o *.tab.*  lex.* *.output
	-rm -vRf libInfoBase.a
