## ## Initialize variables ## DU_NUM=du3 RO_PATH=public-ro/mlc RO_PATH_DU=${RO_PATH}/${DU_NUM} RW_PATH=public-rw/SWI098 RW_PATH_DU=${RW_PATH}/${DU_NUM} CFLAGS+=-Wall -I${RO_PATH_DU}/h/ -I${RO_PATH}/h/ -Ipublic-ro/common/h/ -I. ## ## Final build of the program ## program: ${DU_NUM}.o ${DU_NUM}g.o ${DU_NUM}baseerrtab.o duseemptyerrtab.o duerr.o flex.o ${CXX} ${LDFLAGS} -o program ${DU_NUM}.o ${DU_NUM}baseerrtab.o flex.o duseemptyerrtab.o duerr.o ${DU_NUM}g.o ## ## Sources in ${RO_PATH_DU}/src ## ${DU_NUM}.o: ${DU_NUM}g.hpp ${RO_PATH_DU}/h/${DU_NUM}.h ${RO_PATH_DU}/h/${DU_NUM}tok.h ${RO_PATH}/h/duerr.h ${RO_PATH_DU}/src/${DU_NUM}.cpp ${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c ${RO_PATH_DU}/src/${DU_NUM}.cpp ${DU_NUM}baseerrtab.o: ${RO_PATH_DU}/h/dubaseerr.h ${RO_PATH_DU}/src/${DU_NUM}baseerrtab.cpp ${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c ${RO_PATH_DU}/src/${DU_NUM}baseerrtab.cpp ## ## Sources in ${RO_PATH}/src ## duerr.o: ${RO_PATH}/h/duerr.h ${RO_PATH}/src/duerr.cpp ${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c ${RO_PATH}/src/duerr.cpp duseemptyerrtab.o: ${RO_PATH}/h/duerr.h ${RO_PATH}/src/dusememptyerrtab.cpp ${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c ${RO_PATH}/src/dusememptyerrtab.cpp ## ## Syntactic analyzer via bison ## ${DU_NUM}g.o: ${DU_NUM}g.cpp ${RO_PATH_DU}/h/${DU_NUM}.h ${RO_PATH}/h/duerr.h ${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c $< ${DU_NUM}g.cpp: ${RW_PATH_DU}/${DU_NUM}g.y bison --report=all -d -o $@ $< ${DU_NUM}g.hpp: ${DU_NUM}g.cpp ## ## Lexical analyzer via flex ## flex.o: flex.cpp ${RO_PATH}/h/duerr.h ${RO_PATH_DU}/h/${DU_NUM}.h ${RO_PATH_DU}/h/${DU_NUM}tok.h ${DU_NUM}g.hpp ${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c flex.cpp flex.cpp: ${RW_PATH_DU}/${DU_NUM}l.lex flex -Cf -b -p -p -o $@ $< ## ## Clean up ## clean: rm -f flex.cpp *.o program du*-test* lex.backup ${DU_NUM}g.* ## ## Checking of results ## check: program ${DU_NUM}-test1 ${DU_NUM}-test1: @./program ${RO_PATH_DU}/tests/$@.mls > $@.out @dos2unix -k $@.out >/dev/null 2>&1 @if diff -u ${RO_PATH_DU}/tests/$@.out $@.out > $@.diff; then \ echo $@ " OK ;)"; \ else \ echo "problem, nefunguje vse jak ma. rozdil ve vysledcich je v souboru :" $@.diff; \ fi @rm -f $@.out