CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ CPPFLAGS = @CPPFLAGS@ @DEFS@ LDFLAGS = @LDFLAGS@ FLEX = @FLEX@ BISON = @BISON@ DYNARE_M = dynare_m@EXEEXT@ MAIN_OBJS = \ DynareFlex.o \ DynareBison.o \ ComputingTasks.o \ ModelTree.o \ StaticModel.o \ DynamicModel.o \ NumericalConstants.o \ NumericalInitialization.o \ Shocks.o \ SigmaeInitialization.o \ SymbolTable.o \ SymbolList.o \ ParsingDriver.o \ DataTree.o \ ModFile.o \ Statement.o \ ExprNode.o \ ModelNormalization.o \ ModelBlocks.o \ IncidenceMatrix.o \ BlockTriangular.o \ ModelGraph.o \ DynareMain.o \ DynareMain2.o MACRO_OBJS = \ macro/MacroFlex.o \ macro/MacroBison.o \ macro/MacroDriver.o \ macro/MacroValue.o # Build rules .PHONY: all all: $(DYNARE_M) $(DYNARE_M): $(MAIN_OBJS) $(MACRO_OBJS) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $(DYNARE_M) $(MAIN_OBJS) $(MACRO_OBJS) cp $(DYNARE_M) ../matlab/ # Build rules for Flex and Bison files DynareFlex.cc: DynareFlex.ll $(FLEX) -oDynareFlex.cc DynareFlex.ll DynareBison.cc DynareBison.hh location.hh stack.hh position.hh: DynareBison.yy $(BISON) --verbose -o DynareBison.cc DynareBison.yy macro/MacroFlex.cc: macro/MacroFlex.ll cd macro && $(FLEX) -oMacroFlex.cc MacroFlex.ll macro/MacroBison.cc macro/MacroBison.hh macro/location.hh macro/stack.hh macro/position.hh: macro/MacroBison.yy cd macro && $(BISON) --verbose -o MacroBison.cc MacroBison.yy # Dependencies %.d: %.cc DynareBison.hh macro/MacroBison.hh @set -e; rm -f $@; \ $(CXX) -MM $(CPPFLAGS) $< > $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ -include $(MAIN_OBJS:.o=.d) -include $(MACRO_OBJS:.o=.d) # Clean .PHONY: clean clean: rm -f *.o *.d *~ \ DynareFlex.cc \ DynareBison.output \ DynareBison.cc \ position.hh \ stack.hh \ location.hh \ DynareBison.hh \ $(DYNARE_M) cd macro && rm -f *.o *.d *~ \ MacroFlex.cc \ MacroBison.output \ MacroBison.cc \ MacroBison.hh \ location.hh \ stack.hh \ position.hh