]> git.saurik.com Git - apple/xnu.git/blame - libkern/conf/Makefile.template
xnu-3248.60.10.tar.gz
[apple/xnu.git] / libkern / conf / Makefile.template
CommitLineData
1c79356b
A
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
1c79356b
A
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#
b0d623f7 17# CFLAGS
1c79356b 18#
39236c6e
A
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
1c79356b 28
b0d623f7
A
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
fe8ab488
A
40OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
41OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
1c79356b 42
316670eb
A
43# Runtime support functions don't interact well with LTO (9294679)
44stack_protector.o_CFLAGS_ADD += $(CFLAGS_NOLTO_FLAG)
45
1c79356b
A
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
1c79356b
A
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
fe8ab488
A
69%CXXFILES
70
1c79356b
A
71%SFILES
72
1c79356b
A
73%MACHDEP
74
39236c6e
A
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
fe8ab488
A
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)
39236c6e 108 $(_v)for hib_file in ${HIB_FILES}; \
6d2010ae 109 do \
3e170ce0
A
110 $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} || exit 1; \
111 mv $${hib_file}__ $${hib_file} || exit 1; \
39236c6e 112 done
b0d623f7 113 @echo LDFILELIST $(COMPONENT)
3e170ce0 114 $(_v)for obj in ${OBJS}; do \
39236c6e 115 echo $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
3e170ce0 116 done > $(COMPONENT).filelist
1c79356b 117
6d2010ae 118do_all: $(COMPONENT).filelist
1c79356b 119
39236c6e 120do_build_all:: do_all
1c79356b
A
121
122%RULES
123
1c79356b 124include $(MakeInc_rule)
1c79356b 125include $(MakeInc_dir)