Partial 'make install' implementation
[reactos.git] / reactos / tools / rbuild / rbuild.mak
1 RBUILD_BASE = $(TOOLS_BASE_)rbuild
2 RBUILD_BASE_ = $(RBUILD_BASE)$(SEP)
3 RBUILD_INT = $(INTERMEDIATE_)$(RBUILD_BASE)
4 RBUILD_INT_ = $(RBUILD_INT)$(SEP)
5 RBUILD_OUT = $(OUTPUT_)$(RBUILD_BASE)
6 RBUILD_OUT_ = $(RBUILD_OUT)$(SEP)
7
8 $(RBUILD_INT): $(TOOLS_INT)
9 $(ECHO_MKDIR)
10 ${mkdir} $@
11
12 ifneq ($(INTERMEDIATE),$(OUTPUT))
13 $(RBUILD_OUT): $(TOOLS_OUT)
14 $(ECHO_MKDIR)
15 ${mkdir} $@
16 endif
17
18
19 RBUILD_BACKEND_BASE = $(RBUILD_BASE_)backend
20 RBUILD_BACKEND_BASE_ = $(RBUILD_BACKEND_BASE)$(SEP)
21 RBUILD_BACKEND_INT = $(INTERMEDIATE_)$(RBUILD_BACKEND_BASE)
22 RBUILD_BACKEND_INT_ = $(RBUILD_BACKEND_INT)$(SEP)
23 RBUILD_BACKEND_OUT = $(OUTPUT)$(RBUILD_BACKEND_BASE)
24 RBUILD_BACKEND_OUT_ = $(RBUILD_BACKEND_OUT)$(SEP)
25
26 $(RBUILD_BACKEND_INT): $(RBUILD_INT)
27 $(ECHO_MKDIR)
28 ${mkdir} $@
29
30 ifneq ($(INTERMEDIATE),$(OUTPUT))
31 $(RBUILD_BACKEND_OUT): $(RBUILD_OUT)
32 $(ECHO_MKDIR)
33 ${mkdir} $@
34 endif
35
36
37 RBUILD_MINGW_BASE = $(RBUILD_BACKEND_BASE_)mingw
38 RBUILD_MINGW_BASE_ = $(RBUILD_MINGW_BASE)$(SEP)
39 RBUILD_MINGW_INT = $(INTERMEDIATE_)$(RBUILD_MINGW_BASE)
40 RBUILD_MINGW_INT_ = $(RBUILD_MINGW_INT)$(SEP)
41 RBUILD_MINGW_OUT = $(OUTPUT)$(RBUILD_MINGW_BASE)
42 RBUILD_MINGW_OUT_ = $(RBUILD_MINGW_OUT)$(SEP)
43
44 $(RBUILD_MINGW_INT): $(RBUILD_BACKEND_INT)
45 $(ECHO_MKDIR)
46 ${mkdir} $@
47
48 ifneq ($(INTERMEDIATE),$(OUTPUT))
49 $(RBUILD_MINGW_OUT): $(RBUILD_BACKEND_OUT)
50 $(ECHO_MKDIR)
51 ${mkdir} $@
52 endif
53
54
55 RBUILD_TESTS_BASE = $(RBUILD_BASE_)tests
56 RBUILD_TESTS_BASE_ = $(RBUILD_TESTS_BASE)$(SEP)
57 RBUILD_TESTS_INT = $(INTERMEDIATE_)$(RBUILD_TESTS_BASE)
58 RBUILD_TESTS_INT_ = $(RBUILD_TESTS_INT)$(SEP)
59 RBUILD_TESTS_OUT = $(OUTPUT)$(RBUILD_TESTS_BASE)
60
61 $(RBUILD_TESTS_INT): $(RBUILD_INT)
62 $(ECHO_MKDIR)
63 ${mkdir} $@
64
65 ifneq ($(INTERMEDIATE),$(OUTPUT))
66 $(RBUILD_TESTS_OUT): $(RBUILD_OUT)
67 $(ECHO_MKDIR)
68 ${mkdir} $@
69 endif
70
71
72 RBUILD_DEVCPP_BASE = $(RBUILD_BACKEND_BASE_)devcpp
73 RBUILD_DEVCPP_BASE_ = $(RBUILD_DEVCPP_BASE)$(SEP)
74 RBUILD_DEVCPP_INT = $(INTERMEDIATE_)$(RBUILD_DEVCPP_BASE)
75 RBUILD_DEVCPP_INT_ = $(RBUILD_DEVCPP_INT)$(SEP)
76 RBUILD_DEVCPP_OUT = $(OUTPUT)$(RBUILD_DEVCPP_BASE)
77 RBUILD_DEVCPP_OUT_ = $(RBUILD_DEVCPP_OUT)$(SEP)
78
79 $(RBUILD_DEVCPP_INT): $(RBUILD_BACKEND_INT)
80 $(ECHO_MKDIR)
81 ${mkdir} $@
82
83 ifneq ($(INTERMEDIATE),$(OUTPUT))
84 $(RBUILD_DEVCPP_OUT): $(RBUILD_BACKEND_OUT)
85 $(ECHO_MKDIR)
86 ${mkdir} $@
87 endif
88
89
90 RBUILD_TARGET = \
91 $(EXEPREFIX)$(RBUILD_OUT_)rbuild$(EXEPOSTFIX)
92
93 RBUILD_TEST_TARGET = \
94 $(EXEPREFIX)$(RBUILD_OUT_)rbuild_test$(EXEPOSTFIX)
95
96 RBUILD_BACKEND_MINGW_BASE_SOURCES = $(addprefix $(RBUILD_MINGW_BASE_), \
97 mingw.cpp \
98 modulehandler.cpp \
99 )
100
101 RBUILD_BACKEND_DEVCPP_BASE_SOURCES = $(addprefix $(RBUILD_DEVCPP_BASE_), \
102 devcpp.cpp \
103 )
104
105 RBUILD_BACKEND_SOURCES = \
106 $(RBUILD_BACKEND_MINGW_BASE_SOURCES) \
107 $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES) \
108 $(RBUILD_BACKEND_BASE_)backend.cpp
109
110 RBUILD_COMMON_SOURCES = \
111 $(RBUILD_BACKEND_SOURCES) \
112 $(addprefix $(RBUILD_BASE_), \
113 automaticdependency.cpp \
114 bootstrap.cpp \
115 cdfile.cpp \
116 compilerflag.cpp \
117 define.cpp \
118 exception.cpp \
119 include.cpp \
120 installfile.cpp \
121 linkerflag.cpp \
122 module.cpp \
123 project.cpp \
124 ssprintf.cpp \
125 stubbedcomponent.cpp \
126 XML.cpp \
127 )
128
129 RBUILD_SPECIAL_SOURCES = \
130 $(RBUILD_BASE_)rbuild.cpp
131
132 RBUILD_SOURCES = \
133 $(RBUILD_COMMON_SOURCES) \
134 $(RBUILD_SPECIAL_SOURCES)
135
136 RBUILD_COMMON_OBJECTS = \
137 $(addprefix $(INTERMEDIATE_), $(RBUILD_COMMON_SOURCES:.cpp=.o))
138
139 RBUILD_SPECIAL_OBJECTS = \
140 $(addprefix $(INTERMEDIATE_), $(RBUILD_SPECIAL_SOURCES:.cpp=.o))
141
142 RBUILD_OBJECTS = \
143 $(RBUILD_COMMON_OBJECTS) \
144 $(RBUILD_SPECIAL_OBJECTS)
145
146 RBUILD_TESTS = \
147 tests$(SEP)cdfiletest.cpp \
148 tests$(SEP)definetest.cpp \
149 tests$(SEP)functiontest.cpp \
150 tests$(SEP)iftest.cpp \
151 tests$(SEP)includetest.cpp \
152 tests$(SEP)invoketest.cpp \
153 tests$(SEP)linkerflagtest.cpp \
154 tests$(SEP)moduletest.cpp \
155 tests$(SEP)projecttest.cpp \
156 tests$(SEP)sourcefiletest.cpp \
157 tests$(SEP)symboltest.cpp
158
159 RBUILD_TEST_SPECIAL_SOURCES = \
160 $(addprefix $(RBUILD_BASE_), $(RBUILD_TESTS)) \
161 $(RBUILD_BASE_)tests$(SEP)alltests.cpp
162
163 RBUILD_TEST_SOURCES = \
164 $(RBUILD_COMMON_SOURCES) \
165 $(RBUILD_TEST_SPECIAL_SOURCES)
166
167 RBUILD_TEST_SPECIAL_OBJECTS = \
168 $(addprefix $(INTERMEDIATE_), $(RBUILD_TEST_SPECIAL_SOURCES:.cpp=.o))
169
170 RBUILD_TEST_OBJECTS = \
171 $(RBUILD_COMMON_OBJECTS) \
172 $(RBUILD_TEST_SPECIAL_OBJECTS)
173
174 RBUILD_HOST_CXXFLAGS = -g -I$(RBUILD_BASE) -Werror -Wall
175
176 RBUILD_HOST_LFLAGS = -g
177
178 .PHONY: rbuild
179 rbuild: $(RBUILD_TARGET)
180
181 $(RBUILD_TARGET): $(RBUILD_OBJECTS) $(RBUILD_OUT)
182 $(ECHO_LD)
183 ${host_gpp} $(RBUILD_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $@
184
185 $(RBUILD_INT_)automaticdependency.o: $(RBUILD_BASE_)automaticdependency.cpp $(RBUILD_INT)
186 $(ECHO_CC)
187 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
188
189 $(RBUILD_INT_)bootstrap.o: $(RBUILD_BASE_)bootstrap.cpp $(RBUILD_INT)
190 $(ECHO_CC)
191 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
192
193 $(RBUILD_INT_)cdfile.o: $(RBUILD_BASE_)cdfile.cpp $(RBUILD_INT)
194 $(ECHO_CC)
195 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
196
197 $(RBUILD_INT_)compilerflag.o: $(RBUILD_BASE_)compilerflag.cpp $(RBUILD_INT)
198 $(ECHO_CC)
199 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
200
201 $(RBUILD_INT_)define.o: $(RBUILD_BASE_)define.cpp $(RBUILD_INT)
202 $(ECHO_CC)
203 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
204
205 $(RBUILD_INT_)exception.o: $(RBUILD_BASE_)exception.cpp $(RBUILD_INT)
206 $(ECHO_CC)
207 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
208
209 $(RBUILD_INT_)include.o: $(RBUILD_BASE_)include.cpp $(RBUILD_INT)
210 $(ECHO_CC)
211 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
212
213 $(RBUILD_INT_)installfile.o: $(RBUILD_BASE_)installfile.cpp $(RBUILD_INT)
214 $(ECHO_CC)
215 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
216
217 $(RBUILD_INT_)linkerflag.o: $(RBUILD_BASE_)linkerflag.cpp $(RBUILD_INT)
218 $(ECHO_CC)
219 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
220
221 $(RBUILD_INT_)module.o: $(RBUILD_BASE_)module.cpp $(RBUILD_INT)
222 $(ECHO_CC)
223 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
224
225 $(RBUILD_INT_)project.o: $(RBUILD_BASE_)project.cpp $(RBUILD_INT)
226 $(ECHO_CC)
227 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
228
229 $(RBUILD_INT_)rbuild.o: $(RBUILD_BASE_)rbuild.cpp $(RBUILD_INT)
230 $(ECHO_CC)
231 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
232
233 $(RBUILD_INT_)ssprintf.o: $(RBUILD_BASE_)ssprintf.cpp $(RBUILD_INT)
234 $(ECHO_CC)
235 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
236
237 $(RBUILD_INT_)stubbedcomponent.o: $(RBUILD_BASE_)stubbedcomponent.cpp $(RBUILD_INT)
238 $(ECHO_CC)
239 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
240
241 $(RBUILD_INT_)XML.o: $(RBUILD_BASE_)XML.cpp $(RBUILD_INT)
242 $(ECHO_CC)
243 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
244
245 $(RBUILD_BACKEND_INT_)backend.o: $(RBUILD_BACKEND_BASE_)backend.cpp $(RBUILD_BACKEND_INT)
246 $(ECHO_CC)
247 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
248
249 $(RBUILD_MINGW_INT_)mingw.o: $(RBUILD_MINGW_BASE_)mingw.cpp $(RBUILD_MINGW_INT)
250 $(ECHO_CC)
251 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
252
253 $(RBUILD_MINGW_INT_)modulehandler.o: $(RBUILD_MINGW_BASE_)modulehandler.cpp $(RBUILD_MINGW_INT)
254 $(ECHO_CC)
255 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
256
257 $(RBUILD_DEVCPP_INT_)devcpp.o: $(RBUILD_DEVCPP_BASE_)devcpp.cpp $(RBUILD_DEVCPP_INT)
258 $(ECHO_CC)
259 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
260
261 $(RBUILD_TEST_TARGET): $(RBUILD_TEST_OBJECTS) $(RBUILD_OUT)
262 $(ECHO_LD)
263 ${host_gpp} $(RBUILD_TEST_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $@
264
265 $(RBUILD_TESTS_INT_)cdfiletest.o: $(RBUILD_TESTS_BASE_)cdfiletest.cpp $(RBUILD_TESTS_INT)
266 $(ECHO_CC)
267 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
268
269 $(RBUILD_TESTS_INT_)definetest.o: $(RBUILD_TESTS_BASE_)definetest.cpp $(RBUILD_TESTS_INT)
270 $(ECHO_CC)
271 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
272
273 $(RBUILD_TESTS_INT_)functiontest.o: $(RBUILD_TESTS_BASE_)functiontest.cpp $(RBUILD_TESTS_INT)
274 $(ECHO_CC)
275 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
276
277 $(RBUILD_TESTS_INT_)iftest.o: $(RBUILD_TESTS_BASE_)iftest.cpp $(RBUILD_TESTS_INT)
278 $(ECHO_CC)
279 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
280
281 $(RBUILD_TESTS_INT_)includetest.o: $(RBUILD_TESTS_BASE_)includetest.cpp $(RBUILD_TESTS_INT)
282 $(ECHO_CC)
283 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
284
285 $(RBUILD_TESTS_INT_)invoketest.o: $(RBUILD_TESTS_BASE_)invoketest.cpp $(RBUILD_TESTS_INT)
286 $(ECHO_CC)
287 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
288
289 $(RBUILD_TESTS_INT_)linkerflagtest.o: $(RBUILD_TESTS_BASE_)linkerflagtest.cpp $(RBUILD_TESTS_INT)
290 $(ECHO_CC)
291 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
292
293 $(RBUILD_TESTS_INT_)moduletest.o: $(RBUILD_TESTS_BASE_)moduletest.cpp $(RBUILD_TESTS_INT)
294 $(ECHO_CC)
295 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
296
297 $(RBUILD_TESTS_INT_)projecttest.o: $(RBUILD_TESTS_BASE_)projecttest.cpp $(RBUILD_TESTS_INT)
298 $(ECHO_CC)
299 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
300
301 $(RBUILD_TESTS_INT_)sourcefiletest.o: $(RBUILD_TESTS_BASE_)sourcefiletest.cpp $(RBUILD_TESTS_INT)
302 $(ECHO_CC)
303 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
304
305 $(RBUILD_TESTS_INT_)symboltest.o: $(RBUILD_TESTS_BASE_)symboltest.cpp $(RBUILD_TESTS_INT)
306 $(ECHO_CC)
307 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
308
309 $(RBUILD_TESTS_INT_)alltests.o: $(RBUILD_TESTS_BASE_)alltests.cpp $(RBUILD_TESTS_INT)
310 $(ECHO_CC)
311 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
312
313
314 .PHONY: rbuild_test
315
316 rbuild_test: $(RBUILD_TEST_TARGET)
317 $(ECHO_TEST)
318 $(Q)$(RBUILD_TEST_TARGET)
319
320 .PHONY: rbuild_test_clean
321 rbuild_test_clean: $(RBUILD_TEST_TARGET) $(RBUILD_TESTS_INT)
322 -@$(rm) $(RBUILD_TEST_TARGET) $(RBUILD_TEST_SPECIAL_OBJECTS) 2>$(NUL)
323
324 .PHONY: rbuild_clean
325 rbuild_clean: $(RBUILD_TARGET) $(RBUILD_OBJECTS) $(RBUILD_TESTS_INT)
326 -@$(rm) $(RBUILD_TARGET) $(RBUILD_OBJECTS) 2>$(NUL)
327 clean: rbuild_clean