]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # Generic Install rules | |
3 | # | |
4 | ||
5 | ifndef INSTALL_MI_LCL_LIST | |
6 | INSTALL_MI_LCL_LIST = $(INSTALL_MI_LIST) | |
7 | endif | |
8 | ||
9 | ifndef INSTALL_MI_LCL_GEN_LIST | |
10 | INSTALL_MI_LCL_GEN_LIST = $(INSTALL_MI_GEN_LIST) | |
11 | endif | |
12 | ||
13 | ifndef INSTALL_MD_LCL_LIST | |
14 | INSTALL_MD_LCL_LIST = $(INSTALL_MD_LIST) | |
15 | endif | |
16 | ||
17 | ifndef INSTALL_MD_LCL_GEN_LIST | |
18 | INSTALL_MD_LCL_GEN_LIST = $(INSTALL_MD_GEN_LIST) | |
19 | endif | |
20 | ||
21 | ifndef INSTALL_KF_MI_LCL_LIST | |
22 | INSTALL_KF_MI_LCL_LIST = $(EXPORT_MI_LIST) | |
23 | endif | |
24 | ||
25 | ifndef INSTALL_KF_MI_LCL_GEN_LIST | |
26 | INSTALL_KF_MI_LCL_GEN_LIST = $(EXPORT_MI_GEN_LIST) | |
27 | endif | |
28 | ||
29 | ifndef INSTALL_KF_MD_LCL_LIST | |
30 | INSTALL_KF_MD_LCL_LIST = $(EXPORT_MD_LIST) | |
31 | endif | |
32 | ||
33 | ifndef INSTALL_KF_MD_LCL_GEN_LIST | |
34 | INSTALL_KF_MD_LCL_GEN_LIST = $(EXPORT_MD_GEN_LIST) | |
35 | endif | |
36 | ||
37 | ifndef INSTALL_KF_MI_LIST | |
38 | INSTALL_KF_MI_LIST = $(EXPORT_MI_LIST) | |
39 | endif | |
40 | ||
41 | ifndef INSTALL_KF_MI_GEN_LIST | |
42 | INSTALL_KF_MI_GEN_LIST = $(EXPORT_MI_GEN_LIST) | |
43 | endif | |
44 | ||
45 | ifndef INSTALL_KF_MD_LIST | |
46 | INSTALL_KF_MD_LIST = $(EXPORT_MD_LIST) | |
47 | endif | |
48 | ||
49 | ifndef INSTALL_KF_MD_GEN_LIST | |
50 | INSTALL_KF_MD_GEN_LIST = $(EXPORT_MD_GEN_LIST) | |
51 | endif | |
52 | ||
53 | ifneq ($(MACHINE_CONFIG), DEFAULT) | |
54 | OBJPATH = $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)_$(MACHINE_CONFIG) | |
55 | else | |
56 | OBJPATH = $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG) | |
57 | endif | |
58 | ||
59 | INSTALL_MI_GEN_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_GEN_LIST)) | |
60 | ||
61 | $(INSTALL_MI_GEN_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/% : % | |
62 | @true echo Installing $< in $(dir $@) | |
63 | $(_v)[ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \ | |
64 | filename=`$(BASENAME) $<`; \ | |
65 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
66 | $(RM) $(RMFLAGS) $@; \ | |
67 | [ -d ./incmidir ] || $(MKDIR) ./incmidir; \ | |
68 | echo garbage > ./incmidir/$${filename_strip}; \ | |
69 | $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ | |
70 | $< > ./incmidir/$${filename} || \ | |
71 | $(DECOMMENT) ./incmidir/$${filename} r > \ | |
72 | ./incmidir/$${filename_strip}; \ | |
73 | if [ -s ./incmidir/$${filename_strip} ]; \ | |
74 | then ( \ | |
75 | $(INSTALL) $(INSTALL_FLAGS) ./incmidir/$${filename} $(dir $@);\ | |
76 | ); \ | |
77 | else \ | |
78 | echo Header file $< not exported; \ | |
79 | fi; | |
80 | ||
81 | INSTALL_KF_MI_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_GEN_LIST)) | |
82 | ||
83 | $(INSTALL_KF_MI_GEN_FILES): $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/% : % | |
84 | @true echo Installing $< in $(midir $@) | |
85 | $(_v)[ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR); \ | |
86 | filename=`$(BASENAME) $<`; \ | |
87 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
88 | $(RM) $(RMFLAGS) $@; \ | |
89 | [ -d ./kincmidir ] || $(MKDIR) ./kincmidir; \ | |
90 | echo garbage > ./kincmidir/$${filename_strip}; \ | |
91 | $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ | |
92 | $< > ./kincmidir/$${filename} || \ | |
93 | $(DECOMMENT) ./kincmidir/$${filename} r > \ | |
94 | ./kincmidir/$${filename_strip}; \ | |
95 | if [ -s ./kincmidir/$${filename_strip} ]; \ | |
96 | then ( \ | |
97 | $(INSTALL) $(INSTALL_FLAGS) ./kincmidir/$${filename} $(dir $@);\ | |
98 | ); \ | |
99 | else \ | |
100 | echo Header file $< not exported; \ | |
101 | fi; | |
102 | ||
103 | INSTALL_MI_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_GEN_LIST)) | |
104 | ||
105 | $(INSTALL_MI_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/% : % | |
106 | @true echo Installing $< in $(dir $@) | |
107 | $(_v)[ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \ | |
108 | filename=`$(BASENAME) $<`; \ | |
109 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
110 | $(RM) $(RMFLAGS) $@; \ | |
111 | [ -d ./pincmidir ] || $(MKDIR) ./pincmidir; \ | |
112 | echo garbage > ./pincmidir/$${filename_strip}; \ | |
113 | $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ | |
114 | $< > ./pincmidir/$${filename} || \ | |
115 | $(DECOMMENT) ./pincmidir/$${filename} r > \ | |
116 | ./pincmidir/$${filename_strip}; \ | |
117 | if [ -s ./pincmidir/$${filename_strip} ]; \ | |
118 | then ( \ | |
119 | $(INSTALL) $(INSTALL_FLAGS) ./pincmidir/$${filename} $(dir $@);\ | |
120 | ); \ | |
121 | else \ | |
122 | echo Header file $< not exported; \ | |
123 | fi; | |
124 | ||
125 | INSTALL_KF_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LCL_GEN_LIST)) | |
126 | ||
127 | $(INSTALL_KF_MI_LCL_GEN_FILES): $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/% : % | |
128 | @true echo Installing $< in $(dir $@) | |
129 | $(_v)[ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR); \ | |
130 | filename=`$(BASENAME) $<`; \ | |
131 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
132 | $(RM) $(RMFLAGS) $@; \ | |
133 | [ -d ./kpincmidir ] || $(MKDIR) ./kpincmidir; \ | |
134 | echo garbage > ./kpincmidir/$${filename_strip}; \ | |
135 | $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ | |
136 | $< > ./kpincmidir/$${filename} || \ | |
137 | $(DECOMMENT) ./kpincmidir/$${filename} r > \ | |
138 | ./kpincmidir/$${filename_strip}; \ | |
139 | if [ -s ./kpincmidir/$${filename_strip} ]; \ | |
140 | then ( \ | |
141 | $(INSTALL) $(INSTALL_FLAGS) ./kpincmidir/$${filename} $(dir $@);\ | |
142 | ); \ | |
143 | else \ | |
144 | echo Header file $< not exported; \ | |
145 | fi; | |
146 | ||
147 | INSTALL_MD_GEN_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_GEN_LIST)) | |
148 | ||
149 | $(INSTALL_MD_GEN_INC_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/% : % | |
150 | @true echo Installing $< in $(dir $@) | |
151 | $(_v)[ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \ | |
152 | filename=`$(BASENAME) $<`; \ | |
153 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
154 | $(RM) $(RMFLAGS) $@; \ | |
155 | [ -d ./incdir ] || $(MKDIR) ./incdir; \ | |
156 | echo garbage > ./incdir/$${filename_strip}; \ | |
157 | $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ | |
158 | $< > ./incdir/$${filename} || \ | |
159 | $(DECOMMENT) ./incdir/$${filename} r > \ | |
160 | ./incdir/$${filename_strip}; \ | |
161 | if [ -s ./incdir/$${filename_strip} ]; \ | |
162 | then ( \ | |
163 | $(INSTALL) $(INSTALL_FLAGS) ./incdir/$${filename} $(dir $@);\ | |
164 | ); \ | |
165 | else \ | |
166 | echo Header file $< not exported; \ | |
167 | fi; | |
168 | ||
169 | INSTALL_KF_MD_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_GEN_LIST)) | |
170 | ||
171 | $(INSTALL_KF_MD_GEN_FILES): $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/% : % | |
172 | @true echo Installing $< in $(dir $@) | |
173 | $(_v)[ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR); \ | |
174 | filename=`$(BASENAME) $<`; \ | |
175 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
176 | $(RM) $(RMFLAGS) $@; \ | |
177 | [ -d ./kincdir ] || $(MKDIR) ./kincdir; \ | |
178 | echo garbage > ./kincdir/$${filename_strip}; \ | |
179 | $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ | |
180 | $< > ./kincdir/$${filename} || \ | |
181 | $(DECOMMENT) ./kincdir/$${filename} r > \ | |
182 | ./kincdir/$${filename_strip}; \ | |
183 | if [ -s ./kincdir/$${filename_strip} ]; \ | |
184 | then ( \ | |
185 | $(INSTALL) $(INSTALL_FLAGS) ./kincdir/$${filename} $(dir $@);\ | |
186 | ); \ | |
187 | else \ | |
188 | echo Header file $< not exported; \ | |
189 | fi; | |
190 | ||
191 | INSTALL_MD_LCL_FILES = $(addprefix $(SOURCE), $(INSTALL_MD_LCL_LIST)) | |
192 | INSTALL_MD_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LCL_GEN_LIST)) | |
193 | ||
194 | $(INSTALL_MD_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/% : % | |
195 | @true echo Installing $< in $(dir $@) | |
196 | $(_v)[ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \ | |
197 | filename=`$(BASENAME) $<`; \ | |
198 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
199 | $(RM) $(RMFLAGS) $@; \ | |
200 | [ -d ./pincdir ] || $(MKDIR) ./pincdir; \ | |
201 | echo garbage > ./pincdir/$${filename_strip}; \ | |
202 | $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ | |
203 | $< > ./pincdir/$${filename} || \ | |
204 | $(DECOMMENT) ./pincdir/$${filename} r > \ | |
205 | ./pincdir/$${filename_strip}; \ | |
206 | if [ -s ./pincdir/$${filename_strip} ]; \ | |
207 | then ( \ | |
208 | $(INSTALL) $(INSTALL_FLAGS) ./pincdir/$${filename} $(dir $@);\ | |
209 | ); \ | |
210 | else \ | |
211 | echo Header file $< not exported; \ | |
212 | fi; | |
213 | ||
214 | INSTALL_KF_MD_LCL_FILES = $(addprefix $(SOURCE), $(INSTALL_KF_MD_LCL_LIST)) | |
215 | INSTALL_KF_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LCL_GEN_LIST)) | |
216 | ||
217 | $(INSTALL_KF_MD_LCL_GEN_FILES): $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/% : % | |
218 | @true echo Installing $< in $(dir $@) | |
219 | $(_v)[ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR); \ | |
220 | filename=`$(BASENAME) $<`; \ | |
221 | filename_strip=$(addsuffix .strip,$${filename}); \ | |
222 | $(RM) $(RMFLAGS) $@; \ | |
223 | [ -d ./kpincdir ] || $(MKDIR) ./kpincdir; \ | |
224 | echo garbage > ./kpincdir/$${filename_strip}; \ | |
225 | $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ | |
226 | $< > ./kpincdir/$${filename} || \ | |
227 | $(DECOMMENT) ./kpincdir/$${filename} r > \ | |
228 | ./kpincdir/$${filename_strip}; \ | |
229 | if [ -s ./kpincdir/$${filename_strip} ]; \ | |
230 | then ( \ | |
231 | $(INSTALL) $(INSTALL_FLAGS) ./kpincdir/$${filename} $(dir $@);\ | |
232 | ); \ | |
233 | else \ | |
234 | echo Header file $< not exported; \ | |
235 | fi; | |
236 | ||
237 | setup_installhdrs_mi: | |
238 | ||
239 | do_installhdrs_mi: $(INSTALL_MI_GEN_FILES) $(INSTALL_MI_GEN_LCL_FILES) $(INSTALL_KF_MI_GEN_FILES) $(INSTALL_KF_MI_LCL_GEN_FILES) | |
240 | @true echo "[ $(SOURCE) ] make do_installhdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
241 | $(_v)$(MKDIR) ./incmidir ./pincmidir ./kincmidir ./kpincmidir; \ | |
242 | if [ -n "$(strip $(INSTALL_MI_LIST))" ]; then \ | |
243 | if [ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR) ]; then \ | |
244 | (cd $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_MI_LIST) ); \ | |
245 | else \ | |
246 | $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \ | |
247 | fi; \ | |
248 | for j in $(INSTALL_MI_LIST); \ | |
249 | do \ | |
250 | echo garbage > ./incmidir/$$j.strip; \ | |
251 | $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ | |
252 | $(SOURCE)/$$j > ./incmidir/$$j || \ | |
253 | $(DECOMMENT) ./incmidir/$$j r > \ | |
254 | ./incmidir/$$j.strip; \ | |
255 | if [ -s ./incmidir/$$j.strip ]; \ | |
256 | then ( \ | |
257 | $(INSTALL) $(INSTALL_FLAGS) ./incmidir/$$j $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \ | |
258 | ); \ | |
259 | else \ | |
260 | echo Header file $$j not exported; \ | |
261 | fi; \ | |
262 | done; \ | |
263 | fi; \ | |
264 | if [ -n "$(strip $(INSTALL_MI_LCL_LIST))" ]; then \ | |
265 | if [ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR) ]; then \ | |
266 | (cd $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_MI_LCL_LIST) ); \ | |
267 | else \ | |
268 | $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \ | |
269 | fi; \ | |
270 | for j in $(INSTALL_MI_LCL_LIST); \ | |
271 | do \ | |
272 | echo garbage > ./pincmidir/$$j.strip; \ | |
273 | $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ | |
274 | $(SOURCE)/$$j > ./pincmidir/$$j || \ | |
275 | $(DECOMMENT) ./pincmidir/$$j r > \ | |
276 | ./pincmidir/$$j.strip; \ | |
277 | if [ -s ./pincmidir/$$j.strip ]; \ | |
278 | then ( \ | |
279 | $(INSTALL) $(INSTALL_FLAGS) ./pincmidir/$$j $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \ | |
280 | ); \ | |
281 | else \ | |
282 | echo Header file $$j not exported; \ | |
283 | fi; \ | |
284 | done; \ | |
285 | fi; \ | |
286 | if [ -n "$(strip $(INSTALL_KF_MI_LIST))" ]; then \ | |
287 | if [ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR) ]; then \ | |
288 | (cd $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MI_LIST) ); \ | |
289 | else \ | |
290 | $(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR); \ | |
291 | fi; \ | |
292 | for j in $(INSTALL_KF_MI_LIST); \ | |
293 | do \ | |
294 | echo garbage > ./kincmidir/$$j.strip; \ | |
295 | $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ | |
296 | $(SOURCE)/$$j > ./kincmidir/$$j || \ | |
297 | $(DECOMMENT) ./kincmidir/$$j r > \ | |
298 | ./kincmidir/$$j.strip; \ | |
299 | if [ -s ./kincmidir/$$j.strip ]; \ | |
300 | then ( \ | |
301 | $(INSTALL) $(INSTALL_FLAGS) ./kincmidir/$$j $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR); \ | |
302 | ); \ | |
303 | else \ | |
304 | echo Header file $$j not exported; \ | |
305 | fi; \ | |
306 | done; \ | |
307 | fi; \ | |
308 | if [ -n "$(strip $(INSTALL_KF_MI_LCL_LIST))" ]; then \ | |
309 | if [ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR) ]; then \ | |
310 | (cd $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MI_LCL_LIST) ); \ | |
311 | else \ | |
312 | $(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR); \ | |
313 | fi; \ | |
314 | for j in $(INSTALL_KF_MI_LCL_LIST); \ | |
315 | do \ | |
316 | echo garbage > ./kpincmidir/$$j.strip; \ | |
317 | $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ | |
318 | $(SOURCE)/$$j > ./kpincmidir/$$j || \ | |
319 | $(DECOMMENT) ./kpincmidir/$$j r > \ | |
320 | ./kpincmidir/$$j.strip; \ | |
321 | if [ -s ./kpincmidir/$$j.strip ]; \ | |
322 | then ( \ | |
323 | $(INSTALL) $(INSTALL_FLAGS) ./kpincmidir/$$j $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR); \ | |
324 | ); \ | |
325 | else \ | |
326 | echo Header file $$j not exported; \ | |
327 | fi; \ | |
328 | done; \ | |
329 | fi; \ | |
330 | $(RM) -rf ./incmidir ./pincmidir ./kincmidir ./kpincmidir; | |
331 | ||
332 | setup_installhdrs_md: | |
333 | ||
334 | do_installhdrs_md: $(INSTALL_MD_GEN_INC_FILES) $(INSTALL_MD_GEN_LCL_FILES) $(INSTALL_KF_MD_GEN_FILES) $(INSTALL_KF_MD_LCL_GEN_FILES) | |
335 | @true echo "[ $(SOURCE) ] make do_installhdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
336 | $(_v)$(MKDIR) ./incdir ./pincdir ./kincdir ./kpincdir; \ | |
337 | if [ -n "$(strip $(INSTALL_MD_LIST))" ]; then \ | |
338 | if [ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR) ]; then \ | |
339 | (cd $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_MD_LIST) ); \ | |
340 | else \ | |
341 | $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \ | |
342 | fi; \ | |
343 | for j in $(INSTALL_MD_LIST); \ | |
344 | do \ | |
345 | echo garbage > ./incdir/$$j.strip; \ | |
346 | $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ | |
347 | $(SOURCE)/$$j > ./incdir/$$j || \ | |
348 | $(DECOMMENT) ./incdir/$$j r > \ | |
349 | ./incdir/$$j.strip; \ | |
350 | if [ -s ./incdir/$$j.strip ]; \ | |
351 | then ( \ | |
352 | $(INSTALL) $(INSTALL_FLAGS) ./incdir/$$j $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \ | |
353 | ); \ | |
354 | else \ | |
355 | echo Header file $$j not exported; \ | |
356 | fi; \ | |
357 | done; \ | |
358 | fi; \ | |
359 | if [ -n "$(strip $(INSTALL_MD_LCL_LIST))" ]; then \ | |
360 | if [ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR) ]; then \ | |
361 | (cd $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_MD_LCL_LIST) ); \ | |
362 | else \ | |
363 | $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \ | |
364 | fi; \ | |
365 | for j in $(INSTALL_MD_LCL_LIST); \ | |
366 | do \ | |
367 | echo garbage > ./pincdir/$$j.strip; \ | |
368 | $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ | |
369 | $(SOURCE)/$$j > ./pincdir/$$j || \ | |
370 | $(DECOMMENT) ./pincdir/$$j r > \ | |
371 | ./pincdir/$$j.strip; \ | |
372 | if [ -s ./pincdir/$$j.strip ]; \ | |
373 | then ( \ | |
374 | $(INSTALL) $(INSTALL_FLAGS) ./pincdir/$$j $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \ | |
375 | ); \ | |
376 | else \ | |
377 | echo Header file $$j not exported; \ | |
378 | fi; \ | |
379 | done; \ | |
380 | fi; \ | |
381 | if [ -n "$(strip $(INSTALL_KF_MD_LIST))" ]; then \ | |
382 | if [ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR) ]; then \ | |
383 | (cd $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MD_LIST) ); \ | |
384 | else \ | |
385 | $(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR); \ | |
386 | fi; \ | |
387 | for j in $(INSTALL_KF_MD_LIST); \ | |
388 | do \ | |
389 | echo garbage > ./kincdir/$$j.strip; \ | |
390 | $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ | |
391 | $(SOURCE)/$$j > ./kincdir/$$j || \ | |
392 | $(DECOMMENT) ./kincdir/$$j r > \ | |
393 | ./kincdir/$$j.strip; \ | |
394 | if [ -s ./kincdir/$$j.strip ]; \ | |
395 | then ( \ | |
396 | $(INSTALL) $(INSTALL_FLAGS) ./kincdir/$$j $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR); \ | |
397 | ); \ | |
398 | else \ | |
399 | echo Header file $$j not exported; \ | |
400 | fi; \ | |
401 | done; \ | |
402 | fi; \ | |
403 | if [ -n "$(strip $(INSTALL_KF_MD_LCL_LIST))" ]; then \ | |
404 | if [ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR) ]; then \ | |
405 | (cd $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MD_LCL_LIST) ); \ | |
406 | else \ | |
407 | $(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR); \ | |
408 | fi; \ | |
409 | for j in $(INSTALL_KF_MD_LCL_LIST); \ | |
410 | do \ | |
411 | echo garbage > ./kpincdir/$$j.strip; \ | |
412 | $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ | |
413 | $(SOURCE)/$$j > ./kpincdir/$$j || \ | |
414 | $(DECOMMENT) ./kpincdir/$$j r > \ | |
415 | ./kpincdir/$$j.strip; \ | |
416 | if [ -s ./kpincdir/$$j.strip ]; \ | |
417 | then ( \ | |
418 | $(INSTALL) $(INSTALL_FLAGS) ./kpincdir/$$j $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR); \ | |
419 | ); \ | |
420 | else \ | |
421 | echo Header file $$j not exported; \ | |
422 | fi; \ | |
423 | done; \ | |
424 | fi; \ | |
425 | $(RM) -rf ./incdir ./pincdir ./kincdir ./kpincdir; | |
426 | ||
427 | ||
428 | # | |
429 | # Generic Export rules | |
430 | # | |
431 | ifeq ($(INCR_EXPORTHDRS), TRUE) | |
432 | ||
433 | EXPORT_MI_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_LIST)) | |
434 | EXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST)) | |
435 | ||
436 | $(EXPORT_MI_INC_FILES) $(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : % | |
437 | @true echo Exporting $< in $(dir $@) | |
438 | $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ | |
439 | ${CP} -p $< $(dir $@); \ | |
440 | ||
441 | ||
442 | EXPORT_MD_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_LIST)) | |
443 | EXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST)) | |
444 | ||
445 | $(EXPORT_MD_INC_FILES) $(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : % | |
446 | @true echo Exporting $< in $(dir $@) | |
447 | $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ | |
448 | ${CP} -p $< $(dir $@); \ | |
449 | ||
450 | setup_exporthdrs_mi: | |
451 | ||
452 | do_exporthdrs_mi: $(EXPORT_MI_INC_FILES) $(EXPORT_MI_GEN_INC_FILES) | |
453 | @true echo "[ $(SOURCE) ] make do_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
454 | ||
455 | setup_exporthdrs_md: | |
456 | ||
457 | do_exporthdrs_md: $(EXPORT_MD_INC_FILES) $(EXPORT_MD_GEN_INC_FILES) | |
458 | @true echo "[ $(SOURCE) ] make do_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
459 | ||
460 | else | |
461 | ||
462 | EXPORT_MI_INC_FILES = $(addprefix $(SOURCE), $(EXPORT_MI_LIST)) | |
463 | EXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST)) | |
464 | ||
465 | $(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : % | |
466 | @true echo Exporting $< in $(dir $@) | |
467 | $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ | |
468 | ${CP} -p $< $(dir $@); \ | |
469 | ||
470 | ||
471 | EXPORT_MD_INC_FILES = $(addprefix $(SOURCE), $(EXPORT_MD_LIST)) | |
472 | EXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST)) | |
473 | ||
474 | $(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : % | |
475 | @true echo Exporting $< in $(dir $@) | |
476 | $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ | |
477 | ${CP} -p $< $(dir $@); \ | |
478 | ||
479 | setup_exporthdrs_mi: | |
480 | ||
481 | do_exporthdrs_mi: $(EXPORT_MI_GEN_INC_FILES) | |
482 | @true echo "[ $(SOURCE) ] make do_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
483 | $(_v)if [ -n "$(strip $(EXPORT_MI_LIST))" ]; then \ | |
484 | if [ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR) ]; then \ | |
485 | (cd $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR);$(RM) $(RMFLAGS) $(EXPORT_MI_LIST) ); \ | |
486 | else \ | |
487 | $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ | |
488 | fi; \ | |
489 | ${CP} -p $(EXPORT_MI_INC_FILES) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ | |
490 | fi | |
491 | ||
492 | setup_exporthdrs_md: | |
493 | ||
494 | do_exporthdrs_md: $(EXPORT_MD_GEN_INC_FILES) | |
495 | @true echo "[ $(SOURCE) ] make do_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
496 | $(_v)if [ -n "$(strip $(EXPORT_MD_LIST))" ]; then \ | |
497 | if [ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR) ]; then \ | |
498 | (cd $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR);$(RM) $(RMFLAGS) $(EXPORT_MD_LIST) ); \ | |
499 | else \ | |
500 | $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ | |
501 | fi; \ | |
502 | ${CP} -p $(EXPORT_MD_INC_FILES) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ | |
503 | fi | |
504 | ||
505 | ||
506 | # | |
507 | endif | |
508 | # | |
509 | # Generic Compilation rules | |
510 | # | |
511 | ||
512 | # | |
513 | # Compilation rules to generate .o from .s | |
514 | # | |
515 | ||
516 | S_RULE_1A=$(_v)${S_KCC} -c -MD ${SFLAGS} -DASSEMBLER ${INCFLAGS} ${$@_INCFLAGS} | |
517 | S_RULE_1B=$*.s | |
518 | S_RULE_2=@echo AS $@ | |
519 | S_RULE_3= | |
520 | ||
521 | # | |
522 | # Compilation rules to generate .o from .c for normal files | |
523 | C_RULE_1A=$(_v)${KCC} -c ${filter-out ${$@_CFLAGS_RM}, ${CFLAGS} ${CWARNFLAGS}} -MD ${$@_CFLAGS_ADD} ${$@_CWARNFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS} | |
524 | C_RULE_1B=$*.c | |
525 | C_RULE_2=@echo CC $@ | |
526 | ifeq ($(BUILD_STABS),1) | |
527 | C_RULE_3= | |
528 | else | |
529 | C_RULE_3=$(_v)${CTFCONVERT} -l xnu -v -o $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf $@ > /dev/null && $(CTFSCRUB) `cat $(SRCROOT)/config/DtraceIgnored.symbols` $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf || true; | |
530 | endif | |
531 | C_RULE_4= | |
532 | ||
533 | # | |
534 | # Compilation rules to generate .o from .c for driver files | |
535 | # | |
536 | C_RULE_1A_D=${C_RULE_1A} | |
537 | C_RULE_1B_D=${C_RULE_1B} | |
538 | C_RULE_2_D=${C_RULE_2} | |
539 | C_RULE_3_D=${C_RULE_3} | |
540 | C_RULE_4_D=${C_RULE_4} | |
541 | ||
542 | # | |
543 | # Compilation rules to generate .co from .cp or .cpo from .cpp | |
544 | # The config tool slickly changes the last source filename char to 'o' | |
545 | # for the object filename. | |
546 | P_RULE_1A=$(_v)${KC++} -o $@ -c ${CXXFLAGS} ${filter-out ${$@_CFLAGS_RM}, ${CFLAGS} ${CXXWARNFLAGS}} -MD ${$@_CFLAGS_ADD} ${$@_CXXWARNFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS} | |
547 | P_RULE_1B=$(<F) | |
548 | P_RULE_2=$(_v)sed 's/.c.o: /.cpo: /' $(@:.cpo=.d) > $(@:.cpo=.d~) && mv $(@:.cpo=.d~) $(@:.cpo=.d) | |
549 | P_RULE_3=@echo C++ $@ | |
550 | ifeq ($(BUILD_STABS),1) | |
551 | P_RULE_4= | |
552 | else | |
553 | P_RULE_4=$(_v)${CTFCONVERT} -l xnu -v -o $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf $@ > /dev/null && $(CTFSCRUB) `cat $(SRCROOT)/config/DtraceIgnored.symbols` $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf || true; | |
554 | endif | |
555 | ||
556 | ||
557 | setup_build_all: | |
558 | ||
559 | do_build_all: $(COMP_FILES) $(COMP_COBJ_FILES) $(COMP_SOBJ_FILES) $(COMPONENT_IMAGE_FILE) | |
560 | ||
561 | # | |
562 | # mach_kernel building rules | |
563 | # | |
564 | ifeq ($(COMPONENT), .) | |
565 | do_build_all: do_build_mach_kernel | |
566 | ||
567 | STATIC_KMODS = $(SRCROOT)/kmods.a | |
568 | ||
569 | do_build_mach_kernel: $(TARGET)/kgmacros $(TARGET)/mach_kernel | |
570 | ||
571 | $(TARGET)/mach_kernel: $(addprefix $(TARGET)/,$(foreach component,$(COMPONENT_LIST), $(addprefix $(component)/$(firstword $($(addsuffix _KERNEL_CONFIG, $(shell printf $(component) | tr a-z A-Z))) $(KERNEL_CONFIG))/, $(addsuffix .o, $(component))))) lastkernelconstructor.o | |
572 | $(_v)${MAKE} version.o | |
573 | @echo LD mach_kernel.sys | |
574 | $(_v)$(CAT) $(addprefix $(TARGET)/,$(foreach component,$(COMPONENT_LIST), $(addprefix $(component)/$(firstword $($(addsuffix _KERNEL_CONFIG, $(shell printf $(component) | tr a-z A-Z))) $(KERNEL_CONFIG))/, $(addsuffix .o, $(component))))) > mach_kernel.filelist | |
575 | $(_v)$(LD) $(LDFLAGS_KERNEL) -filelist mach_kernel.filelist version.o lastkernelconstructor.o `if [ -e $(STATIC_KMODS) ]; then echo $(STATIC_KMODS); fi` \ | |
576 | -o $(TARGET)/mach_kernel.sys $(LD_KERNEL_LIBS) | |
577 | @echo DSYMUTIL mach_kernel.sys | |
578 | $(_v)if [ $(BUILD_DWARF) -eq 1 ]; then \ | |
579 | $(DSYMUTIL) $(DSYMUTIL_FLAGS) $(TARGET)/mach_kernel.sys -o $(TARGET)/mach_kernel.sys.dSYM > /dev/null; \ | |
580 | fi; | |
581 | @echo STRIP mach_kernel | |
582 | $(_v)$(STRIP) $(STRIP_FLAGS) $(TARGET)/mach_kernel.sys -o $(TARGET)/mach_kernel | |
583 | @echo CTFMERGE mach_kernel | |
584 | $(_v)if [ $(BUILD_DWARF) -eq 1 ]; then \ | |
585 | $(FIND) $(OBJPATH)/ -name \*.ctf -size 0 \ | |
586 | -exec $(RM) -rf {} \; ; \ | |
587 | $(CTFMERGE) -l xnu -o $(TARGET)/mach_kernel \ | |
588 | $(OBJPATH)/*/$(KERNEL_CONFIG)/*.*o.ctf || true; \ | |
589 | fi; \ | |
590 | ||
591 | version.o: $(OBJPATH)/version.c | |
592 | ${C_RULE_1A}$< | |
593 | ${C_RULE_2} | |
594 | ${C_RULE_4} | |
595 | ||
596 | .PHONY: $(OBJPATH)/version.c | |
597 | $(OBJPATH)/version.c: $(SRCROOT)/config/version.c $(NEWVERS) $(SRCROOT)/config/MasterVersion | |
598 | $(_v)$(CP) $< $@ | |
599 | $(_v)$(NEWVERS) $(OBJPATH)/version.c > /dev/null; | |
600 | ||
601 | lastkernelconstructor.o: $(SRCROOT)/libsa/lastkernelconstructor.c | |
602 | ${C_RULE_1A}$< | |
603 | ${C_RULE_2} | |
604 | ${C_RULE_4} | |
605 | ||
606 | $(TARGET)/kgmacros: $(SRCROOT)/kgmacros | |
607 | $(_v)$(INSTALL) $(INSTALL_FLAGS) $? $@ | |
608 | ||
609 | # Special rules to install machine configuration variants | |
610 | ||
611 | $(DSTROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC): $(TARGET)/mach_kernel force_file_install | |
612 | @echo Installing $< in $@; | |
613 | $(_v)if [ ! -e $(DSTROOT)$(INSTALL_FILE_DIR) ]; then \ | |
614 | $(MKDIR) $(DSTROOT)$(INSTALL_FILE_DIR); \ | |
615 | fi; \ | |
616 | if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ | |
617 | $(RM) $(RMFLAGS) $@; \ | |
618 | $(INSTALL) $(FILE_INSTALL_FLAGS) $< $@; \ | |
619 | else \ | |
620 | if [ ! -e $@ ]; then \ | |
621 | print "" >empty_file_$(notdir $@); \ | |
622 | lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_file_$(notdir $@))"; \ | |
623 | $(LIPO) $${lipo_arg} -create -output $@; \ | |
624 | $(RM) $(RMFLAGS) empty_file_$(notdir $@); \ | |
625 | fi; \ | |
626 | $(LIPO) $@ -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) $< -o $@; \ | |
627 | fi | |
628 | ||
629 | $(SYMROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC): $(TARGET)/mach_kernel.sys force_file_install | |
630 | @echo Installing $< in $@; | |
631 | $(_v)if [ ! -e $(SYMROOT)$(INSTALL_FILE_DIR) ]; then \ | |
632 | $(MKDIR) $(SYMROOT)$(INSTALL_FILE_DIR); \ | |
633 | fi; \ | |
634 | if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ | |
635 | $(RM) $(RMFLAGS) $@; \ | |
636 | $(INSTALL) $(FILE_INSTALL_FLAGS) $< $@; \ | |
637 | if [ $(BUILD_DWARF) -eq 1 ]; then \ | |
638 | $(RM) -rf $@.dSYM; \ | |
639 | $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ | |
640 | $(INSTALL) $(INSTALL_FLAGS) \ | |
641 | $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ | |
642 | $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ | |
643 | fi; \ | |
644 | else \ | |
645 | if [ ! -e $@ ]; then \ | |
646 | printf "" >empty_file_$(notdir $@); \ | |
647 | lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_file_$(notdir $@))"; \ | |
648 | $(LIPO) $${lipo_arg} -create -output $@; \ | |
649 | $(RM) $(RMFLAGS) empty_file_$(notdir $@); \ | |
650 | fi; \ | |
651 | $(LIPO) $@ -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) $< -o $@; \ | |
652 | fi | |
653 | ||
654 | endif # mach_kernel-specific build rules | |
655 | ||
656 | # | |
657 | # Generic Install rules | |
658 | # | |
659 | INSTALL_FILE_FILES = $(addprefix $(DSTROOT)$(INSTALL_FILE_DIR), $(INSTALL_FILE_LIST)) | |
660 | INSTALL_FILE_FILES_GENERIC = $(filter-out $(DSTROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC), $(INSTALL_FILE_FILES)) | |
661 | ||
662 | force_file_install: | |
663 | ||
664 | $(INSTALL_FILE_FILES_GENERIC): $(DSTROOT)$(INSTALL_FILE_DIR)% : $(TARGET)/% force_file_install | |
665 | @echo Installing $< in $@; | |
666 | $(_v)if [ ! -e $(DSTROOT)$(INSTALL_FILE_DIR) ]; then \ | |
667 | $(MKDIR) $(DSTROOT)$(INSTALL_FILE_DIR); \ | |
668 | fi; \ | |
669 | if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ | |
670 | $(RM) $(RMFLAGS) $@; \ | |
671 | $(INSTALL) $(FILE_INSTALL_FLAGS) $< $@; \ | |
672 | else \ | |
673 | if [ ! -e $@ ]; then \ | |
674 | printf "" >empty_file_$(notdir $@); \ | |
675 | lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_file_$(notdir $@))"; \ | |
676 | $(LIPO) $${lipo_arg} -create -output $@; \ | |
677 | $(RM) $(RMFLAGS) empty_file_$(notdir $@); \ | |
678 | fi; \ | |
679 | $(LIPO) $@ -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) $< -o $@; \ | |
680 | fi | |
681 | ||
682 | INSTALL_FILESYS_FILES = $(addprefix $(SYMROOT)$(INSTALL_FILE_DIR), $(INSTALL_FILE_LIST)) | |
683 | INSTALL_FILESYS_FILES_GENERIC = $(filter-out $(SYMROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC), $(INSTALL_FILESYS_FILES)) | |
684 | ||
685 | force_filesys_install: | |
686 | ||
687 | $(INSTALL_FILESYS_FILES_GENERIC): $(SYMROOT)$(INSTALL_FILE_DIR)% : $(TARGET)/%.sys force_filesys_install | |
688 | @echo Installing $< in $@; | |
689 | $(_v)if [ ! -e $(SYMROOT)$(INSTALL_FILE_DIR) ]; then \ | |
690 | $(MKDIR) $(SYMROOT)$(INSTALL_FILE_DIR); \ | |
691 | fi; \ | |
692 | if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ | |
693 | $(RM) $(RMFLAGS) $@; \ | |
694 | $(INSTALL) $(INSTALL_FLAGS) $< $@; \ | |
695 | if [ $(BUILD_DWARF) -eq 1 ]; then \ | |
696 | $(DSYMUTIL) $(DSYMUTIL_FLAGS) \ | |
697 | $(TARGET)/mach_kernel.sys \ | |
698 | -o $(TARGET)/mach_kernel.sys.dSYM; \ | |
699 | $(RM) -rf $@.dSYM; \ | |
700 | $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ | |
701 | $(INSTALL) $(INSTALL_FLAGS) \ | |
702 | $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ | |
703 | $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ | |
704 | fi; \ | |
705 | else \ | |
706 | if [ ! -e $@ ]; then \ | |
707 | printf "" >empty_filesys_$(notdir $@); \ | |
708 | lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_filesys_$(notdir $@))"; \ | |
709 | $(LIPO) $${lipo_arg} -create -output $@; \ | |
710 | $(RM) $(RMFLAGS) empty_filesys_$(notdir $@); \ | |
711 | fi; \ | |
712 | $(LIPO) $@ -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) $< -o $@; \ | |
713 | \ | |
714 | if [ $(BUILD_DWARF) -eq 1 ]; then \ | |
715 | if [ ! -e $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@) ]; then \ | |
716 | printf "" >empty_filesys_$(notdir $@); \ | |
717 | lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_filesys_$(notdir $@))"; \ | |
718 | $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ | |
719 | $(LIPO) $${lipo_arg} -create \ | |
720 | -output \ | |
721 | $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ | |
722 | $(RM) $(RMFLAGS) empty_filesys_$(notdir $@); \ | |
723 | fi; \ | |
724 | $(DSYMUTIL) $(DSYMUTIL_FLAGS) \ | |
725 | $(TARGET)/mach_kernel.sys \ | |
726 | -o $(TARGET)/mach_kernel.sys.dSYM; \ | |
727 | $(LIPO) $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@) \ | |
728 | -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) \ | |
729 | $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ | |
730 | -o $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ | |
731 | fi; \ | |
732 | fi | |
733 | $(INSTALL) $(INSTALL_FLAGS) $(SOURCE)kgmacros $(SYMROOT)$(INSTALL_FILE_DIR) | |
734 | ||
735 | INSTALL_DATA_FILES = $(addprefix $(DSTROOT)$(INSTALL_DATA_DIR), $(INSTALL_DATA_LIST)) | |
736 | ||
737 | $(INSTALL_DATA_FILES): $(DSTROOT)$(INSTALL_DATA_DIR)% : $(SOURCE)/% | |
738 | @echo Installing $< in $@; | |
739 | $(_v)[ -d $(dir $@) ] ||$(MKDIR) $(dir $@); \ | |
740 | $(RM) $(RMFLAGS) $@; \ | |
741 | $(INSTALL) $(DATA_INSTALL_FLAGS) $< $(dir $@); | |
742 | ||
743 | setup_build_install: | |
744 | @echo "[ $(SOURCE) ] make setup_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
745 | ||
746 | do_build_install: $(INSTALL_FILESYS_FILES) $(INSTALL_FILE_FILES) $(INSTALL_DATA_FILES) | |
747 | @echo "[ $(SOURCE) ] make do_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" | |
748 | ||
749 | INSTALL_MAN_FILES = $(addprefix $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/, $(INSTALL_MAN_LIST)) | |
750 | ||
751 | do_installman: $(INSTALL_MAN_FILES) | |
752 | @echo "[ $(SOURCE) ] make do_installman" | |
753 | $(_v)if [ -n "$(strip $(INSTALL_MAN_LIST))" ]; then \ | |
754 | man_dir=$(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR); \ | |
755 | if [ -d $$man_dir ]; then \ | |
756 | ( cd $$man_dir; \ | |
757 | $(RM) $(RMFLAGS) $(INSTALL_MAN_LIST) $(INSTALL_MAN_LINKS)); \ | |
758 | else \ | |
759 | $(MKDIR) $$man_dir; \ | |
760 | fi; \ | |
761 | echo Installing $(INSTALL_MAN_LIST) in $$man_dir; \ | |
762 | $(INSTALL) $(INSTALL_FLAGS) $(INSTALL_MAN_LIST) $$man_dir; \ | |
763 | if [ -n "$(strip $(INSTALL_MAN_LINKS))" ]; then \ | |
764 | set `echo ${INSTALL_MAN_LINKS}`; \ | |
765 | while : ; do \ | |
766 | case $$# in \ | |
767 | 0) break;; \ | |
768 | 1) echo "warn: empty INSTALL_MAN_LINKS: $$1"; break;; \ | |
769 | esac; \ | |
770 | link_src=$$1; shift; link_dst=$$1; shift; \ | |
771 | echo "hard linking $${link_src} to $${link_dst}"; \ | |
772 | ln -f $${man_dir}/$${link_src} $${man_dir}/$${link_dst} ; \ | |
773 | done; \ | |
774 | fi; \ | |
775 | fi | |
776 | ||
777 | $(INSTALL_MAN_FILES): $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/% : % | |
778 | @true echo Installing $< in $(dir $@) | |
779 | $(_v)$(MKDIR) $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR); \ | |
780 | $(RM) $(RMFLAGS) $@; \ | |
781 | $(INSTALL) $(INSTALL_FLAGS) $< $(dir $@); | |
782 | ||
783 | ifeq ($(INCL_MAKEDEP), TRUE) | |
784 | -include Makedep | |
785 | endif | |
786 | ||
787 | help: | |
788 | @cat README | |
789 | ||
790 | # vim: set ft=make: |