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 \
169 stubbedcomponent.
cpp \
170 testsupportcode.
cpp \
175 RBUILD_SPECIAL_SOURCES
= \
176 $(RBUILD_BASE_
)rbuild.
cpp
179 $(RBUILD_COMMON_SOURCES
) \
180 $(RBUILD_SPECIAL_SOURCES
)
182 RBUILD_COMMON_OBJECTS
= \
183 $(addprefix $(INTERMEDIATE_
), $(RBUILD_COMMON_SOURCES
:.
cpp=.o
))
185 RBUILD_SPECIAL_OBJECTS
= \
186 $(addprefix $(INTERMEDIATE_
), $(RBUILD_SPECIAL_SOURCES
:.
cpp=.o
))
189 $(RBUILD_COMMON_OBJECTS
) \
190 $(RBUILD_SPECIAL_OBJECTS
)
192 RBUILD_BACKEND_DEVCPP_HEADERS
= \
195 RBUILD_BACKEND_MSVCCPP_HEADERS
= \
198 RBUILD_BACKEND_MINGW_HEADERS
= \
202 RBUILD_BACKEND_HEADERS
= \
204 $(addprefix devcpp
$(SEP
), $(RBUILD_BACKEND_DEVCPP_HEADERS
)) \
205 $(addprefix msvc
$(SEP
), $(RBUILD_BACKEND_MSVC_HEADERS
)) \
206 $(addprefix mingw
$(SEP
), $(RBUILD_BACKEND_MINGW_HEADERS
))
209 $(addprefix $(RBUILD_BASE_
), \
216 $(addprefix backend
$(SEP
), $(RBUILD_BACKEND_HEADERS
)) \
220 tests
$(SEP
)cdfiletest.
cpp \
221 tests
$(SEP
)definetest.
cpp \
222 tests
$(SEP
)functiontest.
cpp \
223 tests
$(SEP
)iftest.
cpp \
224 tests
$(SEP
)includetest.
cpp \
225 tests
$(SEP
)invoketest.
cpp \
226 tests
$(SEP
)linkerflagtest.
cpp \
227 tests
$(SEP
)moduletest.
cpp \
228 tests
$(SEP
)projecttest.
cpp \
229 tests
$(SEP
)sourcefiletest.
cpp \
230 tests
$(SEP
)symboltest.
cpp
232 RBUILD_TEST_SPECIAL_SOURCES
= \
233 $(addprefix $(RBUILD_BASE_
), $(RBUILD_TESTS
)) \
234 $(RBUILD_BASE_
)tests
$(SEP
)alltests.
cpp
236 RBUILD_TEST_SOURCES
= \
237 $(RBUILD_COMMON_SOURCES
) \
238 $(RBUILD_TEST_SPECIAL_SOURCES
)
240 RBUILD_TEST_SPECIAL_OBJECTS
= \
241 $(addprefix $(INTERMEDIATE_
), $(RBUILD_TEST_SPECIAL_SOURCES
:.
cpp=.o
))
243 RBUILD_TEST_OBJECTS
= \
244 $(RBUILD_COMMON_OBJECTS
) \
245 $(RBUILD_TEST_SPECIAL_OBJECTS
)
247 RBUILD_HOST_CXXFLAGS
= -I
$(RBUILD_BASE
) $(TOOLS_CPPFLAGS
)
249 RBUILD_HOST_LFLAGS
= $(TOOLS_LFLAGS
)
252 rbuild
: $(RBUILD_TARGET
)
254 $(RBUILD_TARGET
): $(RBUILD_OBJECTS
) |
$(RBUILD_OUT
)
256 ${host_gpp} $(RBUILD_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
258 $(RBUILD_INT_
)automaticdependency.o
: $(RBUILD_BASE_
)automaticdependency.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
260 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
262 $(RBUILD_INT_
)bootstrap.o
: $(RBUILD_BASE_
)bootstrap.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
264 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
266 $(RBUILD_INT_
)cdfile.o
: $(RBUILD_BASE_
)cdfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
268 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
270 $(RBUILD_INT_
)compilerflag.o
: $(RBUILD_BASE_
)compilerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
272 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
274 $(RBUILD_INT_
)configuration.o
: $(RBUILD_BASE_
)configuration.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
276 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
278 $(RBUILD_INT_
)define.o
: $(RBUILD_BASE_
)define.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
280 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
282 $(RBUILD_INT_
)exception.o
: $(RBUILD_BASE_
)exception.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
284 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
286 $(RBUILD_INT_
)filesupportcode.o
: $(RBUILD_BASE_
)filesupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
288 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
290 $(RBUILD_INT_
)include.o
: $(RBUILD_BASE_
)include.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
292 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
294 $(RBUILD_INT_
)installfile.o
: $(RBUILD_BASE_
)installfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
296 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
298 $(RBUILD_INT_
)linkerflag.o
: $(RBUILD_BASE_
)linkerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
300 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
302 $(RBUILD_INT_
)module.o
: $(RBUILD_BASE_
)module.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
304 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
306 $(RBUILD_INT_
)project.o
: $(RBUILD_BASE_
)project.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
308 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
310 $(RBUILD_INT_
)rbuild.o
: $(RBUILD_BASE_
)rbuild.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
312 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
314 $(RBUILD_INT_
)ssprintf.o
: $(RBUILD_BASE_
)ssprintf.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
316 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
318 $(RBUILD_INT_
)stubbedcomponent.o
: $(RBUILD_BASE_
)stubbedcomponent.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
320 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
322 $(RBUILD_INT_
)wineresource.o
: $(RBUILD_BASE_
)wineresource.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
324 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
326 $(RBUILD_INT_
)testsupportcode.o
: $(RBUILD_BASE_
)testsupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
328 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
330 $(RBUILD_INT_
)XML.o
: $(RBUILD_BASE_
)XML.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
332 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
334 $(RBUILD_BACKEND_INT_
)backend.o
: $(RBUILD_BACKEND_BASE_
)backend.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_BACKEND_INT
)
336 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
338 $(RBUILD_MINGW_INT_
)mingw.o
: $(RBUILD_MINGW_BASE_
)mingw.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
340 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
342 $(RBUILD_MINGW_INT_
)modulehandler.o
: $(RBUILD_MINGW_BASE_
)modulehandler.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
344 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
346 $(RBUILD_MINGW_INT_
)proxymakefile.o
: $(RBUILD_MINGW_BASE_
)proxymakefile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
348 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
350 $(RBUILD_DEVCPP_INT_
)devcpp.o
: $(RBUILD_DEVCPP_BASE_
)devcpp.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_DEVCPP_INT
)
352 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
354 $(RBUILD_MSVC_INT_
)genguid.o
: $(RBUILD_MSVC_BASE_
)genguid.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
356 ${host_gpp} $(RBUILD_HOST_CFLAGS
) -c
$< -o
$@
358 $(RBUILD_MSVC_INT_
)msvc.o
: $(RBUILD_MSVC_BASE_
)msvc.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
360 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
362 $(RBUILD_MSVC_INT_
)msvcmaker.o
: $(RBUILD_MSVC_BASE_
)msvcmaker.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
364 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
366 $(RBUILD_MSVC_INT_
)vcprojmaker.o
: $(RBUILD_MSVC_BASE_
)vcprojmaker.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MSVC_INT
)
368 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
370 $(RBUILD_TEST_TARGET
): $(RBUILD_TEST_OBJECTS
) $(RBUILD_HEADERS
) |
$(RBUILD_OUT
)
372 ${host_gpp} $(RBUILD_TEST_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
374 $(RBUILD_TESTS_INT_
)cdfiletest.o
: $(RBUILD_TESTS_BASE_
)cdfiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
376 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
378 $(RBUILD_TESTS_INT_
)definetest.o
: $(RBUILD_TESTS_BASE_
)definetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
380 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
382 $(RBUILD_TESTS_INT_
)functiontest.o
: $(RBUILD_TESTS_BASE_
)functiontest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
384 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
386 $(RBUILD_TESTS_INT_
)iftest.o
: $(RBUILD_TESTS_BASE_
)iftest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
388 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
390 $(RBUILD_TESTS_INT_
)includetest.o
: $(RBUILD_TESTS_BASE_
)includetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
392 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
394 $(RBUILD_TESTS_INT_
)invoketest.o
: $(RBUILD_TESTS_BASE_
)invoketest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
396 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
398 $(RBUILD_TESTS_INT_
)linkerflagtest.o
: $(RBUILD_TESTS_BASE_
)linkerflagtest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
400 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
402 $(RBUILD_TESTS_INT_
)moduletest.o
: $(RBUILD_TESTS_BASE_
)moduletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
404 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
406 $(RBUILD_TESTS_INT_
)projecttest.o
: $(RBUILD_TESTS_BASE_
)projecttest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
408 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
410 $(RBUILD_TESTS_INT_
)sourcefiletest.o
: $(RBUILD_TESTS_BASE_
)sourcefiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
412 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
414 $(RBUILD_TESTS_INT_
)symboltest.o
: $(RBUILD_TESTS_BASE_
)symboltest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
416 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
418 $(RBUILD_TESTS_INT_
)alltests.o
: $(RBUILD_TESTS_BASE_
)alltests.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
420 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
424 rbuild_test
: $(RBUILD_TEST_TARGET
)
426 $(Q
)$(RBUILD_TEST_TARGET
)
428 .PHONY
: rbuild_test_clean
429 rbuild_test_clean
: $(RBUILD_TEST_TARGET
) $(RBUILD_TESTS_INT
)
430 -@
$(rm) $(RBUILD_TEST_TARGET
) $(RBUILD_TEST_SPECIAL_OBJECTS
) 2>$(NUL
)
433 rbuild_clean
: $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) $(RBUILD_TESTS_INT
)
434 -@
$(rm) $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) 2>$(NUL
)