From 38ee53ed1ec62a145b7c90e91118ea0d33edc6bc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 3 Sep 2013 00:05:29 +0200 Subject: [PATCH] aesa: really replace old build script --- aesa/Makefile | 98 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 84 insertions(+), 14 deletions(-) diff --git a/aesa/Makefile b/aesa/Makefile index 9f97967..3252935 100644 --- a/aesa/Makefile +++ b/aesa/Makefile @@ -1,21 +1,91 @@ -CXX = g++ -CC = g++ +# Makefile to generate a DOL program -PREPROC_MACROS = -D__DOL_ETHZ_GEN__ -DINCLUDE_PROFILER #-DINCLUDE_PERFORMANCE #-DINCLUDE_TRACE +# Type 'make help' to get a list of targets. -SYSTEMC_INC = -I/usr/local/systemc/include -SYSTEMC_LIB = /usr/local/systemc/lib-linux/libsystemc.a -MY_LIB_INC = -Ilib -Isc_wrappers -Iprocesses -VPATH = lib:sc_wrappers:processes +# program to generate +PROGRAM = AESA -CXXFLAGS = -g -O0 -Wall $(PREPROC_MACROS) $(SYSTEMC_INC) $(MY_LIB_INC) -CFLAGS = $(CXXFLAGS) +# code generator to use +# use '-C' (SystemC) or '-H' (HdS) +CODEGEN = -C -PROCESS_OBJS = dolSupport.o ProcessWrapper.o Fifo.o WindowedFifo.o Data_Generator_wrapper.o Weight_Generator_wrapper.o Beam_Former_wrapper.o Corner_Turn_OL_wrapper.o FFT_Radix2_DIF_wrapper.o Corner_Turn_wrapper.o FIR_wrapper.o Consumer_wrapper.o #xmlParser.o Performance_Extraction.o functional_trace.o +# change according to your system +DOLPATH = $(HOME)/dol/bin +SYSTEMC_INC = $(HOME)/systemc/include +SYSTEMC_LIB = $(HOME)/systemc/lib-linux64/libsystemc.a -all:sc_application +# 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) -sc_application: sc_application.o $(PROCESS_OBJS) - $(CXX) $(CXXFLAGS) -o $@ $^ $(SYSTEMC_LIB) -lpthread -lX11 -lrt clean: - -rm -f *.o core core.* *.core *.tga static_characterization.xml sc_application + @$(ECHO) "\t[CLEAN]" + @$(RM) -rf $(PROGRAM) $(SRCPATH)/ $(PROGRAM)_flattened.xml \ + $(PROGRAM)_Generator.java $(PROGRAM)_Generator.class \ + $(PROGRAM).dot profile.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 + -- 2.30.2