DU1 Makefile

Úvodní kurz překladačů se soustřeďuje zejména na teoretické i praktické základy konstrukce přední části překladače. Součástí předmětu je i cvičení zaměřující se na základy práce s nástroji pro konstrukci překladačů. Po absolvování tohoto kurzu bude posluchač schopen sestrojit vlastní překladač do mezikódu nebo jiného jazyka.
fari

DU1 Makefile

Příspěvek od fari »

prihazuju muj makefile k du1, kdyby po nem nekdo touzil
http://files.farka.eu/pub/NSWI098%20Pri ... u/Makefile

zajimaji vas pravidla

Kód: Vybrat vše

make mlaskal (vychozi)
make clean
make check
nahrat do "mlaskal/public-rw/SWI098/du1/"
anonymous0453085

Re: DU1 Makefile

Příspěvek od anonymous0453085 »

deadlink...
anonymous5930548

Re: DU1 Makefile

Příspěvek od anonymous5930548 »

ok...
mlaskal/public-rw/SWI098/du1/Makefile:

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
TTT

Re: DU1 Makefile

Příspěvek od TTT »

mlaskal/Makefile

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}

jira
Matfyz(ák|ačka) level I
Příspěvky: 11
Registrován: 29. 6. 2011 10:43
Typ studia: Informatika Bc.

Re: DU1 Makefile

Příspěvek od jira »

TTT píše:mlaskal/Makefile
Ušetřil jsi mi práci - dík!
Odpovědět

Zpět na „SWI098 Principy překladačů“