# Makefile to generate a DOL program # Type 'make help' to get a list of targets. # program to generate PROGRAM = AESA # code generator to use # use '-C' (SystemC) or '-H' (HdS) CODEGEN = -C # change according to your system DOLPATH = $(HOME)/jump/dol/jars SYSTEMC_INC = $(HOME)/systemc/include SYSTEMC_LIB = $(HOME)/systemc/lib-linux64/libsystemc.a # list of programs JAVA ?= java JAVAC ?= javac DOTTY ?= dotty ECHO ?= echo SED ?= sed CP ?= cp RM ?= rm # don't change anything below # =========================================================================== SRCPATH = generated CLASSPATH = $(DOLPATH)/dol.jar:$(DOLPATH)/jdom.jar:$(DOLPATH)/xercesImpl.jar .PHONY : help all run codegen dotty clean help: @$(ECHO) "Target List:\n" \ "\thelp -- show this help [default]\n" \ "\tall -- generate '$(PROGRAM)'\n" \ "\trun -- generate and run '$(PROGRAM)'\n" \ "\tcodegen -- generate code, but do not compile\n" \ "\tdotty -- show flattened process network using DOTTY\n" \ "\tclean -- clean generated files\n" all: $(PROGRAM) codegen: $(SRCPATH)/src/Makefile.new run: $(PROGRAM) @$(ECHO) "\t[RUN]\t$^" @./$(PROGRAM) clean: @$(ECHO) "\t[CLEAN]" @$(RM) -rf $(PROGRAM) $(SRCPATH)/ $(PROGRAM)_flattened.xml \ $(PROGRAM)_Generator.java $(PROGRAM)_Generator.class \ $(PROGRAM).dot profile.txt output.txt $(PROGRAM): $(SRCPATH)/src/sc_application @$(ECHO) "\t[COPY]\t$@" @$(CP) $^ $@ $(SRCPATH)/src/sc_application: $(SRCPATH)/src/Makefile.new @$(ECHO) "\t[MAKE]\t$<" @$(MAKE) -f Makefile.new -C $(SRCPATH)/src $(SRCPATH)/src/Makefile.new: $(SRCPATH)/src/Makefile @$(ECHO) "\t[GEN]\t$@" @$(SED) -e 's@^SYSTEMC_INC.*@SYSTEMC_INC = -I$(SYSTEMC_INC)@' \ -e 's@^SYSTEMC_LIB.*@SYSTEMC_LIB = $(SYSTEMC_LIB)@' \ -e 's@^MY_LIB_INC.*@& -lpthread@' \ $(SRCPATH)/src/Makefile > $(SRCPATH)/src/Makefile.new $(SRCPATH)/src/Makefile: $(PROGRAM)_flattened.xml @$(ECHO) "\t[GEN]\t$@" @$(JAVA) -cp $(CLASSPATH) dol.main.Main -P $(PROGRAM)_flattened.xml \ $(CODEGEN) $(SRCPATH) -c >/dev/null $(PROGRAM)_flattened.xml: $(PROGRAM).xml @$(ECHO) "\t[FLAT]\t$^" @$(JAVA) -cp $(CLASSPATH) dol.helper.flattener.XMLFlattener \ $(PROGRAM).xml $(PROGRAM)_Generator >/dev/null @$(JAVAC) $(PROGRAM)_Generator.java @$(JAVA) $(PROGRAM)_Generator > $(PROGRAM)_flattened.xml $(PROGRAM).dot: $(PROGRAM)_flattened.xml @$(ECHO) "\t[GEN]\t$@" @$(JAVA) -cp $(CLASSPATH) dol.main.Main -P $(PROGRAM)_flattened.xml \ -D $(PROGRAM).dot -c >/dev/null dotty: $(PROGRAM).dot @$(ECHO) "\t[RUN]\t$(DOTTY) $(PROGRAM).dot" @$(DOTTY) $(PROGRAM).dot