http://files.farka.eu/pub/NSWI098%20Pri ... u/Makefile
zajimaji vas pravidla
Kód: Vybrat vše
make mlaskal (vychozi)
make clean
make check
Kód: Vybrat vše
make mlaskal (vychozi)
make clean
make check
Kód: Vybrat vše
INC=-I../../.. -I../../../public-ro/mlc/h/ -I../../../public-ro/mlc/du1/h/ -I../../../public-ro/common/h/
mlaskal :
flex du1l.lex
g++ lex.yy.c ../../../public-ro/mlc/du1/src/du1tok.cpp ../../../public-ro/mlc/src/dusememptyerrtab.cpp ../../../public-ro/mlc/du1/src/du1baseerrtab.cpp ../../../public-ro/mlc/src/duerr.cpp ../../../public-ro/mlc/du1/src/du1.cpp $(INC) -o du1
Kód: Vybrat vše
DU_NUM=du2
RO_PATH=public-ro/mlc
RO_PATH_DU=${RO_PATH}/${DU_NUM}
RW_PATH=public-rw/SWI098
RW_PATH_DU=${RW_PATH}/${DU_NUM}
TEST_PATH=${RO_PATH_DU}/tests
TESTS=du2-test1 du2-test2 du2-test3
CPPWARNS= -Woverloaded-virtual -Wctor-dtor-privacy -Wnon-virtual-dtor
CWARNS=-Wall -Wextra -Wconversion -Wno-long-long
CFLAGS+=-pedantic-errors ${CWARNS} ${CPPWARNS} -I${RO_PATH_DU}/h/ -I${RO_PATH}/h/ -Ipublic-ro/common/h/ -I. -ggdb -std=c++11
mlaskal: ${DU_NUM}.o ${DU_NUM}baseerrtab.o ${DU_NUM}tok.o duseemptyerrtab.o duerr.o flex.o
${CXX} ${LDFLAGS} -o program ${DU_NUM}.o ${DU_NUM}baseerrtab.o ${DU_NUM}tok.o flex.o duseemptyerrtab.o duerr.o
run: mlaskal test
./test ${RO_PATH_DU}/tests/*.mls
## du
${DU_NUM}.o: ${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
${DU_NUM}tok.o: ${RO_PATH_DU}/h/${DU_NUM}tok.h ${RO_PATH_DU}/src/${DU_NUM}tok.cpp
${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c ${RO_PATH_DU}/src/${DU_NUM}tok.cpp
## mlc
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
#dutables.o: ${RO_PATH}/h/duerr.h ${RO_PATH}/h/dutables.h ${RO_PATH}/src/dutables.cpp
# ${CXX} ${CPPFLAGS} ${CFLAGS} -o $@ -c ${RO_PATH}/src/dutables.cpp
## 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
${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
#test rule
check: mlaskal
@pid=`echo $$$$`; \
for TEST in ${TESTS} ; do \
./program ${TEST_PATH}/$${TEST}.mls > /tmp/$${TEST}.out;\
echo -n "Test $$TEST:"; \
if diff --strip-trailing-cr ${TEST_PATH}/$${TEST}.out /tmp/$${TEST}.out > /tmp/err.$${pid}; then \
echo " OK!"; \
else \
echo '\tSomething is wrong :-('; \
cat /tmp/err.$${pid}; \
fi; \
done; \
rm -rf /tmp/err.$${pid}
Ušetřil jsi mi práci - dík!TTT píše:mlaskal/Makefile