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
)
107 $(EXEPREFIX
)$(RBUILD_OUT_
)rbuild
$(EXEPOSTFIX
)
109 RBUILD_TEST_TARGET
= \
110 $(EXEPREFIX
)$(RBUILD_OUT_
)rbuild_test
$(EXEPOSTFIX
)
112 RBUILD_BACKEND_MINGW_BASE_SOURCES
= $(addprefix $(RBUILD_MINGW_BASE_
), \
118 RBUILD_BACKEND_DEVCPP_BASE_SOURCES
= $(addprefix $(RBUILD_DEVCPP_BASE_
), \
122 RBUILD_BACKEND_SOURCES
= \
123 $(RBUILD_BACKEND_MINGW_BASE_SOURCES
) \
124 $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES
) \
125 $(RBUILD_BACKEND_BASE_
)backend.
cpp
127 RBUILD_COMMON_SOURCES
= \
128 $(RBUILD_BACKEND_SOURCES
) \
129 $(addprefix $(RBUILD_BASE_
), \
130 automaticdependency.
cpp \
137 filesupportcode.
cpp \
144 stubbedcomponent.
cpp \
145 testsupportcode.
cpp \
150 RBUILD_SPECIAL_SOURCES
= \
151 $(RBUILD_BASE_
)rbuild.
cpp
154 $(RBUILD_COMMON_SOURCES
) \
155 $(RBUILD_SPECIAL_SOURCES
)
157 RBUILD_COMMON_OBJECTS
= \
158 $(addprefix $(INTERMEDIATE_
), $(RBUILD_COMMON_SOURCES
:.
cpp=.o
))
160 RBUILD_SPECIAL_OBJECTS
= \
161 $(addprefix $(INTERMEDIATE_
), $(RBUILD_SPECIAL_SOURCES
:.
cpp=.o
))
164 $(RBUILD_COMMON_OBJECTS
) \
165 $(RBUILD_SPECIAL_OBJECTS
)
167 RBUILD_BACKEND_DEVCPP_HEADERS
= \
170 RBUILD_BACKEND_MINGW_HEADERS
= \
174 RBUILD_BACKEND_HEADERS
= \
176 $(addprefix devcpp
$(SEP
), $(RBUILD_BACKEND_DEVCPP_HEADERS
)) \
177 $(addprefix mingw
$(SEP
), $(RBUILD_BACKEND_MINGW_HEADERS
))
180 $(addprefix $(RBUILD_BASE_
), \
187 $(addprefix backend
$(SEP
), $(RBUILD_BACKEND_HEADERS
)) \
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
203 RBUILD_TEST_SPECIAL_SOURCES
= \
204 $(addprefix $(RBUILD_BASE_
), $(RBUILD_TESTS
)) \
205 $(RBUILD_BASE_
)tests
$(SEP
)alltests.
cpp
207 RBUILD_TEST_SOURCES
= \
208 $(RBUILD_COMMON_SOURCES
) \
209 $(RBUILD_TEST_SPECIAL_SOURCES
)
211 RBUILD_TEST_SPECIAL_OBJECTS
= \
212 $(addprefix $(INTERMEDIATE_
), $(RBUILD_TEST_SPECIAL_SOURCES
:.
cpp=.o
))
214 RBUILD_TEST_OBJECTS
= \
215 $(RBUILD_COMMON_OBJECTS
) \
216 $(RBUILD_TEST_SPECIAL_OBJECTS
)
218 RBUILD_HOST_CXXFLAGS
= -I
$(RBUILD_BASE
) $(TOOLS_CPPFLAGS
)
220 RBUILD_HOST_LFLAGS
= $(TOOLS_LFLAGS
)
223 rbuild
: $(RBUILD_TARGET
)
225 $(RBUILD_TARGET
): $(RBUILD_OBJECTS
) |
$(RBUILD_OUT
)
227 ${host_gpp} $(RBUILD_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
229 $(RBUILD_INT_
)automaticdependency.o
: $(RBUILD_BASE_
)automaticdependency.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
231 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
233 $(RBUILD_INT_
)bootstrap.o
: $(RBUILD_BASE_
)bootstrap.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
235 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
237 $(RBUILD_INT_
)cdfile.o
: $(RBUILD_BASE_
)cdfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
239 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
241 $(RBUILD_INT_
)compilerflag.o
: $(RBUILD_BASE_
)compilerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
243 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
245 $(RBUILD_INT_
)configuration.o
: $(RBUILD_BASE_
)configuration.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
247 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
249 $(RBUILD_INT_
)define.o
: $(RBUILD_BASE_
)define.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
251 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
253 $(RBUILD_INT_
)exception.o
: $(RBUILD_BASE_
)exception.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
255 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
257 $(RBUILD_INT_
)filesupportcode.o
: $(RBUILD_BASE_
)filesupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
259 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
261 $(RBUILD_INT_
)include.o
: $(RBUILD_BASE_
)include.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
263 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
265 $(RBUILD_INT_
)installfile.o
: $(RBUILD_BASE_
)installfile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
267 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
269 $(RBUILD_INT_
)linkerflag.o
: $(RBUILD_BASE_
)linkerflag.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
271 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
273 $(RBUILD_INT_
)module.o
: $(RBUILD_BASE_
)module.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
275 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
277 $(RBUILD_INT_
)project.o
: $(RBUILD_BASE_
)project.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
279 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
281 $(RBUILD_INT_
)rbuild.o
: $(RBUILD_BASE_
)rbuild.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
283 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
285 $(RBUILD_INT_
)ssprintf.o
: $(RBUILD_BASE_
)ssprintf.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
287 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
289 $(RBUILD_INT_
)stubbedcomponent.o
: $(RBUILD_BASE_
)stubbedcomponent.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
291 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
293 $(RBUILD_INT_
)wineresource.o
: $(RBUILD_BASE_
)wineresource.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
295 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
297 $(RBUILD_INT_
)testsupportcode.o
: $(RBUILD_BASE_
)testsupportcode.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
299 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
301 $(RBUILD_INT_
)XML.o
: $(RBUILD_BASE_
)XML.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_INT
)
303 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
305 $(RBUILD_BACKEND_INT_
)backend.o
: $(RBUILD_BACKEND_BASE_
)backend.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_BACKEND_INT
)
307 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
309 $(RBUILD_MINGW_INT_
)mingw.o
: $(RBUILD_MINGW_BASE_
)mingw.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
311 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
313 $(RBUILD_MINGW_INT_
)modulehandler.o
: $(RBUILD_MINGW_BASE_
)modulehandler.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
315 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
317 $(RBUILD_MINGW_INT_
)proxymakefile.o
: $(RBUILD_MINGW_BASE_
)proxymakefile.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_MINGW_INT
)
319 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
321 $(RBUILD_DEVCPP_INT_
)devcpp.o
: $(RBUILD_DEVCPP_BASE_
)devcpp.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_DEVCPP_INT
)
323 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
325 $(RBUILD_TEST_TARGET
): $(RBUILD_TEST_OBJECTS
) $(RBUILD_HEADERS
) |
$(RBUILD_OUT
)
327 ${host_gpp} $(RBUILD_TEST_OBJECTS
) $(RBUILD_HOST_LFLAGS
) -o
$@
329 $(RBUILD_TESTS_INT_
)cdfiletest.o
: $(RBUILD_TESTS_BASE_
)cdfiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
331 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
333 $(RBUILD_TESTS_INT_
)definetest.o
: $(RBUILD_TESTS_BASE_
)definetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
335 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
337 $(RBUILD_TESTS_INT_
)functiontest.o
: $(RBUILD_TESTS_BASE_
)functiontest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
339 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
341 $(RBUILD_TESTS_INT_
)iftest.o
: $(RBUILD_TESTS_BASE_
)iftest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
343 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
345 $(RBUILD_TESTS_INT_
)includetest.o
: $(RBUILD_TESTS_BASE_
)includetest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
347 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
349 $(RBUILD_TESTS_INT_
)invoketest.o
: $(RBUILD_TESTS_BASE_
)invoketest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
351 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
353 $(RBUILD_TESTS_INT_
)linkerflagtest.o
: $(RBUILD_TESTS_BASE_
)linkerflagtest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
355 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
357 $(RBUILD_TESTS_INT_
)moduletest.o
: $(RBUILD_TESTS_BASE_
)moduletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
359 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
361 $(RBUILD_TESTS_INT_
)projecttest.o
: $(RBUILD_TESTS_BASE_
)projecttest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
363 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
365 $(RBUILD_TESTS_INT_
)sourcefiletest.o
: $(RBUILD_TESTS_BASE_
)sourcefiletest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
367 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
369 $(RBUILD_TESTS_INT_
)symboltest.o
: $(RBUILD_TESTS_BASE_
)symboltest.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
371 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
373 $(RBUILD_TESTS_INT_
)alltests.o
: $(RBUILD_TESTS_BASE_
)alltests.
cpp $(RBUILD_HEADERS
) |
$(RBUILD_TESTS_INT
)
375 ${host_gpp} $(RBUILD_HOST_CXXFLAGS
) -c
$< -o
$@
379 rbuild_test
: $(RBUILD_TEST_TARGET
)
381 $(Q
)$(RBUILD_TEST_TARGET
)
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
)
388 rbuild_clean
: $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) $(RBUILD_TESTS_INT
)
389 -@
$(rm) $(RBUILD_TARGET
) $(RBUILD_OBJECTS
) 2>$(NUL
)