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# XXX: CFLAGS
18#
19CFLAGS+= -include meta_features.h -DDRIVER_PRIVATE		\
20	-DIOKIT_KERNEL_PRIVATE -DIOMATCHDEBUG=1 -DIOALLOCDEBUG=1
21#-DIOKITDEBUG=-1
22
23CWARNFLAGS   = $(CWARNFLAGS_STD) -Wno-unused-parameter
24CXXWARNFLAGS = $(CXXWARNFLAGS_STD) -Wno-unused-parameter -Wno-cast-qual -Wno-shadow
25
26# Objects that don't want -Wcast-align warning (8474835)
27IOHibernateRestoreKernel.o_CWARNFLAGS_ADD = -Wno-cast-align
28CXXOBJS_NO_CAST_ALIGN =				\
29		IODMACommand.cpo		\
30		IODataQueue.cpo			\
31		IOHibernateIO.cpo		\
32		IOMemoryDescriptor.cpo		\
33		IONVRAM.cpo			\
34		IOPMrootDomain.cpo		\
35		IOSharedDataQueue.cpo		\
36		IOUserClient.cpo
37
38$(foreach file,$(CXXOBJS_NO_CAST_ALIGN),$(eval $(call add_perfile_cxxflags,$(file),-Wno-cast-align)))
39
40CFLAGS_RELEASE += -DIOASSERT=0
41CFLAGS_DEVELOPMENT += -DIOASSERT=1
42CFLAGS_DEBUG += -DIOASSERT=1
43
44#
45# Directories for mig generated files
46#
47COMP_SUBDIRS = 
48
49#
50#  Make sure we don't remove this by accident if interrupted at the wrong
51#  time.
52#
53.PRECIOUS: Makefile
54
55#
56#  Theses macros are filled in by the config program depending on the
57#  current configuration.  The MACHDEP macro is replaced by the
58#  contents of the machine dependent makefile template and the others
59#  are replaced by the corresponding symbol definitions for the
60#  configuration.
61#
62
63%OBJS
64
65%CFILES
66
67%CXXFILES
68
69%SFILES
70
71%MACHDEP
72
73# Rebuild if per-file overrides change
74${OBJS}: $(firstword $(MAKEFILE_LIST))
75
76# Rebuild if global compile flags change
77$(COBJS): .CFLAGS
78.CFLAGS: ALWAYS
79	$(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS)
80$(CXXOBJS): .CXXFLAGS
81.CXXFLAGS: ALWAYS
82	$(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS)
83$(SOBJS): .SFLAGS
84.SFLAGS: ALWAYS
85	$(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS)
86
87$(COMPONENT).filelist: $(OBJS)
88	$(_v)for hib_file in ${HIB_FILES};		\
89	do	\
90                $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} ; \
91                mv $${hib_file}__ $${hib_file} ; \
92	done
93	@echo LDFILELIST $(COMPONENT)
94	$(_v)( for obj in ${OBJS}; do	\
95		 echo $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
96	done; ) > $(COMPONENT).filelist
97
98do_all: $(COMPONENT).filelist
99
100do_build_all:: do_all
101
102%RULES
103
104include $(MakeInc_rule)
105include $(MakeInc_dir)
106