1 # Copyright (C) 2005 Casper S. Hornstrup
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.
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.
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.
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
)
24 $(RBUILD_INT
): |
$(TOOLS_INT
)
28 ifneq ($(INTERMEDIATE
),$(OUTPUT
))
29 $(RBUILD_OUT
): |
$(TOOLS_OUT
)
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
)
42 $(RBUILD_BACKEND_INT
): |
$(RBUILD_INT
)
46 ifneq ($(INTERMEDIATE
),$(OUTPUT
))
47 $(RBUILD_BACKEND_OUT
): |
$(RBUILD_OUT
)
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
)
60 $(RBUILD_MINGW_INT
): |
$(RBUILD_BACKEND_INT
)
64 ifneq ($(INTERMEDIATE
),$(OUTPUT
))
65 $(RBUILD_MINGW_OUT
): |
$(RBUILD_BACKEND_OUT
)
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
)
77 $(RBUILD_TESTS_INT
): |
$(RBUILD_INT
)
81 ifneq ($(INTERMEDIATE
),$(OUTPUT
))
82 $(RBUILD_TESTS_OUT
): |
$(RBUILD_OUT
)
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
)
95 $(RBUILD_DEVCPP_INT
): |
$(RBUILD_BACKEND_INT
)
99 ifneq ($(INTERMEDIATE
),$(OUTPUT
))
100 $(RBUILD_DEVCPP_OUT
): |
$(RBUILD_BACKEND_OUT
)
105 RBUILD_MSVC_BASE
= $(RBUILD_BACKEND_BASE_
)msvc
106 RBUILD_MSVC_BASE_
= $(RBUILD_MSVC_BASE
)$(SEP
)
107 RBUILD_MSVC_INT
= $(INTERMEDIATE_
)$(RBUILD_MSVC_BASE
)
108 RBUILD_MSVC_INT_
= $(RBUILD_MSVC_INT
)$(SEP
)
109 RBUILD_MSVC_OUT
= $(OUTPUT_
)$(RBUILD_MSVC_BASE
)
110 RBUILD_MSVC_OUT_
= $(RBUILD_MSVC_OUT
)$(SEP
)
112 $(RBUILD_MSVC_INT
): |
$(RBUILD_BACKEND_INT
)
116 ifneq ($(INTERMEDIATE
),$(OUTPUT
))
117 $(RBUILD_MSVC_OUT
): |
$(RBUILD_BACKEND_OUT
)
124 $(EXEPREFIX
)$(RBUILD_OUT_
)rbuild
$(EXEPOSTFIX
)
126 RBUILD_TEST_TARGET
= \
127 $(EXEPREFIX
)$(RBUILD_OUT_
)rbuild_test
$(EXEPOSTFIX
)
129 RBUILD_BACKEND_MINGW_BASE_SOURCES
= $(addprefix $(RBUILD_MINGW_BASE_
), \
135 RBUILD_BACKEND_DEVCPP_BASE_SOURCES
= $(addprefix $(RBUILD_DEVCPP_BASE_
), \
139 RBUILD_BACKEND_MSVC_BASE_SOURCES
= $(addprefix $(RBUILD_MSVC_BASE_
), \
146 RBUILD_BACKEND_SOURCES
= \
147 $(RBUILD_BACKEND_MINGW_BASE_SOURCES
) \
148 $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES
) \
149 $(RBUILD_BACKEND_MSVC_BASE_SOURCES
) \
150 $(RBUILD_BACKEND_BASE_
)backend.
cpp
152 RBUILD_COMMON_SOURCES
= \
153 $(RBUILD_BACKEND_SOURCES
) \
154 $(addprefix $(RBUILD_BASE_
), \
155 automaticdependency.
cpp \
162 filesupportcode.
cpp \
170 stubbedcomponent.
cpp \
171 testsupportcode.
cpp \
176 RBUILD_SPECIAL_SOURCES
= \
177 $(RBUILD_BASE_
)rbuild.
cpp
180 $(RBUILD_COMMON_SOURCES
) \
181 $(RBUILD_SPECIAL_SOURCES
)
183 RBUILD_COMMON_OBJECTS
= \
184 $(addprefix $(INTERMEDIATE_
), $(RBUILD_COMMON_SOURCES
:.
cpp=.o
))
186 RBUILD_SPECIAL_OBJECTS
= \
187 $(addprefix $(INTERMEDIATE_
), $(RBUILD_SPECIAL_SOURCES
:.
cpp=.o
))
190 $(RBUILD_COMMON_OBJECTS
) \
191 $(RBUILD_SPECIAL_OBJECTS
)
193 RBUILD_BACKEND_DEVCPP_HEADERS
= \
196 RBUILD_BACKEND_MSVCCPP_HEADERS
= \
199 RBUILD_BACKEND_MINGW_HEADERS
= \
203 RBUILD_BACKEND_HEADERS
= \
205 $(addprefix devcpp
$(SEP
), $(RBUILD_BACKEND_DEVCPP_HEADERS
)) \
206 $(addprefix msvc
$(SEP
), $(RBUILD_BACKEND_MSVC_HEADERS
)) \
207 $(addprefix mingw
$(SEP
), $(RBUILD_BACKEND_MINGW_HEADERS
))
210 $(addprefix $(RBUILD_BASE_
), \
217 $(addprefix backend
$(SEP
), $(RBUILD_BACKEND_HEADERS
)) \
221 tests
$(SEP
)cdfiletest.
cpp \
222 tests
$(SEP
)definetest.
cpp \
223 tests
$(SEP
)functiontest.
cpp \
224 tests
$(SEP
)iftest.
cpp \
225 tests
$(SEP
)includetest.
cpp \
226 tests
$(SEP
)invoketest.
cpp \
227 tests
$(SEP
)linkerflagtest.
cpp \
228 tests
$(SEP
)moduletest.
cpp \
229 tests
$(SEP
)projecttest.
cpp \
230 tests
$(SEP
)sourcefiletest.
cpp \
231 tests
$(SEP
)symboltest.
cpp
233 RBUILD_TEST_SPECIAL_SOURCES
= \
234 $(addprefix $(RBUILD_BASE_
), $(RBUILD_TESTS
)) \
235 $(RBUILD_BASE_
)tests
$(SEP
)alltests.
cpp
237 RBUILD_TEST_SOURCES
= \
238 $(RBUILD_COMMON_SOURCES
) \
239 $(RBUILD_TEST_SPECIAL_SOURCES
)
241 RBUILD_TEST_SPECIAL_OBJECTS
= \
242 $(addprefix $(INTERMEDIATE_
), $(RBUILD_TEST_SPECIAL_SOURCES
:.
cpp=.o
))
244 RBUILD_TEST_OBJECTS
= \
245 $(RBUILD_COMMON_OBJECTS
) \
246 $(RBUILD_TEST_SPECIAL_OBJECTS
)
248 RBUILD_HOST_CXXFLAGS
= -I
$(RBUILD_BASE
) $(TOOLS_CPPFLAGS
)
250 RBUILD_HOST_LFLAGS
= $(TOOLS_LFLAGS
)
253 rbuild
: $(RBUILD_TARGET
)
255 $(RBUILD_TARGET
): $(RBUILD_OBJECTS
) |
$(RBUILD_OUT
)
257 ${host_gpp} $(RBUILD_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
259 $(RBUILD_INT_
)automaticdependency.o
: $(RBUILD_BASE_
)automaticdependency.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
261 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
263 $(RBUILD_INT_
)bootstrap.o
: $(RBUILD_BASE_
)bootstrap.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
265 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
267 $(RBUILD_INT_
)cdfile.o
: $(RBUILD_BASE_
)cdfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
269 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
271 $(RBUILD_INT_
)compilerflag.o
: $(RBUILD_BASE_
)compilerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
273 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
275 $(RBUILD_INT_
)configuration.o
: $(RBUILD_BASE_
)configuration.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
277 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
279 $(RBUILD_INT_
)define.o
: $(RBUILD_BASE_
)define.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
281 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
283 $(RBUILD_INT_
)exception.o
: $(RBUILD_BASE_
)exception.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
285 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
287 $(RBUILD_INT_
)filesupportcode.o
: $(RBUILD_BASE_
)filesupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
289 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
291 $(RBUILD_INT_
)include.o
: $(RBUILD_BASE_
)include.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
293 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
295 $(RBUILD_INT_
)installfile.o
: $(RBUILD_BASE_
)installfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
297 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
299 $(RBUILD_INT_
)linkerflag.o
: $(RBUILD_BASE_
)linkerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
301 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
303 $(RBUILD_INT_
)linkerscript.o
: $(RBUILD_BASE_
)linkerscript.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
305 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
307 $(RBUILD_INT_
)module.o
: $(RBUILD_BASE_
)module.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
309 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
311 $(RBUILD_INT_
)project.o
: $(RBUILD_BASE_
)project.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
313 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
315 $(RBUILD_INT_
)rbuild.o
: $(RBUILD_BASE_
)rbuild.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
317 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
319 $(RBUILD_INT_
)ssprintf.o
: $(RBUILD_BASE_
)ssprintf.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
321 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
323 $(RBUILD_INT_
)stubbedcomponent.o
: $(RBUILD_BASE_
)stubbedcomponent.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
325 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
327 $(RBUILD_INT_
)wineresource.o
: $(RBUILD_BASE_
)wineresource.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
329 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
331 $(RBUILD_INT_
)testsupportcode.o
: $(RBUILD_BASE_
)testsupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
333 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
335 $(RBUILD_INT_
)XML.o
: $(RBUILD_BASE_
)XML.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
337 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
339 $(RBUILD_BACKEND_INT_
)backend.o
: $(RBUILD_BACKEND_BASE_
)backend.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_BACKEND_INT
)
341 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
343 $(RBUILD_MINGW_INT_
)mingw.o
: $(RBUILD_MINGW_BASE_
)mingw.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
345 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
347 $(RBUILD_MINGW_INT_
)modulehandler.o
: $(RBUILD_MINGW_BASE_
)modulehandler.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
349 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
351 $(RBUILD_MINGW_INT_
)proxymakefile.o
: $(RBUILD_MINGW_BASE_
)proxymakefile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
353 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
355 $(RBUILD_DEVCPP_INT_
)devcpp.o
: $(RBUILD_DEVCPP_BASE_
)devcpp.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_DEVCPP_INT
)
357 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
359 $(RBUILD_MSVC_INT_
)genguid.o
: $(RBUILD_MSVC_BASE_
)genguid.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
361 ${host_gpp} $(RBUILD_HOST_CFLAGS
) -c
$< -o
$@
363 $(RBUILD_MSVC_INT_
)msvc.o
: $(RBUILD_MSVC_BASE_
)msvc.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
365 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
367 $(RBUILD_MSVC_INT_
)msvcmaker.o
: $(RBUILD_MSVC_BASE_
)msvcmaker.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
369 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
371 $(RBUILD_MSVC_INT_
)vcprojmaker.o
: $(RBUILD_MSVC_BASE_
)vcprojmaker.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
373 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
375 $(RBUILD_TEST_TARGET
): $(RBUILD_TEST_OBJECTS
) $(RBUILD_HEADERS
) |
$(RBUILD_OUT
)
377 ${host_gpp} $(RBUILD_TEST_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
379 $(RBUILD_TESTS_INT_
)cdfiletest.o
: $(RBUILD_TESTS_BASE_
)cdfiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
381 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
383 $(RBUILD_TESTS_INT_
)definetest.o
: $(RBUILD_TESTS_BASE_
)definetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
385 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
387 $(RBUILD_TESTS_INT_
)functiontest.o
: $(RBUILD_TESTS_BASE_
)functiontest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
389 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
391 $(RBUILD_TESTS_INT_
)iftest.o
: $(RBUILD_TESTS_BASE_
)iftest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
393 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
395 $(RBUILD_TESTS_INT_
)includetest.o
: $(RBUILD_TESTS_BASE_
)includetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
397 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
399 $(RBUILD_TESTS_INT_
)invoketest.o
: $(RBUILD_TESTS_BASE_
)invoketest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
401 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
403 $(RBUILD_TESTS_INT_
)linkerflagtest.o
: $(RBUILD_TESTS_BASE_
)linkerflagtest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
405 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
407 $(RBUILD_TESTS_INT_
)moduletest.o
: $(RBUILD_TESTS_BASE_
)moduletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
409 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
411 $(RBUILD_TESTS_INT_
)projecttest.o
: $(RBUILD_TESTS_BASE_
)projecttest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
413 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
415 $(RBUILD_TESTS_INT_
)sourcefiletest.o
: $(RBUILD_TESTS_BASE_
)sourcefiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
417 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
419 $(RBUILD_TESTS_INT_
)symboltest.o
: $(RBUILD_TESTS_BASE_
)symboltest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
421 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
423 $(RBUILD_TESTS_INT_
)alltests.o
: $(RBUILD_TESTS_BASE_
)alltests.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
425 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
429 rbuild_test
: $(RBUILD_TEST_TARGET
)
431 $(Q
)$(RBUILD_TEST_TARGET
)
433 .PHONY
: rbuild_test_clean
434 rbuild_test_clean
: $(RBUILD_TEST_TARGET
) $(RBUILD_TESTS_INT
)
435 -@
$(rm) $(RBUILD_TEST_TARGET
) $(RBUILD_TEST_SPECIAL_OBJECTS
) 2>$(NUL
)
438 rbuild_clean
: $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) $(RBUILD_TESTS_INT
)
439 -@
$(rm) $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) 2>$(NUL
)