]> git.saurik.com Git - apple/xnu.git/blame_incremental - libkern/conf/Makefile.template
xnu-2782.40.9.tar.gz
[apple/xnu.git] / libkern / conf / Makefile.template
... / ...
CommitLineData
1#
2# Mach Operating System
3# Copyright (c) 1986 Carnegie-Mellon University
4# All rights reserved. The CMU software License Agreement specifies
5# the terms and conditions for use and redistribution.
6#
7
8export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
9export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
10export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
11export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
12
13include $(MakeInc_cmd)
14include $(MakeInc_def)
15
16#
17# CFLAGS
18#
19CFLAGS+= -include meta_features.h -DLIBKERN_KERNEL_PRIVATE -DOSALLOCDEBUG=1
20
21# Objects that don't want -Wcast-align warning (8474835)
22OSKextLib.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align
23OSKext.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align
24OSMetaClass.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align
25OSUnserialize.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align
26corecrypto_md5.o_CWARNFLAGS_ADD = -Wno-cast-align
27corecrypto_sha1.o_CWARNFLAGS_ADD = -Wno-cast-align
28
29# zlib is 3rd party source
30compress.o_CWARNFLAGS_ADD = -Wno-cast-qual
31deflate.o_CWARNFLAGS_ADD = -Wno-cast-qual
32infback.o_CWARNFLAGS_ADD = -Wno-cast-qual
33inffast.o_CWARNFLAGS_ADD = -Wno-cast-qual
34inflate.o_CWARNFLAGS_ADD = -Wno-cast-qual
35trees.o_CWARNFLAGS_ADD = -Wno-cast-qual
36uncompr.o_CWARNFLAGS_ADD = -Wno-cast-qual
37
38# warnings in bison-generated code
39OSUnserializeXML.cpo_CXXWARNFLAGS_ADD = -Wno-uninitialized
40OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
41OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
42
43# Runtime support functions don't interact well with LTO (9294679)
44stack_protector.o_CFLAGS_ADD += $(CFLAGS_NOLTO_FLAG)
45
46#
47# Directories for mig generated files
48#
49COMP_SUBDIRS =
50
51#
52# Make sure we don't remove this by accident if interrupted at the wrong
53# time.
54#
55.PRECIOUS: Makefile
56
57#
58# Theses macros are filled in by the config program depending on the
59# current configuration. The MACHDEP macro is replaced by the
60# contents of the machine dependent makefile template and the others
61# are replaced by the corresponding symbol definitions for the
62# configuration.
63#
64
65%OBJS
66
67%CFILES
68
69%CXXFILES
70
71%SFILES
72
73%MACHDEP
74
75#
76# Machine-independent per-file flags
77#
78
79# zlib is 3rd party source
80compress.o_CWARNFLAGS_ADD = -Wno-cast-qual
81deflate.o_CWARNFLAGS_ADD = -Wno-cast-qual
82infback.o_CWARNFLAGS_ADD = -Wno-cast-qual
83inffast.o_CWARNFLAGS_ADD = -Wno-cast-qual
84inflate.o_CWARNFLAGS_ADD = -Wno-cast-qual
85trees.o_CWARNFLAGS_ADD = -Wno-cast-qual
86uncompr.o_CWARNFLAGS_ADD = -Wno-cast-qual
87
88# warnings in bison-generated code
89OSUnserializeXML.cpo_CXXWARNFLAGS_ADD = -Wno-uninitialized
90OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
91OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
92
93# Rebuild if per-file overrides change
94${OBJS}: $(firstword $(MAKEFILE_LIST))
95
96# Rebuild if global compile flags change
97$(COBJS): .CFLAGS
98.CFLAGS: ALWAYS
99 $(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS)
100$(CXXOBJS): .CXXFLAGS
101.CXXFLAGS: ALWAYS
102 $(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS)
103$(SOBJS): .SFLAGS
104.SFLAGS: ALWAYS
105 $(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS)
106
107$(COMPONENT).filelist: $(OBJS)
108 $(_v)for hib_file in ${HIB_FILES}; \
109 do \
110 $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} ; \
111 mv $${hib_file}__ $${hib_file} ; \
112 done
113 @echo LDFILELIST $(COMPONENT)
114 $(_v)( for obj in ${OBJS}; do \
115 echo $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
116 done; ) > $(COMPONENT).filelist
117
118do_all: $(COMPONENT).filelist
119
120do_build_all:: do_all
121
122%RULES
123
124include $(MakeInc_rule)
125include $(MakeInc_dir)