source: trunk/Platforms/Test/Makefile@ 109

Last change on this file since 109 was 109, checked in by rosiere, 18 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.