Ignore:
Timestamp:
Jun 17, 2009, 6:22:02 PM (16 years ago)
Author:
rosiere
Message:

1) Makefile of platforms generate an script

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Platforms/Test/Makefile

    r124 r125  
    4343ENTITY                          =       Test
    4444
    45 DIR_TMP                         =       $(MORPHEO_TMP)
    46 DIR_INC                         =       include
    47 DIR_SRC                         =       src
    48 DIR_OBJ                         =       $(DIR_TMP)/obj
    49 DIR_LIB                         =       $(DIR_TMP)/lib
    50 DIR_BIN                         =       $(DIR_TMP)/bin
    51 DIR_LOG                         =       $(DIR_TMP)/log
    52 DIR_DATA                        =       ./data
    53 DIR_LOGS                        =       $(patsubst $(DIR_DATA)/%,$(DIR_LOG)/%,$(wildcard $(DIR_DATA)/*))
    54 
    55 DIR_SOFT                        =       $(MORPHEO_TOPLEVEL)/Softwares
     45PATH_TMP                        =       $(MORPHEO_TMP)
     46PATH_INC                        =       include
     47PATH_SRC                        =       src
     48PATH_OBJ                        =       $(PATH_TMP)/obj
     49PATH_LIB                        =       $(PATH_TMP)/lib
     50PATH_BIN                        =       $(PATH_TMP)/bin
     51PATH_LOG                        =       $(PATH_TMP)/log
     52PATH_DATA                       =       ./data
     53PATH_LOGS                       =       $(patsubst $(PATH_DATA)/%,$(PATH_LOG)/%,$(wildcard $(PATH_DATA)/*))
     54
     55PATH_SOFT                       =       $(MORPHEO_TOPLEVEL)/Softwares
    5656
    5757#MORPHEO                        -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/processor/Morpheo/Makefile.deps
     
    7171#----------------------------------------------------------
    7272#----------------------------------------------------------
    73 SOURCES                         =       $(wildcard $(DIR_SRC)/*.cpp)
    74 OBJECTS                         =       $(patsubst $(DIR_SRC)/%.cpp,$(DIR_OBJ)/%.o,$(SOURCES))
    75 LOGS                            =       $(patsubst $(DIR_DATA)/%.cfg,$(DIR_LOG)/%.log,$(wildcard $(DIR_DATA)/$(DATA)/*.cfg))
    76 EXEC                            =       $(DIR_BIN)/soft.x
    77 EXEC_PREFIX                     =       $(NICE) -n $(PRIORITY)
    78 #$(VALGRIND)
     73SOURCES                         =       $(wildcard $(PATH_SRC)/*.cpp)
     74OBJECTS                         =       $(patsubst $(PATH_SRC)/%.cpp,$(PATH_OBJ)/%.o,$(SOURCES))
     75LOGS                            =       $(patsubst $(PATH_DATA)/%.cfg,$(PATH_LOG)/%.log,$(wildcard $(PATH_DATA)/$(DATA)/*.cfg))
     76EXEC                            =       $(PATH_BIN)/soft.x
     77EXEC_PREFIX                     =       $(NICE) -n $(PRIORITY) $(VALGRIND)
     78
     79SCRIPT                          =       make.sh
    7980
    8081#-----[ Compilation ]--------------------------------------
     
    8283                                        $(MORPHEO_INCDIR)                       \
    8384                                        $(ENVIRONMENT_INCDIR)                   \
    84                                         -I$(DIR_INC)                         
     85                                        -I$(PATH_INC)                         
    8586
    8687#LIBDIR                         =       $(SYSTEMC_LIBDIR_$(SIMULATOR_SYSTEMC))          \
     
    8990
    9091LIBDIR                          =       $(SYSTEMC_LIBDIR_$(SIMULATOR_SYSTEMC))          \
    91                                         -L$(DIR_LIB)
     92                                        -L$(PATH_LIB)
    9293
    9394LIBNAME                         =       $(ENVIRONMENT_LIBNAME)                  \
     
    106107#----------------------------------------------------------
    107108
    108 vpath   %.h     $(DIR_INC)
    109 vpath   %.cpp   $(DIR_SRC)
    110 vpath   %.o     $(DIR_OBJ)
    111 vpath   %.cfg   $(DIR_DATA)/*/
    112 
    113 .PRECIOUS                       : $(DIR_OBJ)/%.o $(DIR_BIN)/%.x $(DIR_LOG)/%.log
     109vpath   %.h     $(PATH_INC)
     110vpath   %.cpp   $(PATH_SRC)
     111vpath   %.o     $(PATH_OBJ)
     112vpath   %.cfg   $(PATH_DATA)/*/
     113
     114.PRECIOUS                       : $(PATH_OBJ)/%.o $(PATH_BIN)/%.x $(PATH_LOG)/%.log
    114115
    115116all                             : $(EXEC)
    116117
    117 $(DIR_BIN)/%.x                  :  $(DIR_OBJ) $(DIR_BIN)
     118$(PATH_BIN)/%.x                 :  $(PATH_OBJ) $(PATH_BIN)
    118119                                @\
    119120                                $(ECHO) "Linkage            : $*";\
     
    139140                                declare -i clean=$(CLEAN);                                                              \
    140141                                if $(TEST) $${clean} -ne 0 -a "$(DATA)" != "$(DATA_ALL)"; then                          \
    141                                         $(RM) $(DIR_LOG)/$(DATA);                                                       \
     142                                        $(RM) $(PATH_LOG)/$(DATA);                                                      \
    142143                                fi;                                                                                     \
    143                                 $(MAKE) $(DIR_LOGS);                                                                    \
     144                                $(MAKE) $(PATH_LOGS);                                                                   \
    144145                                declare logs="$(LOGS)";                                                                 \
    145146                                $(MAKE) $${logs};                                                                       \
     
    171172                                $(MAKE) run DATA=bench;
    172173
    173 $(DIR_LOG)/%.log                : $(DIR_DATA)/%.cfg $(EXEC)
     174distexe                         :
     175                                @\
     176                                $(RM) $(SCRIPT);                                                        \
     177                                for log in $(LOGS); do                                                  \
     178                                        $(ECHO) -n "cd $(MORPHEO_TOPLEVEL); source environment.sh; cd -; path=\"${PWD}\"; " >> $(SCRIPT); \
     179                                        if $(TEST) $(CLEAN) -ne 0; then                                 \
     180                                                $(ECHO) -n "$(RM) $${log}; " >> $(SCRIPT);              \
     181                                        fi;                                                             \
     182                                        $(ECHO) "$(MAKE) -C "'$${path}'" $${log} PRIORITY=$(PRIORITY);" >> $(SCRIPT);   \
     183                                done
     184
     185$(PATH_LOG)/%.log               : $(PATH_DATA)/%.cfg $(EXEC)
    174186                                @\
    175187                                file=$$($(BASENAME) $<);                                \
     
    202214soft                            :
    203215                                @\
    204                                 $(MAKE) --directory=$(DIR_SOFT)        --makefile=Makefile;
     216                                $(MAKE) --directory=$(PATH_SOFT)        --makefile=Makefile;
    205217
    206218#-----[ Rules ]--------------------------------------------
    207219
    208 $(DIR_OBJ)/%.o                  : %.cpp
     220$(PATH_OBJ)/%.o                 : %.cpp
    209221                                @\
    210222                                $(ECHO) "Compilation        : $*";\
    211223                                $(CXX) $(PLATFORMS_CXX_FLAGS) -c -o $@ $<;
    212224
    213 $(DIR_OBJ) $(DIR_BIN) $(DIR_LOGS) :
     225$(PATH_OBJ) $(PATH_BIN) $(PATH_LOGS) :
    214226                                @\
    215227                                $(ECHO) "Create directory   : $@";\
     
    222234                                $(ECHO) "Delete     temporary files in directory $(PWD)";\
    223235                                $(RM)   $(OBJECTS) $(EXEC) $(LOGS) \
    224                                         *~ $(DIR_SRC)/*~ $(DIR_INC)/*~ $(DIR_DATA)/*/*~ *.res *.txt\
     236                                        *~ $(PATH_SRC)/*~ $(PATH_INC)/*~ $(PATH_DATA)/*/*~ *.res *.txt\
    225237                                        *core* \
    226238                                        tty* \
     
    234246                                @\
    235247                                $(ECHO) "Delete     generated files in directory $(PWD)";\
    236                                 $(RM) $(DIR_OBJ) $(DIR_BIN) $(DIR_LOG);\
    237                                 $(MAKE) --directory=$(DIR_SOFT)        --makefile=Makefile clean_all; \
     248                                $(RM) $(PATH_OBJ) $(PATH_BIN) $(PATH_LOG) $(SCRIPT);\
     249                                $(MAKE) --directory=$(PATH_SOFT)        --makefile=Makefile clean_all; \
    238250                                $(MAKE) --directory=$(ENVIRONMENT_DIR) --makefile=Makefile clean_all; \
    239251                                $(MAKE) --directory=$(MORPHEO_DIR)     --makefile=Makefile clean_all;
     
    246258                                $(ECHO) " * all (default rules) : create software";\
    247259                                $(ECHO) " * run                 : execute platforms with test configuration";\
    248                                 $(ECHO) "                         set DATA     to select a specific directory in $(DIR_DATA) (default : all)";\
     260                                $(ECHO) "                         set DATA     to select a specific directory in $(PATH_DATA) (default : all)";\
    249261                                $(ECHO) "                         set PRIORITY to nice the execution (default : 0)";\
    250262                                $(ECHO) "                         set CLEAN    to remove previous log (default : 0)";\
     
    253265                                $(ECHO) " * debug               : cf 'make run DATA=debug'";\
    254266                                $(ECHO) " * bench               : cf 'make run DATA=bench'";\
     267                                $(ECHO) " * distexe             : Generate an command file to distexe. It's as run command, but just generate an script with all make";\
    255268                                $(ECHO) " * lib                 : make library";\
    256269                                $(ECHO) " * soft                : make software";\
Note: See TracChangeset for help on using the changeset viewer.