source: trunk/Platforms/Test/Makefile @ 109

Last change on this file since 109 was 109, checked in by rosiere, 16 years ago

1) Configuration : instance configuration file : regroup similar instance
2) Configuration : timing default = 0
3) Debug/Commit_unit : Add watch dog timer
4) Issue_queue : Test parameters : add test if type is optionnal
5) Cor_glue : Fix insert index
6) Free_list : remove bank_by_pop (else deadlock)
7) Update Free List : add register to source event

  • Property svn:keywords set to Id
File size: 7.6 KB
Line 
1#
2# $Id: Makefile 109 2009-02-16 20:28:31Z rosiere $
3#
4# [ Description ]
5#
6# Makefile
7#
8
9#----------------------------------------------------------
10#----------------------------------------------------------
11#-----[ Environment ]--------------------------------------
12#----------------------------------------------------------
13#----------------------------------------------------------
14ifeq ($(origin MORPHEO_TOPLEVEL), undefined)
15        $(error "variable MORPHEO_TOPLEVEL is undefined")
16else
17        include $(MORPHEO_TOPLEVEL)/Makefile.tools
18        include $(MORPHEO_TOPLEVEL)/Makefile.flags
19endif
20
21ifeq ($(origin MORPHEO_TMP), undefined)
22        $(error "variable MORPHEO_TMP is undefined")
23endif
24
25#----------------------------------------------------------
26#----------------------------------------------------------
27#-----[ Directory ]----------------------------------------
28#----------------------------------------------------------
29#----------------------------------------------------------
30ENTITY                          =       Test
31
32DIR_TMP                         =       $(MORPHEO_TMP)
33DIR_INC                         =       include
34DIR_SRC                         =       src
35DIR_OBJ                         =       $(DIR_TMP)/obj
36DIR_BIN                         =       $(DIR_TMP)/bin
37DIR_LOG                         =       $(DIR_TMP)/log
38DIR_DATA_TEST                   =       ./data_test
39DIR_DATA_BENCH                  =       ./data_bench
40DIR_SOFT                        =       $(MORPHEO_TOPLEVEL)/Softwares
41
42#MORPHEO                        -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/processor/Morpheo/Makefile.deps
43#MORPHEO_DIR                    -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/processor/Morpheo/Makefile.deps
44#MORPHEO_INCDIR                 -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/processor/Morpheo/Makefile.deps
45#MORPHEO_LIBDIR                 -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/processor/Morpheo/Makefile.deps
46#MORPHEO_LIBNAME                -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/processor/Morpheo/Makefile.deps
47
48#ENVIRONMENT_DIR                -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/Environment/Makefile.deps
49#ENVIRONMENT_INCDIR             -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/Environment/Makefile.deps
50#ENVIRONMENT_LIBDIR             -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/Environment/Makefile.deps
51#ENVIRONMENT_LIBNAME            -       define in $(MORPHEO_TOPLEVEL)/IPs/systemC/Environment/Makefile.deps
52
53#----------------------------------------------------------
54#----------------------------------------------------------
55#-----[ Variables ]----------------------------------------
56#----------------------------------------------------------
57#----------------------------------------------------------
58
59OBJECTS                         =       $(patsubst $(DIR_SRC)/%.cpp,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SRC)/*.cpp))
60LOGS                            =       $(patsubst $(DIR_DATA_TEST)/%.cfg,$(DIR_LOG)/%.log,$(wildcard $(DIR_DATA_TEST)/*.cfg))
61BENCHS                          =       $(patsubst $(DIR_DATA_BENCH)/%.cfg,$(DIR_LOG)/%.log,$(wildcard $(DIR_DATA_BENCH)/*.cfg))
62DEBUG_CFG                       =       $(DIR_DATA_TEST)/debug.cfg
63DEBUG_LOG                       =       $(DIR_LOG)/debug.log
64
65EXEC                            =       $(DIR_BIN)/soft.x
66EXEC_PREFIX                     =       
67#$(VALGRIND)
68
69#-----[ Compilation ]--------------------------------------
70INCDIR                          =       $(SYSTEMC_INCDIR_$(SIMULATOR))          \
71                                        $(MORPHEO_INCDIR)                       \
72                                        $(ENVIRONMENT_INCDIR)                   \
73                                        -I$(DIR_INC)                         
74
75LIBDIR                          =       $(SYSTEMC_LIBDIR_$(SIMULATOR))          \
76                                        $(ENVIRONMENT_LIBDIR)                   \
77                                        $(MORPHEO_LIBDIR)                       
78
79LIBNAME                         =       $(ENVIRONMENT_LIBNAME)                  \
80                                        $(MORPHEO_LIBNAME)                      \
81                                        $(SYSTEMC_LIBNAME_$(SIMULATOR))
82
83FLAGS                           =       $(SYSTEMC_CFLAGS_$(SIMULATOR))
84
85PLATFORMS_CXX_FLAGS             =       $(MORPHEO_FLAGS) $(CXX_FLAGS) $(FLAGS) $(INCDIR)
86PLATFORMS_L_FLAGS               =       $(MORPHEO_FLAGS) $(CXX_FLAGS) $(FLAGS) $(LIBDIR)
87
88#----------------------------------------------------------
89#----------------------------------------------------------
90#-----[ Rules ]--------------------------------------------
91#----------------------------------------------------------
92#----------------------------------------------------------
93
94vpath   %.h     $(DIR_INC)
95vpath   %.cpp   $(DIR_SRC)
96vpath   %.o     $(DIR_OBJ)
97vpath   %.cfg   $(DIR_DATA_TEST) $(DIR_DATA_BENCH)
98
99.PRECIOUS                       : $(DIR_OBJ)/%.o $(DIR_BIN)/%.x $(DIR_LOG)/%.log
100
101all                             : $(DIR_OBJ) $(DIR_BIN)
102                                @\
103                                $(MAKE) $(EXEC)
104
105$(DIR_BIN)/%.x                  : $(OBJECTS)
106                                @\
107                                $(ECHO) "Compilation        : $*";\
108                                $(CXX) $(PLATFORMS_L_FLAGS)      -o $@ $^ $(LIBNAME);
109
110test                            : $(DIR_LOG) all
111                                @\
112                                declare logs;                                           \
113                                if $(TEST) -f "$(DEBUG_CFG)"; then                      \
114                                        logs="$(DEBUG_LOG)";                            \
115                                else                                                    \
116                                        logs="$(LOGS)";                                 \
117                                fi;                                                     \
118                                $(MAKE) $$logs;                                         \
119                                declare -i nb_test=0;                                   \
120                                declare -i nb_test_ko=0;                                \
121                                for log in $$logs; do                                   \
122                                        $(GREP) -q "Test OK" $$log;                     \
123                                        declare -i test_ok=$$?;                         \
124                                        $(GREP) -q "Test KO" $$log;                     \
125                                        declare -i test_ko=$$?;                         \
126                                        if $(TEST) $$test_ko -eq 0 -o $$test_ok -ne 0;  \
127                                        then nb_test_ko=$$(($${nb_test_ko} + 1));       \
128                                        fi;                                             \
129                                        nb_test=$$(($${nb_test} + 1));                  \
130                                done;                                                   \
131                                if $(TEST) $${nb_test_ko} -ne 0;                        \
132                                then $(ECHO) "-------------------| Test KO !!! ($${nb_test_ko}/$${nb_test})"; exit 1;   \
133                                else $(ECHO) "-------------------| Test OK"; exit 0;    \
134                                fi;
135
136bench                           : $(DIR_LOG) all
137                                @\
138                                declare logs="$(BENCHS)";                               \
139                                $(MAKE) $$logs;
140
141execute                         : bench
142
143$(DIR_LOG)/%.log                : %.cfg
144                                @\
145                                file=$$($(BASENAME) $<);                                \
146                                data=$$($(CAT) $<);                                     \
147                                log=$@;                                                 \
148                                $(ECHO) "Run                : $$file";                  \
149                                $(EXEC_PREFIX) $(EXEC) $${data} &> $$log;               \
150                                $(GREP) -q "Test OK" $$log;                             \
151                                declare -i test_ok=$$?;                                 \
152                                $(GREP) -q "Test KO" $$log;                             \
153                                declare -i test_ko=$$?;                                 \
154                                declare timing=$$($(GREP) -h "Timing" $$log);           \
155                                if $(TEST) $$test_ko -ne 0 -a $$test_ok -eq 0;          \
156                                then $(ECHO) -e "                     $$file ... OK    \t$$timing";     \
157                                else $(ECHO) -e "                     $$file ... KO !!!\t$$timing";     \
158                                fi;                                                     \
159
160
161#-----[ Library + Software ]-------------------------------
162
163lib                             :
164                                @\
165                                $(MAKE) --directory=$(ENVIRONMENT_DIR) --makefile=Makefile;\
166                                $(MAKE) --directory=$(MORPHEO_DIR)     --makefile=Makefile;
167
168soft                            :
169                                @\
170                                $(MAKE) --directory=$(DIR_SOFT)        --makefile=Makefile;
171
172#-----[ Rules ]--------------------------------------------
173
174$(DIR_OBJ)/%.o                  : %.cpp
175                                @\
176                                $(ECHO) "Compilation        : $*";\
177                                $(CXX) $(PLATFORMS_CXX_FLAGS) -c -o $@ $<;
178
179$(DIR_OBJ)                      :
180                                @\
181                                $(ECHO) "Create directory   : $@";\
182                                $(MKDIR) $@
183
184$(DIR_BIN)                      :
185                                @\
186                                $(ECHO) "Create directory   : $@";\
187                                $(MKDIR) $@
188
189$(DIR_LOG)                      :
190                                @\
191                                $(ECHO) "Create directory   : $@";\
192                                $(MKDIR) $@
193
194#-----[ Clean + help ]-------------------------------------
195
196clean                           :
197                                @\
198                                $(ECHO) "Delete     temporary files in directory $(PWD)";\
199                                $(RM)   *~ $(DIR_SRC)/*~ $(DIR_INC)/*~ $(DIR_DATA_TEST)/*~ $(DIR_DATA_BENCH)/*~ *core* tty* *.vhdl *.log *.stat *.pos\
200                                        $(DIR_OBJ) $(DIR_BIN) $(DIR_LOG);
201
202clean_all                       : clean
203                                @\
204                                $(ECHO) "Delete     generated files in directory $(PWD)";\
205                                $(MAKE) --directory=$(DIR_SOFT)        --makefile=Makefile clean_all; \
206                                $(MAKE) --directory=$(ENVIRONMENT_DIR) --makefile=Makefile clean_all; \
207                                $(MAKE) --directory=$(MORPHEO_DIR)     --makefile=Makefile clean_all;
208
209
210help                            :
211                                @\
212                                $(ECHO) " -----[ Common ]-------------------------------------";\
213                                $(ECHO) "";\
214                                $(ECHO) " * all (default rules) : create software";\
215                                $(ECHO) " * test                : execute platforms with test configuration";\
216                                $(ECHO) " * bench               : execute platforms with bench configuration";\
217                                $(ECHO) " * lib                 : make library";\
218                                $(ECHO) " * soft                : make software";\
219                                $(ECHO) " * execute             : cf 'make bench'";\
220                                $(ECHO) " * clean               : erase temporary files";\
221                                $(ECHO) " * clean_all           : erase generated files";\
222                                $(ECHO) " * help                : print this message";\
223                                $(ECHO) "";
224
225include $(MORPHEO_TOPLEVEL)/IPs/systemC/processor/Morpheo/Makefile.deps
226include $(MORPHEO_TOPLEVEL)/IPs/systemC/Environment/Makefile.deps
Note: See TracBrowser for help on using the repository browser.