1*16467b97STreehugger Robot.PRECIOUS=.o 2*16467b97STreehugger Robot 3*16467b97STreehugger RobotANTLRGRAMMARS ?= $(wildcard t0[01]*.g) 4*16467b97STreehugger RobotHEADERS = $(wildcard *.hpp) $(wildcard *.inl) 5*16467b97STreehugger RobotRUNTIME_HEADERS = $(wildcard ../include/*.hpp) $(wildcard ../include/*.inl) 6*16467b97STreehugger RobotSOURCES = $(wildcard *.cpp) 7*16467b97STreehugger RobotPOBJS = $(PSOURCES:.cpp=.o) 8*16467b97STreehugger RobotTOKENS = $(ANTLRGRAMMARS:.g=.tokens) 9*16467b97STreehugger Robot 10*16467b97STreehugger RobotGRAMMAROPTIONS= #-report -Xconversiontimeout 1500000 -Xmultithreaded -Xwatchconversion 11*16467b97STreehugger RobotANTLR = ../../../antlr-complete/target/antlr-complete-3.5.2-SNAPSHOT.jar 12*16467b97STreehugger RobotSTGS = $(wildcard ../../../tool/src/main/resources/org/antlr/codegen/templates/Cpp/*.stg) 13*16467b97STreehugger Robot 14*16467b97STreehugger Robot.SUFFIXES: 15*16467b97STreehugger Robot 16*16467b97STreehugger RobotINCLUDES= -I. -I../include/ 17*16467b97STreehugger Robot 18*16467b97STreehugger RobotCFLAGS=-ggdb3 -O0 -fno-inline -Wall -Wno-unused-variable 19*16467b97STreehugger Robot#CFLAGS=-ggdb3 -O3 20*16467b97STreehugger Robot 21*16467b97STreehugger RobotTOBJS= utils.o 22*16467b97STreehugger Robot 23*16467b97STreehugger Robotall: $(ANTLR) $(TOKENS) t001 t002 t003 t004 t005 t006 t006 t007 t008 t009 t010 t011 t012 24*16467b97STreehugger Robot 25*16467b97STreehugger Robot# For devel only. This will replace .stg files in the tool in a fast way 26*16467b97STreehugger Robot# 27*16467b97STreehugger Robot$(ANTLR): $(STGS) 28*16467b97STreehugger Robot jar uvf $(ANTLR) -C ../../../tool/src/main/resources \ 29*16467b97STreehugger Robot org/antlr/codegen/templates/Cpp/Cpp.stg 30*16467b97STreehugger Robot 31*16467b97STreehugger Robott001: t001.cpp t001lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 32*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 33*16467b97STreehugger Robot 34*16467b97STreehugger Robott002: t002.cpp t002lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 35*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 36*16467b97STreehugger Robot 37*16467b97STreehugger Robott003: t003.cpp t003lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 38*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 39*16467b97STreehugger Robot 40*16467b97STreehugger Robott004: t004.cpp t004lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 41*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 42*16467b97STreehugger Robot 43*16467b97STreehugger Robott005: t005.cpp t005lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 44*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 45*16467b97STreehugger Robot 46*16467b97STreehugger Robott006: t006.cpp t006lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 47*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 48*16467b97STreehugger Robot 49*16467b97STreehugger Robott007: t007.cpp t007lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 50*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 51*16467b97STreehugger Robot 52*16467b97STreehugger Robott008: t008.cpp t008lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 53*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 54*16467b97STreehugger Robot 55*16467b97STreehugger Robott009: t009.cpp t009lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 56*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 57*16467b97STreehugger Robot 58*16467b97STreehugger Robott010: t010.cpp t010lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 59*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 60*16467b97STreehugger Robot 61*16467b97STreehugger Robott011: t011.cpp t011lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 62*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 63*16467b97STreehugger Robot 64*16467b97STreehugger Robott012: t012.cpp t012lexerXMLLexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 65*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 66*16467b97STreehugger Robot 67*16467b97STreehugger Robott051: t051.cpp t051lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 68*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 69*16467b97STreehugger Robot 70*16467b97STreehugger Robot# AST commented out 71*16467b97STreehugger Robot# t039: t039.cpp t039labels.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 72*16467b97STreehugger Robot# g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 73*16467b97STreehugger Robot# 74*16467b97STreehugger Robot# t042: t042.cpp t005lexer.tokens UserTestTraits.hpp Makefile $(ANTLR) $(RUNTIME_HEADERS) 75*16467b97STreehugger Robot# g++ $(CFLAGS) -DUSESTL $(INCLUDES) $< $@?*.cpp -o $@ 76*16467b97STreehugger Robot 77*16467b97STreehugger Robotclean: 78*16467b97STreehugger Robot rm -f *.o t0[0-9][0-9]??*.[ch]pp *.tokens t[0-9][0-9][0-9] t0[0-9][0-9].exe 79*16467b97STreehugger Robot 80*16467b97STreehugger Robot# %.u: %.g 81*16467b97STreehugger Robot# @echo "Bulding dependencies for "$< 82*16467b97STreehugger Robot# java -jar $(ANTLR) -depend $< > $@ 83*16467b97STreehugger Robot# @grep ":" $@ |awk 'BEGIN {printf "ANTLRGENLIST := " }{printf " " $$1}END {print ""}' >> [email protected] 84*16467b97STreehugger Robot# @cat [email protected] >> $@ 85*16467b97STreehugger Robot# $(RM) [email protected] 86*16467b97STreehugger Robot 87*16467b97STreehugger Robot%.tokens %.cpp %Lexer.c %Parser.c %Lexer.h %Parser.h %.hpp: %.g $(ANTLR) 88*16467b97STreehugger Robot java -jar $(ANTLR) $(GRAMMAROPTIONS) $< 89*16467b97STreehugger Robot 90*16467b97STreehugger Robotifneq ($(MAKECMDGOALS),clean) 91*16467b97STreehugger Robotifneq ($(strip $(ANTLRGRAMMARS)),) 92*16467b97STreehugger Robot#-include $(ANTLRGRAMMARS:.g=.u) 93*16467b97STreehugger Robotendif 94*16467b97STreehugger Robotendif 95*16467b97STreehugger Robot 96*16467b97STreehugger Robot%.o: %.cpp $(HEADERS) utils.hpp 97*16467b97STreehugger Robot g++ $(CFLAGS) -DUSESTL $(INCLUDES) -c $< -o $@ 98