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_
), \
144 RBUILD_BACKEND_SOURCES
= \
145 $(RBUILD_BACKEND_MINGW_BASE_SOURCES
) \
146 $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES
) \
147 $(RBUILD_BACKEND_MSVC_BASE_SOURCES
) \
148 $(RBUILD_BACKEND_BASE_
)backend.
cpp
150 RBUILD_COMMON_SOURCES
= \
151 $(RBUILD_BACKEND_SOURCES
) \
152 $(addprefix $(RBUILD_BASE_
), \
153 automaticdependency.
cpp \
160 filesupportcode.
cpp \
167 stubbedcomponent.
cpp \
168 testsupportcode.
cpp \
173 RBUILD_SPECIAL_SOURCES
= \
174 $(RBUILD_BASE_
)rbuild.
cpp
177 $(RBUILD_COMMON_SOURCES
) \
178 $(RBUILD_SPECIAL_SOURCES
)
180 RBUILD_COMMON_OBJECTS
= \
181 $(addprefix $(INTERMEDIATE_
), $(RBUILD_COMMON_SOURCES
:.
cpp=.o
))
183 RBUILD_SPECIAL_OBJECTS
= \
184 $(addprefix $(INTERMEDIATE_
), $(RBUILD_SPECIAL_SOURCES
:.
cpp=.o
))
187 $(RBUILD_COMMON_OBJECTS
) \
188 $(RBUILD_SPECIAL_OBJECTS
)
190 RBUILD_BACKEND_DEVCPP_HEADERS
= \
193 RBUILD_BACKEND_MSVCCPP_HEADERS
= \
196 RBUILD_BACKEND_MINGW_HEADERS
= \
200 RBUILD_BACKEND_HEADERS
= \
202 $(addprefix devcpp
$(SEP
), $(RBUILD_BACKEND_DEVCPP_HEADERS
)) \
203 $(addprefix msvc
$(SEP
), $(RBUILD_BACKEND_MSVC_HEADERS
)) \
204 $(addprefix mingw
$(SEP
), $(RBUILD_BACKEND_MINGW_HEADERS
))
207 $(addprefix $(RBUILD_BASE_
), \
214 $(addprefix backend
$(SEP
), $(RBUILD_BACKEND_HEADERS
)) \
218 tests
$(SEP
)cdfiletest.
cpp \
219 tests
$(SEP
)definetest.
cpp \
220 tests
$(SEP
)functiontest.
cpp \
221 tests
$(SEP
)iftest.
cpp \
222 tests
$(SEP
)includetest.
cpp \
223 tests
$(SEP
)invoketest.
cpp \
224 tests
$(SEP
)linkerflagtest.
cpp \
225 tests
$(SEP
)moduletest.
cpp \
226 tests
$(SEP
)projecttest.
cpp \
227 tests
$(SEP
)sourcefiletest.
cpp \
228 tests
$(SEP
)symboltest.
cpp
230 RBUILD_TEST_SPECIAL_SOURCES
= \
231 $(addprefix $(RBUILD_BASE_
), $(RBUILD_TESTS
)) \
232 $(RBUILD_BASE_
)tests
$(SEP
)alltests.
cpp
234 RBUILD_TEST_SOURCES
= \
235 $(RBUILD_COMMON_SOURCES
) \
236 $(RBUILD_TEST_SPECIAL_SOURCES
)
238 RBUILD_TEST_SPECIAL_OBJECTS
= \
239 $(addprefix $(INTERMEDIATE_
), $(RBUILD_TEST_SPECIAL_SOURCES
:.
cpp=.o
))
241 RBUILD_TEST_OBJECTS
= \
242 $(RBUILD_COMMON_OBJECTS
) \
243 $(RBUILD_TEST_SPECIAL_OBJECTS
)
245 RBUILD_HOST_CXXFLAGS
= -I
$(RBUILD_BASE
) $(TOOLS_CPPFLAGS
)
247 RBUILD_HOST_LFLAGS
= $(TOOLS_LFLAGS
)
250 rbuild
: $(RBUILD_TARGET
)
252 $(RBUILD_TARGET
): $(RBUILD_OBJECTS
) |
$(RBUILD_OUT
)
254 ${host_gpp} $(RBUILD_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
256 $(RBUILD_INT_
)automaticdependency.o
: $(RBUILD_BASE_
)automaticdependency.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
258 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
260 $(RBUILD_INT_
)bootstrap.o
: $(RBUILD_BASE_
)bootstrap.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
262 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
264 $(RBUILD_INT_
)cdfile.o
: $(RBUILD_BASE_
)cdfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
266 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
268 $(RBUILD_INT_
)compilerflag.o
: $(RBUILD_BASE_
)compilerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
270 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
272 $(RBUILD_INT_
)configuration.o
: $(RBUILD_BASE_
)configuration.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
274 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
276 $(RBUILD_INT_
)define.o
: $(RBUILD_BASE_
)define.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
278 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
280 $(RBUILD_INT_
)exception.o
: $(RBUILD_BASE_
)exception.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
282 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
284 $(RBUILD_INT_
)filesupportcode.o
: $(RBUILD_BASE_
)filesupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
286 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
288 $(RBUILD_INT_
)include.o
: $(RBUILD_BASE_
)include.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
290 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
292 $(RBUILD_INT_
)installfile.o
: $(RBUILD_BASE_
)installfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
294 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
296 $(RBUILD_INT_
)linkerflag.o
: $(RBUILD_BASE_
)linkerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
298 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
300 $(RBUILD_INT_
)module.o
: $(RBUILD_BASE_
)module.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
302 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
304 $(RBUILD_INT_
)project.o
: $(RBUILD_BASE_
)project.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
306 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
308 $(RBUILD_INT_
)rbuild.o
: $(RBUILD_BASE_
)rbuild.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
310 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
312 $(RBUILD_INT_
)ssprintf.o
: $(RBUILD_BASE_
)ssprintf.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
314 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
316 $(RBUILD_INT_
)stubbedcomponent.o
: $(RBUILD_BASE_
)stubbedcomponent.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
318 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
320 $(RBUILD_INT_
)wineresource.o
: $(RBUILD_BASE_
)wineresource.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
322 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
324 $(RBUILD_INT_
)testsupportcode.o
: $(RBUILD_BASE_
)testsupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
326 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
328 $(RBUILD_INT_
)XML.o
: $(RBUILD_BASE_
)XML.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
330 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
332 $(RBUILD_BACKEND_INT_
)backend.o
: $(RBUILD_BACKEND_BASE_
)backend.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_BACKEND_INT
)
334 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
336 $(RBUILD_MINGW_INT_
)mingw.o
: $(RBUILD_MINGW_BASE_
)mingw.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
338 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
340 $(RBUILD_MINGW_INT_
)modulehandler.o
: $(RBUILD_MINGW_BASE_
)modulehandler.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
342 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
344 $(RBUILD_MINGW_INT_
)proxymakefile.o
: $(RBUILD_MINGW_BASE_
)proxymakefile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
346 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
348 $(RBUILD_DEVCPP_INT_
)devcpp.o
: $(RBUILD_DEVCPP_BASE_
)devcpp.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_DEVCPP_INT
)
350 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
352 $(RBUILD_MSVC_INT_
)genguid.o
: $(RBUILD_MSVC_BASE_
)genguid.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
354 ${host_gpp} $(RBUILD_HOST_CFLAGS
) -c
$< -o
$@
356 $(RBUILD_MSVC_INT_
)msvc.o
: $(RBUILD_MSVC_BASE_
)msvc.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
358 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
360 $(RBUILD_TEST_TARGET
): $(RBUILD_TEST_OBJECTS
) $(RBUILD_HEADERS
) |
$(RBUILD_OUT
)
362 ${host_gpp} $(RBUILD_TEST_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
364 $(RBUILD_TESTS_INT_
)cdfiletest.o
: $(RBUILD_TESTS_BASE_
)cdfiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
366 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
368 $(RBUILD_TESTS_INT_
)definetest.o
: $(RBUILD_TESTS_BASE_
)definetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
370 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
372 $(RBUILD_TESTS_INT_
)functiontest.o
: $(RBUILD_TESTS_BASE_
)functiontest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
374 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
376 $(RBUILD_TESTS_INT_
)iftest.o
: $(RBUILD_TESTS_BASE_
)iftest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
378 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
380 $(RBUILD_TESTS_INT_
)includetest.o
: $(RBUILD_TESTS_BASE_
)includetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
382 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
384 $(RBUILD_TESTS_INT_
)invoketest.o
: $(RBUILD_TESTS_BASE_
)invoketest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
386 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
388 $(RBUILD_TESTS_INT_
)linkerflagtest.o
: $(RBUILD_TESTS_BASE_
)linkerflagtest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
390 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
392 $(RBUILD_TESTS_INT_
)moduletest.o
: $(RBUILD_TESTS_BASE_
)moduletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
394 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
396 $(RBUILD_TESTS_INT_
)projecttest.o
: $(RBUILD_TESTS_BASE_
)projecttest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
398 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
400 $(RBUILD_TESTS_INT_
)sourcefiletest.o
: $(RBUILD_TESTS_BASE_
)sourcefiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
402 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
404 $(RBUILD_TESTS_INT_
)symboltest.o
: $(RBUILD_TESTS_BASE_
)symboltest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
406 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
408 $(RBUILD_TESTS_INT_
)alltests.o
: $(RBUILD_TESTS_BASE_
)alltests.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
410 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
414 rbuild_test
: $(RBUILD_TEST_TARGET
)
416 $(Q
)$(RBUILD_TEST_TARGET
)
418 .PHONY
: rbuild_test_clean
419 rbuild_test_clean
: $(RBUILD_TEST_TARGET
) $(RBUILD_TESTS_INT
)
420 -@
$(rm) $(RBUILD_TEST_TARGET
) $(RBUILD_TEST_SPECIAL_OBJECTS
) 2>$(NUL
)
423 rbuild_clean
: $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) $(RBUILD_TESTS_INT
)
424 -@
$(rm) $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) 2>$(NUL
)