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)
126