all: debug


debug: CCFLAGS=-I../../../../../../../sys_sw/libcommlbr -g -W -Wall -std=c++98 -g
debug: pcre.tab.o pcre.yy.o pcre2nfa.o pcre2hw.o nfa2dfa.o  
	g++ pcre.yy.o pcre.tab.o pcre2nfa.o pcre2hw.o nfa2dfa.o  -o pcre_gen -lfl ${CCFLAGS}

fast: CCFLAGS=-I../../../../../../../sys_sw/libcommlbr -W -Wall -std=c++98 -O3 -DNDEBUG -g
fast: nfa2dfa.o pcre.tab.o pcre.yy.o pcre2nfa.o pcre2hw.o 
	g++ pcre.yy.o pcre.tab.o pcre2nfa.o pcre2hw.o nfa2dfa.o  -o pcre_gen -lfl ${CCFLAGS}


CRC: CCFLAGS=-I../../../../../../../sys_sw/libcommlbr -W -Wall -std=c++98 -O3 -DNDEBUG
CRC: CRCTest.o Loadfa.o 
	g++ CRCTest.o Loadfa.o -o CRCTest ${CCFLAGS}
CRCTest.o: CRCTest.cpp 
	g++ -c CRCTest.cpp -o CRCTest.o ${CCFLAGS}

Loadfa.o: Loadfa.cpp 
	g++ -c Loadfa.cpp -o Loadfa.o ${CCFLAGS}

# -d switch to produce pcre.tab.h to connect bison with lex
pcre.tab.c: pcre.y
	bison -d pcre.y

nfa2dfa.o: nfa2dfa.h nfa2dfa.cpp pcre2nfa.hpp symbols.h
	g++ -c nfa2dfa.cpp -o nfa2dfa.o ${CCFLAGS}

pcre.tab.o: pcre.tab.c
	g++ -c pcre.tab.c -o pcre.tab.o ${CCFLAGS}

pcre.yy.c: pcre.l pcre.tab.c
	flex pcre.l

pcre.yy.o: pcre.yy.c
	g++ -c pcre.yy.c -o pcre.yy.o ${CCFLAGS}

pcre2nfa.o: pcre2nfa.cpp pcre2nfa.hpp
	g++ -c pcre2nfa.cpp -o pcre2nfa.o ${CCFLAGS}

pcre2hw.o: pcre2hw.cpp pcre2hw.hpp
	g++ -c pcre2hw.cpp -o pcre2hw.o ${CCFLAGS}

clean:
	rm -f pcre.yy.* pcre.tab.* *.o *~
