Option to disable automatic dependencies
[reactos.git] / reactos / tools / rbuild / rbuild.mak
1 RBUILD_BASE = $(TOOLS_BASE_)rbuild
2 RBUILD_BASE_ = $(RBUILD_BASE)$(SEP)
3 RBUILD_INT = $(INTERMEDIATE_)$(RBUILD_BASE)
4 RBUILD_INT_ = $(RBUILD_INT)$(SEP)
5 RBUILD_OUT = $(OUTPUT_)$(RBUILD_BASE)
6 RBUILD_OUT_ = $(RBUILD_OUT)$(SEP)
7
8 $(RBUILD_INT): | $(TOOLS_INT)
9 $(ECHO_MKDIR)
10 ${mkdir} $@
11
12 ifneq ($(INTERMEDIATE),$(OUTPUT))
13 $(RBUILD_OUT): | $(TOOLS_OUT)
14 $(ECHO_MKDIR)
15 ${mkdir} $@
16 endif
17
18
19 RBUILD_BACKEND_BASE = $(RBUILD_BASE_)backend
20 RBUILD_BACKEND_BASE_ = $(RBUILD_BACKEND_BASE)$(SEP)
21 RBUILD_BACKEND_INT = $(INTERMEDIATE_)$(RBUILD_BACKEND_BASE)
22 RBUILD_BACKEND_INT_ = $(RBUILD_BACKEND_INT)$(SEP)
23 RBUILD_BACKEND_OUT = $(OUTPUT)$(RBUILD_BACKEND_BASE)
24 RBUILD_BACKEND_OUT_ = $(RBUILD_BACKEND_OUT)$(SEP)
25
26 $(RBUILD_BACKEND_INT): | $(RBUILD_INT)
27 $(ECHO_MKDIR)
28 ${mkdir} $@
29
30 ifneq ($(INTERMEDIATE),$(OUTPUT))
31 $(RBUILD_BACKEND_OUT): | $(RBUILD_OUT)
32 $(ECHO_MKDIR)
33 ${mkdir} $@
34 endif
35
36
37 RBUILD_MINGW_BASE = $(RBUILD_BACKEND_BASE_)mingw
38 RBUILD_MINGW_BASE_ = $(RBUILD_MINGW_BASE)$(SEP)
39 RBUILD_MINGW_INT = $(INTERMEDIATE_)$(RBUILD_MINGW_BASE)
40 RBUILD_MINGW_INT_ = $(RBUILD_MINGW_INT)$(SEP)
41 RBUILD_MINGW_OUT = $(OUTPUT)$(RBUILD_MINGW_BASE)
42 RBUILD_MINGW_OUT_ = $(RBUILD_MINGW_OUT)$(SEP)
43
44 $(RBUILD_MINGW_INT): | $(RBUILD_BACKEND_INT)
45 $(ECHO_MKDIR)
46 ${mkdir} $@
47
48 ifneq ($(INTERMEDIATE),$(OUTPUT))
49 $(RBUILD_MINGW_OUT): | $(RBUILD_BACKEND_OUT)
50 $(ECHO_MKDIR)
51 ${mkdir} $@
52 endif
53
54
55 RBUILD_TESTS_BASE = $(RBUILD_BASE_)tests
56 RBUILD_TESTS_BASE_ = $(RBUILD_TESTS_BASE)$(SEP)
57 RBUILD_TESTS_INT = $(INTERMEDIATE_)$(RBUILD_TESTS_BASE)
58 RBUILD_TESTS_INT_ = $(RBUILD_TESTS_INT)$(SEP)
59 RBUILD_TESTS_OUT = $(OUTPUT)$(RBUILD_TESTS_BASE)
60
61 $(RBUILD_TESTS_INT): | $(RBUILD_INT)
62 $(ECHO_MKDIR)
63 ${mkdir} $@
64
65 ifneq ($(INTERMEDIATE),$(OUTPUT))
66 $(RBUILD_TESTS_OUT): | $(RBUILD_OUT)
67 $(ECHO_MKDIR)
68 ${mkdir} $@
69 endif
70
71
72 RBUILD_DEVCPP_BASE = $(RBUILD_BACKEND_BASE_)devcpp
73 RBUILD_DEVCPP_BASE_ = $(RBUILD_DEVCPP_BASE)$(SEP)
74 RBUILD_DEVCPP_INT = $(INTERMEDIATE_)$(RBUILD_DEVCPP_BASE)
75 RBUILD_DEVCPP_INT_ = $(RBUILD_DEVCPP_INT)$(SEP)
76 RBUILD_DEVCPP_OUT = $(OUTPUT)$(RBUILD_DEVCPP_BASE)
77 RBUILD_DEVCPP_OUT_ = $(RBUILD_DEVCPP_OUT)$(SEP)
78
79 $(RBUILD_DEVCPP_INT): | $(RBUILD_BACKEND_INT)
80 $(ECHO_MKDIR)
81 ${mkdir} $@
82
83 ifneq ($(INTERMEDIATE),$(OUTPUT))
84 $(RBUILD_DEVCPP_OUT): | $(RBUILD_BACKEND_OUT)
85 $(ECHO_MKDIR)
86 ${mkdir} $@
87 endif
88
89
90 RBUILD_TARGET = \
91 $(EXEPREFIX)$(RBUILD_OUT_)rbuild$(EXEPOSTFIX)
92
93 RBUILD_TEST_TARGET = \
94 $(EXEPREFIX)$(RBUILD_OUT_)rbuild_test$(EXEPOSTFIX)
95
96 RBUILD_BACKEND_MINGW_BASE_SOURCES = $(addprefix $(RBUILD_MINGW_BASE_), \
97 mingw.cpp \
98 modulehandler.cpp \
99 proxymakefile.cpp \
100 )
101
102 RBUILD_BACKEND_DEVCPP_BASE_SOURCES = $(addprefix $(RBUILD_DEVCPP_BASE_), \
103 devcpp.cpp \
104 )
105
106 RBUILD_BACKEND_SOURCES = \
107 $(RBUILD_BACKEND_MINGW_BASE_SOURCES) \
108 $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES) \
109 $(RBUILD_BACKEND_BASE_)backend.cpp
110
111 RBUILD_COMMON_SOURCES = \
112 $(RBUILD_BACKEND_SOURCES) \
113 $(addprefix $(RBUILD_BASE_), \
114 automaticdependency.cpp \
115 bootstrap.cpp \
116 cdfile.cpp \
117 compilerflag.cpp \
118 configuration.cpp \
119 define.cpp \
120 exception.cpp \
121 filesupportcode.cpp \
122 include.cpp \
123 installfile.cpp \
124 linkerflag.cpp \
125 module.cpp \
126 project.cpp \
127 ssprintf.cpp \
128 stubbedcomponent.cpp \
129 testsupportcode.cpp \
130 wineresource.cpp \
131 XML.cpp \
132 )
133
134 RBUILD_SPECIAL_SOURCES = \
135 $(RBUILD_BASE_)rbuild.cpp
136
137 RBUILD_SOURCES = \
138 $(RBUILD_COMMON_SOURCES) \
139 $(RBUILD_SPECIAL_SOURCES)
140
141 RBUILD_COMMON_OBJECTS = \
142 $(addprefix $(INTERMEDIATE_), $(RBUILD_COMMON_SOURCES:.cpp=.o))
143
144 RBUILD_SPECIAL_OBJECTS = \
145 $(addprefix $(INTERMEDIATE_), $(RBUILD_SPECIAL_SOURCES:.cpp=.o))
146
147 RBUILD_OBJECTS = \
148 $(RBUILD_COMMON_OBJECTS) \
149 $(RBUILD_SPECIAL_OBJECTS)
150
151 RBUILD_BACKEND_DEVCPP_HEADERS = \
152 devcpp.h
153
154 RBUILD_BACKEND_MINGW_HEADERS = \
155 mingw.h \
156 modulehandler.h
157
158 RBUILD_BACKEND_HEADERS = \
159 backend.h \
160 $(addprefix devcpp$(SEP), $(RBUILD_BACKEND_DEVCPP_HEADERS)) \
161 $(addprefix mingw$(SEP), $(RBUILD_BACKEND_MINGW_HEADERS))
162
163 RBUILD_HEADERS = \
164 $(addprefix $(RBUILD_BASE_), \
165 exception.h \
166 pch.h \
167 rbuild.h \
168 ssprintf.h \
169 test.h \
170 XML.h \
171 $(addprefix backend$(SEP), $(RBUILD_BACKEND_HEADERS)) \
172 )
173
174 RBUILD_TESTS = \
175 tests$(SEP)cdfiletest.cpp \
176 tests$(SEP)definetest.cpp \
177 tests$(SEP)functiontest.cpp \
178 tests$(SEP)iftest.cpp \
179 tests$(SEP)includetest.cpp \
180 tests$(SEP)invoketest.cpp \
181 tests$(SEP)linkerflagtest.cpp \
182 tests$(SEP)moduletest.cpp \
183 tests$(SEP)projecttest.cpp \
184 tests$(SEP)sourcefiletest.cpp \
185 tests$(SEP)symboltest.cpp
186
187 RBUILD_TEST_SPECIAL_SOURCES = \
188 $(addprefix $(RBUILD_BASE_), $(RBUILD_TESTS)) \
189 $(RBUILD_BASE_)tests$(SEP)alltests.cpp
190
191 RBUILD_TEST_SOURCES = \
192 $(RBUILD_COMMON_SOURCES) \
193 $(RBUILD_TEST_SPECIAL_SOURCES)
194
195 RBUILD_TEST_SPECIAL_OBJECTS = \
196 $(addprefix $(INTERMEDIATE_), $(RBUILD_TEST_SPECIAL_SOURCES:.cpp=.o))
197
198 RBUILD_TEST_OBJECTS = \
199 $(RBUILD_COMMON_OBJECTS) \
200 $(RBUILD_TEST_SPECIAL_OBJECTS)
201
202 RBUILD_HOST_CXXFLAGS = -g -I$(RBUILD_BASE) -Werror -Wall
203
204 RBUILD_HOST_LFLAGS = -g
205
206 .PHONY: rbuild
207 rbuild: $(RBUILD_TARGET)
208
209 $(RBUILD_TARGET): $(RBUILD_OBJECTS) | $(RBUILD_OUT)
210 $(ECHO_LD)
211 ${host_gpp} $(RBUILD_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $@
212
213 $(RBUILD_INT_)automaticdependency.o: $(RBUILD_BASE_)automaticdependency.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
214 $(ECHO_CC)
215 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
216
217 $(RBUILD_INT_)bootstrap.o: $(RBUILD_BASE_)bootstrap.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
218 $(ECHO_CC)
219 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
220
221 $(RBUILD_INT_)cdfile.o: $(RBUILD_BASE_)cdfile.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
222 $(ECHO_CC)
223 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
224
225 $(RBUILD_INT_)compilerflag.o: $(RBUILD_BASE_)compilerflag.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
226 $(ECHO_CC)
227 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
228
229 $(RBUILD_INT_)configuration.o: $(RBUILD_BASE_)configuration.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
230 $(ECHO_CC)
231 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
232
233 $(RBUILD_INT_)define.o: $(RBUILD_BASE_)define.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
234 $(ECHO_CC)
235 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
236
237 $(RBUILD_INT_)exception.o: $(RBUILD_BASE_)exception.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
238 $(ECHO_CC)
239 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
240
241 $(RBUILD_INT_)filesupportcode.o: $(RBUILD_BASE_)filesupportcode.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
242 $(ECHO_CC)
243 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
244
245 $(RBUILD_INT_)include.o: $(RBUILD_BASE_)include.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
246 $(ECHO_CC)
247 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
248
249 $(RBUILD_INT_)installfile.o: $(RBUILD_BASE_)installfile.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
250 $(ECHO_CC)
251 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
252
253 $(RBUILD_INT_)linkerflag.o: $(RBUILD_BASE_)linkerflag.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
254 $(ECHO_CC)
255 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
256
257 $(RBUILD_INT_)module.o: $(RBUILD_BASE_)module.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
258 $(ECHO_CC)
259 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
260
261 $(RBUILD_INT_)project.o: $(RBUILD_BASE_)project.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
262 $(ECHO_CC)
263 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
264
265 $(RBUILD_INT_)rbuild.o: $(RBUILD_BASE_)rbuild.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
266 $(ECHO_CC)
267 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
268
269 $(RBUILD_INT_)ssprintf.o: $(RBUILD_BASE_)ssprintf.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
270 $(ECHO_CC)
271 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
272
273 $(RBUILD_INT_)stubbedcomponent.o: $(RBUILD_BASE_)stubbedcomponent.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
274 $(ECHO_CC)
275 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
276
277 $(RBUILD_INT_)wineresource.o: $(RBUILD_BASE_)wineresource.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
278 $(ECHO_CC)
279 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
280
281 $(RBUILD_INT_)testsupportcode.o: $(RBUILD_BASE_)testsupportcode.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
282 $(ECHO_CC)
283 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
284
285 $(RBUILD_INT_)XML.o: $(RBUILD_BASE_)XML.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
286 $(ECHO_CC)
287 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
288
289 $(RBUILD_BACKEND_INT_)backend.o: $(RBUILD_BACKEND_BASE_)backend.cpp $(RBUILD_HEADERS) | $(RBUILD_BACKEND_INT)
290 $(ECHO_CC)
291 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
292
293 $(RBUILD_MINGW_INT_)mingw.o: $(RBUILD_MINGW_BASE_)mingw.cpp $(RBUILD_HEADERS) | $(RBUILD_MINGW_INT)
294 $(ECHO_CC)
295 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
296
297 $(RBUILD_MINGW_INT_)modulehandler.o: $(RBUILD_MINGW_BASE_)modulehandler.cpp $(RBUILD_HEADERS) | $(RBUILD_MINGW_INT)
298 $(ECHO_CC)
299 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
300
301 $(RBUILD_MINGW_INT_)proxymakefile.o: $(RBUILD_MINGW_BASE_)proxymakefile.cpp $(RBUILD_HEADERS) | $(RBUILD_MINGW_INT)
302 $(ECHO_CC)
303 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
304
305 $(RBUILD_DEVCPP_INT_)devcpp.o: $(RBUILD_DEVCPP_BASE_)devcpp.cpp $(RBUILD_HEADERS) | $(RBUILD_DEVCPP_INT)
306 $(ECHO_CC)
307 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
308
309 $(RBUILD_TEST_TARGET): $(RBUILD_TEST_OBJECTS) $(RBUILD_HEADERS) | $(RBUILD_OUT)
310 $(ECHO_LD)
311 ${host_gpp} $(RBUILD_TEST_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $@
312
313 $(RBUILD_TESTS_INT_)cdfiletest.o: $(RBUILD_TESTS_BASE_)cdfiletest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
314 $(ECHO_CC)
315 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
316
317 $(RBUILD_TESTS_INT_)definetest.o: $(RBUILD_TESTS_BASE_)definetest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
318 $(ECHO_CC)
319 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
320
321 $(RBUILD_TESTS_INT_)functiontest.o: $(RBUILD_TESTS_BASE_)functiontest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
322 $(ECHO_CC)
323 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
324
325 $(RBUILD_TESTS_INT_)iftest.o: $(RBUILD_TESTS_BASE_)iftest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
326 $(ECHO_CC)
327 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
328
329 $(RBUILD_TESTS_INT_)includetest.o: $(RBUILD_TESTS_BASE_)includetest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
330 $(ECHO_CC)
331 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
332
333 $(RBUILD_TESTS_INT_)invoketest.o: $(RBUILD_TESTS_BASE_)invoketest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
334 $(ECHO_CC)
335 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
336
337 $(RBUILD_TESTS_INT_)linkerflagtest.o: $(RBUILD_TESTS_BASE_)linkerflagtest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
338 $(ECHO_CC)
339 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
340
341 $(RBUILD_TESTS_INT_)moduletest.o: $(RBUILD_TESTS_BASE_)moduletest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
342 $(ECHO_CC)
343 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
344
345 $(RBUILD_TESTS_INT_)projecttest.o: $(RBUILD_TESTS_BASE_)projecttest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
346 $(ECHO_CC)
347 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
348
349 $(RBUILD_TESTS_INT_)sourcefiletest.o: $(RBUILD_TESTS_BASE_)sourcefiletest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
350 $(ECHO_CC)
351 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
352
353 $(RBUILD_TESTS_INT_)symboltest.o: $(RBUILD_TESTS_BASE_)symboltest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
354 $(ECHO_CC)
355 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
356
357 $(RBUILD_TESTS_INT_)alltests.o: $(RBUILD_TESTS_BASE_)alltests.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
358 $(ECHO_CC)
359 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
360
361
362 .PHONY: rbuild_test
363 rbuild_test: $(RBUILD_TEST_TARGET)
364 $(ECHO_TEST)
365 $(Q)$(RBUILD_TEST_TARGET)
366
367 .PHONY: rbuild_test_clean
368 rbuild_test_clean: $(RBUILD_TEST_TARGET) $(RBUILD_TESTS_INT)
369 -@$(rm) $(RBUILD_TEST_TARGET) $(RBUILD_TEST_SPECIAL_OBJECTS) 2>$(NUL)
370
371 .PHONY: rbuild_clean
372 rbuild_clean: $(RBUILD_TARGET) $(RBUILD_OBJECTS) $(RBUILD_TESTS_INT)
373 -@$(rm) $(RBUILD_TARGET) $(RBUILD_OBJECTS) 2>$(NUL)
374 clean: rbuild_clean