source: trunk/kBuild/gnumake-footer.kmk@ 734

Last change on this file since 734 was 729, checked in by bird, 19 years ago

The target _PATH property should be working now.

  • Property svn:keywords set to Id
File size: 17.8 KB
Line 
1# $Id: gnumake-footer.kmk 729 2006-12-17 02:12:07Z bird $
2## @file
3#
4# kBuild - Additional footer for use when bootstrapping kBuild using Vanilla GNU Make.
5#
6# Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
7#
8#
9# This file is part of kBuild.
10#
11# kBuild is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# kBuild is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with kBuild; if not, write to the Free Software
23# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24#
25#
26
27## Figure out the tool for a source
28# @param target source file
29# @param source normalized main target
30# @param type tooltype
31# @param bld_trg build target.
32# @param bld_trg_arch build target architecture.
33# @remark Obsoleted by kBuild helpers in kmk. Only required for gmake compatbility.
34_SOURCE_TOOL = $(strip $(firstword \
35 $($(target)_$(source)_$(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
36 $($(target)_$(source)_$(type)TOOL.$(bld_trg)) \
37 $($(target)_$(source)_$(type)TOOL) \
38 $($(target)_$(source)_TOOL.$(bld_trg).$(bld_trg_arch)) \
39 $($(target)_$(source)_TOOL.$(bld_trg)) \
40 $($(target)_$(source)_TOOL) \
41 $($(source)_$(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
42 $($(source)_$(type)TOOL.$(bld_trg)) \
43 $($(source)_$(type)TOOL) \
44 $($(source)_TOOL.$(bld_trg).$(bld_trg_arch)) \
45 $($(source)_TOOL.$(bld_trg)) \
46 $($(source)_TOOL) \
47 $($(target)_$(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
48 $($(target)_$(type)TOOL.$(bld_trg)) \
49 $($(target)_$(type)TOOL) \
50 $($(target)_TOOL.$(bld_trg).$(bld_trg_arch)) \
51 $($(target)_TOOL.$(bld_trg)) \
52 $($(target)_TOOL) \
53 $($(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
54 $($(type)TOOL.$(bld_trg)) \
55 $($(type)TOOL) \
56 $(TOOL.$(bld_trg).$(bld_trg_arch)) \
57 $(TOOL.$(bld_trg)) \
58 $(TOOL) ))
59
60## Figure out where to put object files.
61# @param $1 source file
62# @param $2 normalized main target
63# @remark There are two major hacks here:
64# 1. Source files in the output directory are translated into a gen/ subdir.
65# 2. Catch anyone specifying $(PATH_SUB_CURRENT)/sourcefile.c.
66# @remark obsoleted by kBuild helpers in kmk. Only required for gmake compatbility.
67_OBJECT_BASE = $(PATH_TARGET)/$(2)/$(call no-root-slash,$(call no-drive,$(basename \
68 $(patsubst $(PATH_ROOT)/%,%,$(patsubst $(PATH_SUB_CURRENT)/%,%,$(patsubst $(PATH_TARGET)/$(2)/%,gen/%,$(1)))))))
69
70
71## Generic macro for processing C, C++ and Assembly sources.
72# @param $(target) Normalized target name.
73# @param $(source) Source file name.
74# @param $(type) Source type. {C,CXX,AS}
75# @param bld_type Build type.
76# @param bld_trg Build target.
77# @param bld_trg_arch Build target arch.
78# @param bld_trg_cpu Build target cpu.
79# @remark obsoleted by kBuild helpers in kmk. Only required for limited gmake compatbility.
80#
81define def_target_source_c_cpp_asm_rc_old
82#$ (warning dbg: def_target_source_c_cpp_asm_rc_old: source='$(source)' target='$(target)' type='$(type)')
83
84tool := $(call _SOURCE_TOOL,$(source),$(target),$(type))
85outbase := $(call _OBJECT_BASE,$(source),$(target))
86PATH_$(target)_$(source) := $(patsubst %/,%,$(dir $(outbase)))
87dirdep := $(call DIRDEP,$(dir $(outbase)))
88defs :=\
89 $(TOOL_$(tool)_DEFS)\
90 $(TOOL_$(tool)_DEFS.$(bld_type))\
91 $(TOOL_$(tool)_DEFS.$(bld_trg))\
92 $(TOOL_$(tool)_DEFS.$(bld_trg_arch))\
93 $(TOOL_$(tool)_DEFS.$(bld_trg).$(bld_trg_arch))\
94 $(TOOL_$(tool)_DEFS.$(bld_trg_cpu))\
95 $(TOOL_$(tool)_$(type)DEFS)\
96 $(TOOL_$(tool)_$(type)DEFS.$(bld_type))\
97 $(foreach sdk, $(SDKS.$(bld_trg).$(bld_trg_arch)) \
98 $(SDKS.$(bld_trg_arch)) \
99 $(SDKS.$(bld_trg)) \
100 $(SDKS.$(bld_type)) \
101 $(SDKS),\
102 $(SDK_$(sdk)_DEFS)\
103 $(SDK_$(sdk)_DEFS.$(bld_type))\
104 $(SDK_$(sdk)_DEFS.$(bld_trg))\
105 $(SDK_$(sdk)_DEFS.$(bld_trg_arch))\
106 $(SDK_$(sdk)_DEFS.$(bld_trg).$(bld_trg_arch))\
107 $(SDK_$(sdk)_DEFS.$(bld_trg_cpu))\
108 $(SDK_$(sdk)_$(type)DEFS)\
109 $(SDK_$(sdk)_$(type)DEFS.$(bld_type))\
110 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg))\
111 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_arch))\
112 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg).$(bld_trg_arch))\
113 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_cpu)))\
114 $(DEFS)\
115 $(DEFS.$(bld_type))\
116 $(DEFS.$(bld_trg))\
117 $(DEFS.$(bld_trg_arch))\
118 $(DEFS.$(bld_trg).$(bld_trg_arch))\
119 $(DEFS.$(bld_trg_cpu))\
120 $($(type)DEFS)\
121 $($(type)DEFS.$(bld_type))\
122 $($(type)DEFS.$(bld_trg))\
123 $($(type)DEFS.$(bld_trg_arch))\
124 $($(type)DEFS.$(bld_trg).$(bld_trg_arch))\
125 $($(type)DEFS.$(bld_trg_cpu))\
126 $(foreach sdk, $($(target)_SDKS.$(bld_trg).$(bld_trg_arch)) \
127 $($(target)_SDKS.$(bld_trg_arch)) \
128 $($(target)_SDKS.$(bld_trg)) \
129 $($(target)_SDKS.$(bld_type)) \
130 $($(target)_SDKS),\
131 $(SDK_$(sdk)_DEFS)\
132 $(SDK_$(sdk)_DEFS.$(bld_type))\
133 $(SDK_$(sdk)_DEFS.$(bld_trg))\
134 $(SDK_$(sdk)_DEFS.$(bld_trg_arch))\
135 $(SDK_$(sdk)_DEFS.$(bld_trg).$(bld_trg_arch))\
136 $(SDK_$(sdk)_DEFS.$(bld_trg_cpu))\
137 $(SDK_$(sdk)_$(type)DEFS)\
138 $(SDK_$(sdk)_$(type)DEFS.$(bld_type))\
139 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg))\
140 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_arch))\
141 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg).$(bld_trg_arch))\
142 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_cpu)))\
143 $($(target)_DEFS)\
144 $($(target)_DEFS.$(bld_type))\
145 $($(target)_DEFS.$(bld_trg))\
146 $($(target)_DEFS.$(bld_trg_arch))\
147 $($(target)_DEFS.$(bld_trg).$(bld_trg_arch))\
148 $($(target)_DEFS.$(bld_trg_cpu))\
149 $($(target)_$(type)DEFS)\
150 $($(target)_$(type)DEFS.$(bld_type))\
151 $($(target)_$(type)DEFS.$(bld_trg))\
152 $($(target)_$(type)DEFS.$(bld_trg_arch))\
153 $($(target)_$(type)DEFS.$(bld_trg).$(bld_trg_arch))\
154 $($(target)_$(type)DEFS.$(bld_trg_cpu))\
155 $(foreach sdk, $($(source)_SDKS.$(bld_trg).$(bld_trg_arch)) \
156 $($(source)_SDKS.$(bld_trg_arch)) \
157 $($(source)_SDKS.$(bld_trg)) \
158 $($(source)_SDKS.$(bld_type)) \
159 $($(source)_SDKS),\
160 $(SDK_$(sdk)_DEFS)\
161 $(SDK_$(sdk)_DEFS.$(bld_type))\
162 $(SDK_$(sdk)_DEFS.$(bld_trg))\
163 $(SDK_$(sdk)_DEFS.$(bld_trg_arch))\
164 $(SDK_$(sdk)_DEFS.$(bld_trg).$(bld_trg_arch))\
165 $(SDK_$(sdk)_DEFS.$(bld_trg_cpu))\
166 $(SDK_$(sdk)_$(type)DEFS)\
167 $(SDK_$(sdk)_$(type)DEFS.$(bld_type))\
168 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg))\
169 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_arch))\
170 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg).$(bld_trg_arch))\
171 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_cpu)))\
172 $($(source)_DEFS)\
173 $($(source)_DEFS.$(bld_type))\
174 $($(source)_DEFS.$(bld_trg))\
175 $($(source)_DEFS.$(bld_trg_arch))\
176 $($(source)_DEFS.$(bld_trg).$(bld_trg_arch))\
177 $($(source)_DEFS.$(bld_trg_cpu))\
178 $($(source)_$(type)DEFS)\
179 $($(source)_$(type)DEFS.$(bld_type))\
180 $($(source)_$(type)DEFS.$(bld_trg))\
181 $($(source)_$(type)DEFS.$(bld_trg_arch))\
182 $($(source)_$(type)DEFS.$(bld_trg).$(bld_trg_arch))\
183 $($(source)_$(type)DEFS.$(bld_trg_cpu))\
184 $(foreach sdk, $($(target)_$(source)_SDKS.$(bld_trg).$(bld_trg_arch)) \
185 $($(target)_$(source)_SDKS.$(bld_trg_arch)) \
186 $($(target)_$(source)_SDKS.$(bld_trg)) \
187 $($(target)_$(source)_SDKS.$(bld_type)) \
188 $($(target)_$(source)_SDKS),\
189 $(SDK_$(sdk)_DEFS)\
190 $(SDK_$(sdk)_DEFS.$(bld_type))\
191 $(SDK_$(sdk)_DEFS.$(bld_trg))\
192 $(SDK_$(sdk)_DEFS.$(bld_trg_arch))\
193 $(SDK_$(sdk)_DEFS.$(bld_trg).$(bld_trg_arch))\
194 $(SDK_$(sdk)_DEFS.$(bld_trg_cpu))\
195 $(SDK_$(sdk)_$(type)DEFS)\
196 $(SDK_$(sdk)_$(type)DEFS.$(bld_type))\
197 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg))\
198 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_arch))\
199 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg).$(bld_trg_arch))\
200 $(SDK_$(sdk)_$(type)DEFS.$(bld_trg_cpu)))\
201 $($(target)_$(source)_DEFS)\
202 $($(target)_$(source)_DEFS.$(bld_type))\
203 $($(target)_$(source)_DEFS.$(bld_trg))\
204 $($(target)_$(source)_DEFS.$(bld_trg_arch))\
205 $($(target)_$(source)_DEFS.$(bld_trg).$(bld_trg_arch))\
206 $($(target)_$(source)_DEFS.$(bld_trg_cpu))\
207 $($(target)_$(source)_$(type)DEFS)\
208 $($(target)_$(source)_$(type)DEFS.$(bld_type))\
209 $($(target)_$(source)_$(type)DEFS.$(bld_trg))\
210 $($(target)_$(source)_$(type)DEFS.$(bld_trg_arch))\
211 $($(target)_$(source)_$(type)DEFS.$(bld_trg).$(bld_trg_arch))\
212 $($(target)_$(source)_$(type)DEFS.$(bld_trg_cpu))
213incs :=\
214 $($(target)_$(source)_$(type)INCS.$(bld_trg_cpu))\
215 $($(target)_$(source)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
216 $($(target)_$(source)_$(type)INCS.$(bld_trg_arch))\
217 $($(target)_$(source)_$(type)INCS.$(bld_trg))\
218 $($(target)_$(source)_$(type)INCS.$(bld_type))\
219 $($(target)_$(source)_$(type)INCS)\
220 $($(target)_$(source)_INCS.$(bld_trg_cpu))\
221 $($(target)_$(source)_INCS.$(bld_trg).$(bld_trg_arch))\
222 $($(target)_$(source)_INCS.$(bld_trg_arch))\
223 $($(target)_$(source)_INCS.$(bld_trg))\
224 $($(target)_$(source)_INCS.$(bld_type))\
225 $($(target)_$(source)_INCS)\
226 $(foreach sdk, $($(target)_$(source)_SDKS.$(bld_trg).$(bld_trg_arch)) \
227 $($(target)_$(source)_SDKS.$(bld_trg_arch)) \
228 $($(target)_$(source)_SDKS.$(bld_trg)) \
229 $($(target)_$(source)_SDKS.$(bld_type)) \
230 $($(target)_$(source)_SDKS),\
231 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_cpu))\
232 $(SDK_$(sdk)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
233 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_arch))\
234 $(SDK_$(sdk)_$(type)INCS.$(bld_trg))\
235 $(SDK_$(sdk)_$(type)INCS.$(bld_type))\
236 $(SDK_$(sdk)_$(type)INCS)\
237 $(SDK_$(sdk)_INCS.$(bld_trg_cpu))\
238 $(SDK_$(sdk)_INCS.$(bld_trg).$(bld_trg_arch))\
239 $(SDK_$(sdk)_INCS.$(bld_trg_arch))\
240 $(SDK_$(sdk)_INCS.$(bld_trg))\
241 $(SDK_$(sdk)_INCS.$(bld_type))\
242 $(SDK_$(sdk)_INCS))\
243 $($(source)_$(type)INCS.$(bld_trg_cpu))\
244 $($(source)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
245 $($(source)_$(type)INCS.$(bld_trg_arch))\
246 $($(source)_$(type)INCS.$(bld_trg))\
247 $($(source)_$(type)INCS.$(bld_type))\
248 $($(source)_$(type)INCS)\
249 $($(source)_INCS.$(bld_trg_cpu))\
250 $($(source)_INCS.$(bld_trg).$(bld_trg_arch))\
251 $($(source)_INCS.$(bld_trg_arch))\
252 $($(source)_INCS.$(bld_trg))\
253 $($(source)_INCS.$(bld_type))\
254 $($(source)_INCS)\
255 $(foreach sdk, $($(source)_SDKS.$(bld_trg).$(bld_trg_arch)) \
256 $($(source)_SDKS.$(bld_trg_arch)) \
257 $($(source)_SDKS.$(bld_trg)) \
258 $($(source)_SDKS.$(bld_type)) \
259 $($(source)_SDKS),\
260 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_cpu))\
261 $(SDK_$(sdk)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
262 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_arch))\
263 $(SDK_$(sdk)_$(type)INCS.$(bld_trg))\
264 $(SDK_$(sdk)_$(type)INCS.$(bld_type))\
265 $(SDK_$(sdk)_$(type)INCS)\
266 $(SDK_$(sdk)_INCS.$(bld_trg_cpu))\
267 $(SDK_$(sdk)_INCS.$(bld_trg).$(bld_trg_arch))\
268 $(SDK_$(sdk)_INCS.$(bld_trg_arch))\
269 $(SDK_$(sdk)_INCS.$(bld_trg))\
270 $(SDK_$(sdk)_INCS.$(bld_type))\
271 $(SDK_$(sdk)_INCS))\
272 $($(target)_$(type)INCS.$(bld_trg_cpu))\
273 $($(target)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
274 $($(target)_$(type)INCS.$(bld_trg_arch))\
275 $($(target)_$(type)INCS.$(bld_trg))\
276 $($(target)_$(type)INCS.$(bld_type))\
277 $($(target)_$(type)INCS)\
278 $($(target)_INCS.$(bld_trg_cpu))\
279 $($(target)_INCS.$(bld_trg).$(bld_trg_arch))\
280 $($(target)_INCS.$(bld_trg_arch))\
281 $($(target)_INCS.$(bld_trg))\
282 $($(target)_INCS.$(bld_type))\
283 $($(target)_INCS)\
284 $(foreach sdk, $($(target)_SDKS.$(bld_trg).$(bld_trg_arch)) \
285 $($(target)_SDKS.$(bld_trg_arch)) \
286 $($(target)_SDKS.$(bld_trg)) \
287 $($(target)_SDKS.$(bld_type)) \
288 $($(target)_SDKS),\
289 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_cpu))\
290 $(SDK_$(sdk)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
291 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_arch))\
292 $(SDK_$(sdk)_$(type)INCS.$(bld_trg))\
293 $(SDK_$(sdk)_$(type)INCS.$(bld_type))\
294 $(SDK_$(sdk)_$(type)INCS)\
295 $(SDK_$(sdk)_INCS.$(bld_trg_cpu))\
296 $(SDK_$(sdk)_INCS.$(bld_trg).$(bld_trg_arch))\
297 $(SDK_$(sdk)_INCS.$(bld_trg_arch))\
298 $(SDK_$(sdk)_INCS.$(bld_trg))\
299 $(SDK_$(sdk)_INCS.$(bld_type))\
300 $(SDK_$(sdk)_INCS))\
301 $(INCS.$(bld_trg_cpu))\
302 $(INCS.$(bld_trg).$(bld_trg_arch))\
303 $(INCS.$(bld_trg_arch))\
304 $(INCS.$(bld_trg))\
305 $(INCS.$(bld_type))\
306 $(INCS)\
307 $(foreach sdk, $(SDKS.$(bld_trg).$(bld_trg_arch)) \
308 $(SDKS.$(bld_trg_arch)) \
309 $(SDKS.$(bld_trg)) \
310 $(SDKS.$(bld_type)) \
311 $(SDKS),\
312 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_cpu))\
313 $(SDK_$(sdk)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
314 $(SDK_$(sdk)_$(type)INCS.$(bld_trg_arch))\
315 $(SDK_$(sdk)_$(type)INCS.$(bld_trg))\
316 $(SDK_$(sdk)_$(type)INCS.$(bld_type))\
317 $(SDK_$(sdk)_$(type)INCS)\
318 $(SDK_$(sdk)_INCS.$(bld_trg_cpu))\
319 $(SDK_$(sdk)_INCS.$(bld_trg).$(bld_trg_arch))\
320 $(SDK_$(sdk)_INCS.$(bld_trg_arch))\
321 $(SDK_$(sdk)_INCS.$(bld_trg))\
322 $(SDK_$(sdk)_INCS.$(bld_type))\
323 $(SDK_$(sdk)_INCS))\
324 $(TOOL_$(tool)_$(type)INCS.$(bld_trg_cpu))\
325 $(TOOL_$(tool)_$(type)INCS.$(bld_trg).$(bld_trg_arch))\
326 $(TOOL_$(tool)_$(type)INCS.$(bld_trg_arch))\
327 $(TOOL_$(tool)_$(type)INCS.$(bld_trg))\
328 $(TOOL_$(tool)_$(type)INCS.$(bld_type))\
329 $(TOOL_$(tool)_$(type)INCS)
330flags :=\
331 $(TOOL_$(tool)_$(type)FLAGS)\
332 $(TOOL_$(tool)_$(type)FLAGS.$(bld_type))\
333 $(TOOL_$(tool)_$(type)FLAGS.$(bld_trg))\
334 $(TOOL_$(tool)_$(type)FLAGS.$(bld_trg_arch))\
335 $(TOOL_$(tool)_$(type)FLAGS.$(bld_trg).$(bld_trg_arch))\
336 $(TOOL_$(tool)_$(type)FLAGS.$(bld_trg_cpu))\
337 $($(type)FLAGS)\
338 $($(type)FLAGS.$(bld_type))\
339 $($(type)FLAGS.$(bld_trg))\
340 $($(type)FLAGS.$(bld_trg_arch))\
341 $($(type)FLAGS.$(bld_trg).$(bld_trg_arch))\
342 $($(type)FLAGS.$(bld_trg_cpu))\
343 $($(target)_$(type)FLAGS)\
344 $($(target)_$(type)FLAGS.$(bld_type))\
345 $($(target)_$(type)FLAGS.$(bld_trg))\
346 $($(target)_$(type)FLAGS.$(bld_trg_arch))\
347 $($(target)_$(type)FLAGS.$(bld_trg).$(bld_trg_arch))\
348 $($(target)_$(type)FLAGS.$(bld_trg_cpu))\
349 $($(source)_$(type)FLAGS)\
350 $($(source)_$(type)FLAGS.$(bld_type))\
351 $($(source)_$(type)FLAGS.$(bld_trg))\
352 $($(source)_$(type)FLAGS.$(bld_trg_arch))\
353 $($(source)_$(type)FLAGS.$(bld_trg).$(bld_trg_arch))\
354 $($(source)_$(type)FLAGS.$(bld_trg_cpu))\
355 $($(target)_$(source)_$(type)FLAGS)\
356 $($(target)_$(source)_$(type)FLAGS.$(bld_type))\
357 $($(target)_$(source)_$(type)FLAGS.$(bld_trg))\
358 $($(target)_$(source)_$(type)FLAGS.$(bld_trg_arch))\
359 $($(target)_$(source)_$(type)FLAGS.$(bld_trg).$(bld_trg_arch))\
360 $($(target)_$(source)_$(type)FLAGS.$(bld_trg_cpu))
361# this isn't 100% in sync with kBuild, but it doesn't matter as it's only for gmake now.
362objsuff := $(firstword \
363 $($(target)_$(source)_OBJSUFF.$(bld_trg).$(bld_trg_arch))\
364 $($(target)_$(source)_OBJSUFF.$(bld_trg))\
365 $($(target)_$(source)_OBJSUFF)\
366 $($(source)_OBJSUFF.$(bld_trg).$(bld_trg_arch))\
367 $($(source)_OBJSUFF.$(bld_trg))\
368 $($(source)_OBJSUFF)\
369 $($(target)_OBJSUFF.$(bld_trg).$(bld_trg_arch))\
370 $($(target)_OBJSUFF.$(bld_trg))\
371 $($(target)_OBJSUFF)\
372 $(TOOL_$(tool)_$(type)OBJSUFF.$(bld_trg).$(bld_trg_arch))\
373 $(TOOL_$(tool)_$(type)OBJSUFF.$(bld_trg))\
374 $(TOOL_$(tool)_$(type)OBJSUFF)\
375 $(SUFF_OBJ))
376obj := $(outbase)$(objsuff)
377deps := \
378 $($(target)_$(source)_DEPS)\
379 $($(target)_$(source)_DEPS.$(bld_type))\
380 $($(target)_$(source)_DEPS.$(bld_trg))\
381 $($(target)_$(source)_DEPS.$(bld_trg_arch))\
382 $($(target)_$(source)_DEPS.$(bld_trg).$(bld_trg_arch))\
383 $($(target)_$(source)_DEPS.$(bld_trg_cpu))\
384 $($(source)_DEPS)\
385 $($(source)_DEPS.$(bld_type))\
386 $($(source)_DEPS.$(bld_trg))\
387 $($(source)_DEPS.$(bld_trg_arch))\
388 $($(source)_DEPS.$(bld_trg).$(bld_trg_arch))\
389 $($(source)_DEPS.$(bld_trg_cpu))\
390 $($(target)_DEPS)\
391 $($(target)_DEPS.$(bld_type))\
392 $($(target)_DEPS.$(bld_trg))\
393 $($(target)_DEPS.$(bld_trg_arch))\
394 $($(target)_DEPS.$(bld_trg).$(bld_trg_arch))\
395 $($(target)_DEPS.$(bld_trg_cpu))
396
397# dependencies
398dep := $(obj)$(SUFF_DEP)
399ifndef NO_COMPILE_CMDS_DEPS
400_DEPFILES_INCLUDED += $(dep)
401$(if $(wildcard $(dep)),$(eval include $(dep)))
402endif
403
404#$ (warning dbg: target=$(target) source=$(source) tool=$(tool) obj=$(obj) dep=$(dep) flags=$(flags) defs=$(defs) incs=$(incs) dirdep=$(dirdep) outbase=$(outbase) objsuff=$(objsuff) deps=$(deps))
405ifndef TOOL_$(tool)_COMPILE_$(type)_CMDS
406$(warning kBuild: tools: \
407 1 $($(target)_$(source)_$(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
408 2 $($(target)_$(source)_$(type)TOOL.$(bld_trg)) \
409 3 $($(target)_$(source)_$(type)TOOL) \
410 4 $($(target)_$(source)_TOOL.$(bld_trg).$(bld_trg_arch)) \
411 5 $($(target)_$(source)_TOOL.$(bld_trg)) \
412 6 $($(target)_$(source)_TOOL) \
413 7 $($(target)_$(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
414 8 $($(target)_$(type)TOOL.$(bld_trg)) \
415 9 $($(target)_$(type)TOOL) \
416 10 $($(target)_TOOL.$(bld_trg).$(bld_trg_arch)) \
417 11 $($(target)_TOOL.$(bld_trg)) \
418 12 $($(target)_TOOL) \
419 13 $($(source)_$(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
420 14 $($(source)_$(type)TOOL.$(bld_trg)) \
421 15 $($(source)_$(type)TOOL) \
422 16 $($(source)_TOOL.$(bld_trg).$(bld_trg_arch)) \
423 17 $($(source)_TOOL.$(bld_trg)) \
424 18 $($(source)_TOOL) \
425 19 $($(type)TOOL.$(bld_trg).$(bld_trg_arch)) \
426 20 $($(type)TOOL.$(bld_trg)) \
427 21 $($(type)TOOL) \
428 22 $(TOOL.$(bld_trg).$(bld_trg_arch)) \
429 23 $(TOOL.$(bld_trg)) \
430 24 $(TOOL) )
431$(error kBuild: TOOL_$(tool)_COMPILE_$(type)_CMDS is not defined. source=$(source) target=$(target) )
432endif
433
434# call the tool
435$(target)_$(source)_CMDS_ := $(TOOL_$(tool)_COMPILE_$(type)_CMDS)
436$(target)_$(source)_OUTPUT_ := $(TOOL_$(tool)_COMPILE_$(type)_OUTPUT)
437$(target)_$(source)_DEPEND_ := $(TOOL_$(tool)_COMPILE_$(type)_DEPEND) $(deps) $(source)
438$(target)_$(source)_DEPORD_ := $(TOOL_$(tool)_COMPILE_$(type)_DEPORD) $(dirdep)
439
440# generate the compile rule.
441$(eval $(def_target_source_rule))
442
443_OUT_FILES += $($(target)_$(source)_OUTPUT_)
444$(target)_OBJS_ += $(obj)
445
446endef
447
Note: See TracBrowser for help on using the repository browser.