|
|
1.1 root 1: #
2: # Generic Install rules
3: #
4:
5: #
6: # gvdl: Let's optionally have a different list of local installs and
7: # regular installs.
8: #
9: ifndef INSTALL_MI_LCL_LIST
10: INSTALL_MI_LCL_LIST = $(INSTALL_MI_LIST)
11: endif
12:
13: ifndef INSTALL_MI_LCL_GEN_LIST
14: INSTALL_MI_LCL_GEN_LIST = $(INSTALL_MI_GEN_LIST)
15: endif
16:
17: ifndef INSTALL_MD_LCL_LIST
18: INSTALL_MD_LCL_LIST = $(INSTALL_MD_LIST)
19: endif
20:
21: ifndef INSTALL_MD_LCL_GEN_LIST
22: INSTALL_MD_LCL_GEN_LIST = $(INSTALL_MD_GEN_LIST)
23: endif
24:
25: ifeq ($(INCR_INSTALLHDRS), TRUE)
26:
27: INSTALL_MI_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LIST))
28: INSTALL_MI_GEN_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_GEN_LIST))
29: INSTALL_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_LIST))
30: INSTALL_MI_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_GEN_LIST))
31:
32: $(INSTALL_MI_INC_FILES) $(INSTALL_MI_GEN_INC_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/% : %
33: @true echo Installing $< in $(dir $@); \
34: $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \
35: filename=`$(BASENAME) $<`; \
36: filename_strip=$(addsuffix .strip,$${filename}); \
37: $(RM) $(RMFLAGS) $@; \
38: $(MKDIR) ./incdir; \
39: echo garbage > ./incdir/$${filename_strip}; \
40: $(UNIFDEF) -UKERNEL_PRIVATE -UDRIVER_PRIVATE \
41: $< > ./incdir/$${filename} || \
42: $(DECOMMENT) ./incdir/$${filename} r > \
43: ./incdir/$${filename_strip}; \
44: if [ -s ./incdir/$${filename_strip} ]; \
45: then ( \
46: install $(INSTALL_FLAGS) ./incdir/$${filename} $(dir $@);\
47: ); \
48: else \
49: echo Header file $< not exported; \
50: fi; \
51: $(RM) -rf ./incdir;
52:
53: $(INSTALL_MI_LCL_FILES) $(INSTALL_MI_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/% : %
54: @true echo Installing $< in $(dir $@); \
55: $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \
56: $(RM) $(RMFLAGS) $@; \
57: install $(INSTALL_FLAGS) $< $(dir $@);
58:
59: INSTALL_MD_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LIST))
60: INSTALL_MD_GEN_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_GEN_LIST))
61: INSTALL_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LCL_LIST))
62: INSTALL_MD_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LCL_GEN_LIST))
63:
64: $(INSTALL_MD_INC_FILES) $(INSTALL_MD_GEN_INC_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/% : %
65: @true echo Installing $< in $(dir $@); \
66: $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \
67: filename=`$(BASENAME) $<`; \
68: filename_strip=$(addsuffix .strip,$${filename}); \
69: $(RM) $(RMFLAGS) $@; \
70: $(MKDIR) ./incdir; \
71: echo garbage > ./incdir/$${filename_strip}; \
72: $(UNIFDEF) -UKERNEL_PRIVATE -UDRIVER_PRIVATE \
73: $< > ./incdir/$${filename} || \
74: $(DECOMMENT) ./incdir/$${filename} r > \
75: ./incdir/$${filename_strip}; \
76: if [ -s ./incdir/$${filename_strip} ]; \
77: then ( \
78: install $(INSTALL_FLAGS) ./incdir/$${filename} $(dir $@);\
79: ); \
80: else \
81: echo Header file $< not exported; \
82: fi; \
83: $(RM) -rf ./incdir;
84:
85: $(INSTALL_MD_LCL_FILES) $(INSTALL_MD_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/% : %
86: @true echo Installing $< in $(dir $@); \
87: $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \
88: $(RM) $(RMFLAGS) $@; \
89: install $(INSTALL_FLAGS) $< $(dir $@);
90:
91: setup_installhdrs_mi:
92: @echo "[ $(SOURCE) ] make setup_installhdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
93:
94: do_installhdrs_mi: $(INSTALL_MI_INC_FILES) $(INSTALL_MI_GEN_INC_FILES) $(INSTALL_MI_LCL_FILES) $(INSTALL_MI_GEN_LCL_FILES)
95: @echo "[ $(SOURCE) ] make do_installhdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
96:
97: setup_installhdrs_md:
98: @echo "[ $(SOURCE) ] make setup_installhdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
99:
100: do_installhdrs_md: $(INSTALL_MD_INC_FILES) $(INSTALL_MD_GEN_INC_FILES) $(INSTALL_MD_LCL_FILES) $(INSTALL_MD_GEN_LCL_FILES)
101: @echo "[ $(SOURCE) ] make do_installhdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
102:
103: else
104:
105: INSTALL_MI_INC_FILES = $(addprefix $(SOURCE), $(INSTALL_MI_LIST))
106: INSTALL_MI_GEN_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_GEN_LIST))
107:
108: INSTALL_MI_LCL_FILES = $(addprefix $(SOURCE), $(INSTALL_MI_LCL_LIST))
109: INSTALL_MI_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_GEN_LIST))
110:
111:
112: $(INSTALL_MI_GEN_INC_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/% : %
113: @true echo Installing $< in $(dir $@); \
114: $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \
115: filename=`$(BASENAME) $<`; \
116: filename_strip=$(addsuffix .strip,$${filename}); \
117: $(RM) $(RMFLAGS) $@; \
118: $(MKDIR) ./incdir; \
119: echo garbage > ./incdir/$${filename_strip}; \
120: $(UNIFDEF) -UKERNEL_PRIVATE -UDRIVER_PRIVATE \
121: $< > ./incdir/$${filename} || \
122: $(DECOMMENT) ./incdir/$${filename} r > \
123: ./incdir/$${filename_strip}; \
124: if [ -s ./incdir/$${filename_strip} ]; \
125: then ( \
126: install $(INSTALL_FLAGS) ./incdir/$${filename} $(dir $@);\
127: ); \
128: else \
129: echo Header file $< not exported; \
130: fi; \
131: $(RM) -rf ./incdir;
132:
133: $(INSTALL_MI_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/% : %
134: @true echo Installing $< in $(dir $@); \
135: $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \
136: $(RM) $(RMFLAGS) $@; \
137: install $(INSTALL_FLAGS) $< $(dir $@);
138:
139: INSTALL_MD_INC_FILES = $(addprefix $(SOURCE), $(INSTALL_MD_LIST))
140: INSTALL_MD_GEN_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_GEN_LIST))
141:
142: INSTALL_MD_LCL_FILES = $(addprefix $(SOURCE), $(INSTALL_MD_LCL_LIST))
143: INSTALL_MD_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LCL_GEN_LIST))
144:
145: $(INSTALL_MD_GEN_INC_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/% : %
146: @true echo Installing $< in $(dir $@); \
147: $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \
148: filename=`$(BASENAME) $<`; \
149: filename_strip=$(addsuffix .strip,$${filename}); \
150: $(RM) $(RMFLAGS) $@; \
151: $(MKDIR) ./incdir; \
152: echo garbage > ./incdir/$${filename_strip}; \
153: $(UNIFDEF) -UKERNEL_PRIVATE -UDRIVER_PRIVATE \
154: $< > ./incdir/$${filename} || \
155: $(DECOMMENT) ./incdir/$${filename} r > \
156: ./incdir/$${filename_strip}; \
157: if [ -s ./incdir/$${filename_strip} ]; \
158: then ( \
159: install $(INSTALL_FLAGS) ./incdir/$${filename} $(dir $@);\
160: ); \
161: else \
162: echo Header file $< not exported; \
163: fi; \
164: $(RM) -rf /incdir;
165:
166: $(INSTALL_MD_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/% : %
167: @true echo Installing $< in $(dir $@); \
168: $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \
169: $(RM) $(RMFLAGS) $@; \
170: install $(INSTALL_FLAGS) $< $(dir $@);
171:
172: setup_installhdrs_mi:
173: @echo "[ $(SOURCE) ] make setup_installhdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
174:
175: do_installhdrs_mi: $(INSTALL_MI_GEN_INC_FILES) $(INSTALL_MI_GEN_LCL_FILES)
176: @echo "[ $(SOURCE) ] make do_installhdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
177: @if [ -n "$(strip $(INSTALL_MI_LIST))" ]; then \
178: if [ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR) ]; then \
179: (cd $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_MI_LIST) ); \
180: else \
181: $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \
182: fi; \
183: $(MKDIR) ./incdir; \
184: for j in $(INSTALL_MI_LIST); \
185: do \
186: echo garbage > ./incdir/$$j.strip; \
187: $(UNIFDEF) -UKERNEL_PRIVATE -UDRIVER_PRIVATE \
188: $(SOURCE)/$$j > ./incdir/$$j || \
189: $(DECOMMENT) ./incdir/$$j r > \
190: ./incdir/$$j.strip; \
191: if [ -s ./incdir/$$j.strip ]; \
192: then ( \
193: install $(INSTALL_FLAGS) ./incdir/$$j $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \
194: ); \
195: else \
196: echo Header file $$j not exported; \
197: fi; \
198: done; \
199: $(RM) -rf ./incdir; \
200: fi
201: @if [ -n "$(strip $(INSTALL_MI_LCL_LIST))" ]; then \
202: if [ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR) ]; then \
203: (cd $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_MI_LCL_LIST) ); \
204: else \
205: $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \
206: fi; \
207: install $(INSTALL_FLAGS) $(INSTALL_MI_LCL_FILES) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \
208: fi
209:
210: setup_installhdrs_md:
211: @echo "[ $(SOURCE) ] make setup_installhdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
212:
213: do_installhdrs_md: $(INSTALL_MD_GEN_INC_FILES) $(INSTALL_MD_GEN_LCL_FILES)
214: @echo "[ $(SOURCE) ] make do_installhdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
215: @if [ -n "$(strip $(INSTALL_MD_LIST))" ]; then \
216: if [ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR) ]; then \
217: (cd $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_MD_LIST) ); \
218: else \
219: $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \
220: fi; \
221: $(MKDIR) ./incdir; \
222: for j in $(INSTALL_MD_LIST); \
223: do \
224: echo garbage > ./incdir/$$j.strip; \
225: $(UNIFDEF) -UKERNEL_PRIVATE -UDRIVER_PRIVATE \
226: $(SOURCE)/$$j > ./incdir/$$j || \
227: $(DECOMMENT) ./incdir/$$j r > \
228: ./incdir/$$j.strip; \
229: if [ -s ./incdir/$$j.strip ]; \
230: then ( \
231: install $(INSTALL_FLAGS) ./incdir/$$j $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \
232: ); \
233: else \
234: echo Header file $$j not exported; \
235: fi; \
236: done; \
237: $(RM) -rf ./incdir; \
238: fi
239: @if [ -n "$(strip $(INSTALL_MD_LCL_LIST))" ]; then \
240: if [ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR) ]; then \
241: (cd $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_MD_LCL_LIST) ); \
242: else \
243: $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \
244: fi; \
245: install $(INSTALL_FLAGS) $(INSTALL_MD_LCL_FILES) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \
246: fi
247:
248:
249: endif
250:
251: #
252: # Generic Export rules
253: #
254: ifeq ($(INCR_EXPORTHDRS), TRUE)
255:
256: EXPORT_MI_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_LIST))
257: EXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST))
258:
259: $(EXPORT_MI_INC_FILES) $(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : %
260: @true echo Exporting $< in $(dir $@); \
261: $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \
262: ${CP} -p $< $(dir $@); \
263:
264:
265: EXPORT_MD_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_LIST))
266: EXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST))
267:
268: $(EXPORT_MD_INC_FILES) $(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : %
269: @true echo Exporting $< in $(dir $@); \
270: $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \
271: ${CP} -p $< $(dir $@); \
272:
273: setup_exporthdrs_mi:
274: @echo "[ $(SOURCE) ] make setup_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
275:
276: do_exporthdrs_mi: $(EXPORT_MI_INC_FILES) $(EXPORT_MI_GEN_INC_FILES)
277: @echo "[ $(SOURCE) ] make do_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
278:
279: setup_exporthdrs_md:
280: @echo "[ $(SOURCE) ] make setup_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
281:
282: do_exporthdrs_md: $(EXPORT_MD_INC_FILES) $(EXPORT_MD_GEN_INC_FILES)
283: @echo "[ $(SOURCE) ] make do_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
284:
285: else
286:
287: EXPORT_MI_INC_FILES = $(addprefix $(SOURCE), $(EXPORT_MI_LIST))
288: EXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST))
289:
290: $(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : %
291: @true echo Exporting $< in $(dir $@); \
292: $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \
293: ${CP} -p $< $(dir $@); \
294:
295:
296: EXPORT_MD_INC_FILES = $(addprefix $(SOURCE), $(EXPORT_MD_LIST))
297: EXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST))
298:
299: $(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : %
300: @true echo Exporting $< in $(dir $@); \
301: $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \
302: ${CP} -p $< $(dir $@); \
303:
304: setup_exporthdrs_mi:
305: @echo "[ $(SOURCE) ] make setup_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
306:
307: do_exporthdrs_mi: $(EXPORT_MI_GEN_INC_FILES)
308: @echo "[ $(SOURCE) ] make do_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
309: @if [ -n "$(strip $(EXPORT_MI_LIST))" ]; then \
310: if [ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR) ]; then \
311: (cd $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR);$(RM) $(RMFLAGS) $(EXPORT_MI_LIST) ); \
312: else \
313: $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \
314: fi; \
315: ${CP} -p $(EXPORT_MI_INC_FILES) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \
316: fi
317:
318: setup_exporthdrs_md:
319: @echo "[ $(SOURCE) ] make setup_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
320:
321: do_exporthdrs_md: $(EXPORT_MD_GEN_INC_FILES)
322: @echo "[ $(SOURCE) ] make do_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
323: @if [ -n "$(strip $(EXPORT_MD_LIST))" ]; then \
324: if [ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR) ]; then \
325: (cd $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR);$(RM) $(RMFLAGS) $(EXPORT_MD_LIST) ); \
326: else \
327: $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \
328: fi; \
329: ${CP} -p $(EXPORT_MD_INC_FILES) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \
330: fi
331:
332:
333: #
334: endif
335: #
336: # Generic Compilation rules
337: #
338:
339: #
340: # Compilation rules to generate .o from .s
341: #
342: COMP_SOBJ_FILES = $(addprefix $(TARGET)$(COMP_OBJ_DIR), $(COMP_SOBJ_LIST))
343:
344: $(COMP_SOBJ_FILES): $(TARGET)$(COMP_OBJ_DIR)%.o : %.s
345: ${S_KCC} -E -MD ${SFLAGS} -DASSEMBLER $(INCFLAGS) $< > $(patsubst %.o, %.pp, ${@});
346: sed '/^\#/d' $(patsubst %.o, %.pp, ${@}) > $(patsubst %.o, %.s, ${@});
347: ${S_KCC} ${SFLAGS} -m${arch_config} ${_HOST_AS_FLAGS} -c $(patsubst %.o, %.s, ${@});
348: ${RM} ${_RMFLAGS_} $(patsubst %.o, %.pp, ${@}) $(patsubst %.o,%.s,${@});
349:
350: S_RULE_1A=@ls /
351: S_RULE_1B= ${patsubst %.o,%.s,${@}} > /dev/null
352: S_RULE_2= ${S_KCC} -E -MD ${SFLAGS} -DASSEMBLER $(INCFLAGS) $< \
353: > $(patsubst %.o, %.pp, ${@}); \
354: sed '/^\#/d' $(patsubst %.o, %.pp, ${@}) > $(patsubst %.o, %.s, ${@});
355: S_RULE_3= ${S_KCC} ${SFLAGS} -m${arch_config} ${_HOST_AS_FLAGS} -c $(patsubst %.o, %.s, ${@});\
356: ${RM} ${_RMFLAGS_} $(patsubst %.o, %.pp, ${@}) $(patsubst %.o,%.s,${@})
357:
358: #
359: # Compilation rules to generate .o from .c
360: #
361: COMP_COBJ_FILES = $(addprefix $(TARGET)$(COMP_OBJ_DIR), $(COMP_COBJ_LIST))
362:
363: $(COMP_COBJ_FILES): $(TARGET)$(COMP_OBJ_DIR)%.o : %.c
364: ${KCC} -c ${CFLAGS} -MD ${${join $@,_CFLAGS}} ${INCFLAGS} ${${join $@,_INCFLAGS}} $<
365:
366: #
367: # Compilation rules to generate .o from .c for normal files
368: #
369: C_RULE_1A=${KCC} -c ${CFLAGS} -MD ${${join $@,_CFLAGS}} ${INCFLAGS} ${${join $@,_INCFLAGS}}
370: C_RULE_1B=$*.c
371: C_RULE_2=
372: C_RULE_3=
373: C_RULE_4=
374:
375: #
376: # Compilation rules to generate .o from .c for driver files
377: #
378: C_RULE_1A_D=${C_RULE_1A}
379: C_RULE_1B_D=${C_RULE_1B}
380: C_RULE_2_D=${C_RULE_2}
381: C_RULE_3_D=${C_RULE_3}
382: C_RULE_4_D=${C_RULE_4}
383:
384: #
385: # Compilation rules to generate .o from .m
386: #
387: M_RULE_1A=${KCC} -c ${CFLAGS} -MD ${${join $@,_CFLAGS}} ${INCFLAGS} ${${join $@,_INCFLAGS}}
388: M_RULE_1B=$*.m
389: M_RULE_2=
390: M_RULE_3=
391: M_RULE_4=
392:
393: #
394: # Linker rule to generate a component
395: #
396: LD_COMPONENT_OBJ_FILES = $(addprefix $(TARGET)$(COMP_OBJ_DIR), $(LD_COMPONENT_OBJ_LIST))
397:
398: COMPONENT_IMAGE_FILE = $(addprefix $(TARGET), $(COMPONENT_IMAGE))
399:
400: $(COMPONENT_IMAGE_FILE): $(LD_COMPONENT_OBJ_FILES)
401: @echo "[ creating $(COMPONENT_IMAGE) ]"
402: $(LD) $(LDFLAGS_COMPONENT) -o $(COMPONENT_IMAGE_FILE) ${LD_COMPONENT_OBJ_FILES};
403: (cd $(TARGET)$(COMP_OBJ_DIR); ${MD} -u Makedep -f -d `ls *.d`);
404:
405: setup_build_all:
406: @echo "[ $(SOURCE) ] make setup_build_all $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
407:
408: do_build_all: $(COMP_FILES) $(COMP_COBJ_FILES) $(COMP_SOBJ_FILES) $(COMPONENT_IMAGE_FILE)
409: @echo "[ $(SOURCE) ] make do_build_all $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
410:
411: ifeq ($(shell $(RELPATH) $(SRCROOT) $(SOURCE)), .)
412: do_build_all: do_build_mach_kernel
413: endif
414:
415: #
416: # mach_kernel building rules
417: #
418: MK_COMPONENT_OBJ_FILES = $(addprefix $(TARGET),$(foreach component,$(COMPONENT_LIST), $(addprefix $(component)/$(firstword $($(addsuffix _KERNEL_CONFIG, $(shell echo -n $(component) | tr a-z A-Z))) $(KERNEL_CONFIG))/, $(addsuffix .o, $(component)))))
419:
420: KERNEL_VERSION_FILES= \
421: $(SRCROOT)/osfmk/conf/kernelversion.major \
422: $(SRCROOT)/osfmk/conf/kernelversion.minor \
423: $(SRCROOT)/osfmk/conf/kernelversion.variant
424:
425: KERNEL_COPYRIGHT_FILES = \
426: $(SRCROOT)/osfmk/conf/copyright
427:
428: do_build_mach_kernel:
429: @echo "[ building mach_kernel ]"
430: $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/kernel_newvers \
431: `$(CAT) ${KERNEL_VERSION_FILES}` ${KERNEL_COPYRIGHT_FILES}
432: ${KCC} $(CFLAGS) $(INCLUDES) -c kernel_vers.c
433: $(LD) $(LDFLAGS_KERNEL) $(MK_COMPONENT_OBJ_FILES) kernel_vers.o -o $(TARGET)mach_kernel.sys $(LD_KERNEL_LIBS)
434: $(STRIP) $(STRIP_FLAGS) $(TARGET)mach_kernel.sys -o $(TARGET)mach_kernel
435: #
436: # Generic Install rules
437: #
438: INSTALL_FILE_FILES = $(addprefix $(DSTROOT)$(INSTALL_FILE_DIR), $(INSTALL_FILE_LIST))
439:
440: force_file_install:
441:
442: $(INSTALL_FILE_FILES): $(DSTROOT)$(INSTALL_FILE_DIR)% : $(TARGET)% force_file_install
443: @echo Installing $< in $@;
444: @$(MKDIR) $(DSTROOT)$(INSTALL_FILE_DIR); \
445: if [ "`echo $(INSTALL_ARCHS) | wc -w`" -eq 1 ]; then \
446: $(RM) $(RMFLAGS) $@; \
447: install $(INSTALL_FLAGS) $< $(dir $@); \
448: else \
449: if [ ! -e $@ ]; then \
450: echo >empty_file; \
451: lipo_arg="$(subst _empty_file, empty_file,$(foreach lipo_arch,$(shell echo -n $(INSTALL_ARCHS) | tr A-Z a-z), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \
452: $(LIPO) $${lipo_arg} -create -output $@; \
453: $(RM) $(RMFLAGS) empty_file; \
454: fi; \
455: $(LIPO) $@ -replace $(shell echo -n $(ARCH_CONFIG) | tr A-Z a-z) $< -o $@; \
456: fi
457:
458: INSTALL_FILESYS_FILES = $(addprefix $(SYMROOT)$(INSTALL_FILE_DIR), $(INSTALL_FILE_LIST))
459:
460: force_filesys_install:
461:
462: $(INSTALL_FILESYS_FILES): $(SYMROOT)$(INSTALL_FILE_DIR)% : $(TARGET)%.sys force_filesys_install
463: @echo Installing $< in $@;
464: @$(MKDIR) $(SYMROOT)$(INSTALL_FILE_DIR); \
465: if [ "`echo $(INSTALL_ARCHS) | wc -w`" -eq 1 ]; then \
466: $(RM) $(RMFLAGS) $@; \
467: install $(INSTALL_FLAGS) $< $(dir $@); \
468: else \
469: if [ ! -e $@ ]; then \
470: echo >empty_file; \
471: lipo_arg="$(subst _empty_file, empty_file,$(foreach lipo_arch,$(shell echo -n $(INSTALL_ARCHS) | tr A-Z a-z), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \
472: $(LIPO) $${lipo_arg} -create -output $@; \
473: $(RM) $(RMFLAGS) empty_file; \
474: fi; \
475: $(LIPO) $@ -replace $(shell echo -n $(ARCH_CONFIG) | tr A-Z a-z) $< -o $@; \
476: fi
477:
478: setup_build_install:
479: @echo "[ $(SOURCE) ] make setup_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
480:
481: do_build_install: $(INSTALL_FILESYS_FILES) $(INSTALL_FILE_FILES)
482: @echo "[ $(SOURCE) ] make do_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)"
483:
484: -include Makedep
485:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.