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