xref: /xnu-11417.140.69/iokit/conf/Makefile.template (revision 43a90889846e00bfb5cf1d255cdc0a701a1e05a4)
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 -DDRIVERKIT_PRIVATE=1 -DIOMATCHDEBUG=1 -DIOALLOCDEBUG=1 -DPRIVATE_WIFI_ONLY=1
21SFLAGS+= -include meta_features.h
22#-DIOKITDEBUG=-1
23
24CFLAGS_RELEASE += -DIOASSERT=0
25CFLAGS_DEVELOPMENT += -DIOASSERT=1
26CFLAGS_DEBUG += -DIOASSERT=1
27
28#
29# Directories for generated files
30#
31COMP_SUBDIRS = \
32	DriverKit \
33	Exclaves
34
35#
36#  Make sure we don't remove this by accident if interrupted at the wrong
37#  time.
38#
39.PRECIOUS: Makefile
40
41#
42#  Theses macros are filled in by the config program depending on the
43#  current configuration.  The MACHDEP macro is replaced by the
44#  contents of the machine dependent makefile template and the others
45#  are replaced by the corresponding symbol definitions for the
46#  configuration.
47#
48
49%OBJS
50
51%LIBOBJS
52
53%CFILES
54
55%CXXFILES
56
57%SFILES
58
59%MACHDEP
60
61#
62# Diagnostic opt-outs.  We need to make this list empty.
63#
64# DO NOT ADD MORE HERE.
65#
66# -Wno-cast-align
67IODataQueue.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align
68IOHibernateIO.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align
69IOHibernateRestoreKernel.o_CWARNFLAGS_ADD += -Wno-cast-align
70IONVRAM.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align
71IOSharedDataQueue.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align
72IOUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align
73# -Wno-cast-qual
74DINetBootHook.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
75IOCatalogue.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
76IODMAController.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
77IODataQueue.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
78IODeviceTreeSupport.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
79IOHibernateIO.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
80IOInterruptController.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
81IOKitBSDInit.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
82IOKitDebug.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
83IOLib.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
84IOLocks.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
85IOMapper.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
86IOMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
87IONVRAM.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
88IOPMrootDomain.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
89IOPlatformExpert.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
90IOPolledInterface.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
91IORegistryEntry.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
92IOService.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
93IOServicePM.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
94IOSharedDataQueue.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
95IOSimpleReporter.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
96IOSkywalkSupport.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
97IOStateReporter.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
98IOUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
99IOUserServer.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
100RootDomainUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual
101# -Wno-missing-prototypes
102IOKitBSDInit.cpo_CXXWARNFLAGS_ADD += -Wno-missing-prototypes
103IOKitDebug.cpo_CXXWARNFLAGS_ADD += -Wno-missing-prototypes
104IOPMrootDomain.cpo_CXXWARNFLAGS_ADD += -Wno-missing-prototypes
105IOUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-missing-prototypes
106# -Wno-shadow
107IOHibernateIO.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
108IOKitDebug.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
109IOMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
110IOMultiMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
111IOPMrootDomain.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
112IOPolledInterface.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
113IOService.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
114IOServicePM.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
115IOSharedDataQueue.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
116IOTimerEventSource.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
117IOUserServer.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
118TestIOMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
119Tests.cpo_CXXWARNFLAGS_ADD += -Wno-shadow
120# -Wno-shadow-field-in-constructor
121IOUserServer.cpo_CXXWARNFLAGS_ADD += -Wno-shadow-field-in-constructor
122# -Wno-sign-conversion
123DINetBootHook.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
124IOBufferMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
125IOCPU.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
126IOCatalogue.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
127IOCommandQueue.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
128IODMACommand.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
129IODMAEventSource.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
130IODeviceTreeSupport.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
131IOFilterInterruptEventSource.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
132IOHibernateIO.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
133IOHibernateRestoreKernel.o_CWARNFLAGS_ADD += -Wno-sign-conversion
134IOHistogramReporter.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
135IOInterleavedMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
136IOInterruptAccounting.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
137IOInterruptController.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
138IOInterruptEventSource.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
139IOKitBSDInit.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
140IOKitDebug.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
141IOLib.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
142IOMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
143IOMultiMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
144IONVRAM.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
145IOPMPowerSource.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
146IOPMrootDomain.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
147IOPlatformActions.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
148IOPlatformExpert.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
149IOPolledInterface.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
150IORTC.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
151IORegistryEntry.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
152IOService.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
153IOServicePM.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
154IOSkywalkSupport.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
155IOStartIOKit.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
156IOStatistics.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
157IOStringFuncs.o_CWARNFLAGS_ADD += -Wno-sign-conversion
158IOTimerEventSource.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
159IOUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
160IOUserServer.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
161IOWorkLoop.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
162RootDomainUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
163TestIOMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion
164# -Wno-unused-parameter
165IOBufferMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
166IOCatalogue.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
167IOCommandGate.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
168IODMACommand.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
169IODeviceTreeSupport.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
170IOFilterInterruptEventSource.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
171IOHibernateIO.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
172IOHibernateRestoreKernel.o_CWARNFLAGS_ADD += -Wno-unused-parameter
173IOInterruptController.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
174IOInterruptEventSource.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
175IOKitBSDInit.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
176IOKitDebug.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
177IOLib.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
178IOLocks.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
179IOMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
180IOMultiMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
181IONVRAM.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
182IOPMrootDomain.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
183IOPerfControl.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
184IOPlatformExpert.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
185IOPolledInterface.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
186IORTC.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
187IORegistryEntry.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
188IOReporter.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
189IOService.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
190IOServicePM.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
191IOSkywalkSupport.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
192IOStateReporter.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
193IOUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
194IOUserServer.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
195IOWatchDogTimer.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
196IOWorkLoop.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
197PassthruInterruptController.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
198RootDomainUserClient.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
199TestIOMemoryDescriptor.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
200Tests.cpo_CXXWARNFLAGS_ADD += -Wno-unused-parameter
201IODMACommand.iig.cpo_CXXWARNFLAGS_ADD += -Wno-duplicate-decl-specifier
202
203# Rebuild if per-file overrides change
204${OBJS}: $(firstword $(MAKEFILE_LIST))
205
206# Rebuild if global compile flags change
207$(COBJS): .CFLAGS
208.CFLAGS: ALWAYS
209	$(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS)
210$(CXXOBJS): .CXXFLAGS
211.CXXFLAGS: ALWAYS
212	$(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS)
213$(SOBJS): .SFLAGS
214.SFLAGS: ALWAYS
215	$(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS)
216
217$(COMPONENT).filelist: $(OBJS)
218	$(_v)for hib_file in ${HIB_FILES};		\
219	do	\
220                $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} || exit 1; \
221                mv $${hib_file}__ $${hib_file} || exit 1; \
222	done
223	@$(LOG_LDFILELIST) "$(COMPONENT)"
224	$(_v)for obj in ${OBJS}; do	\
225		 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
226	done > $(COMPONENT).filelist
227
228$(COMPONENT).libfilelist: $(LIBOBJS)
229	@$(LOG_LDFILELIST) "lib$(COMPONENT)"
230	$(_v)for obj in ${LIBOBJS}; do	\
231		 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
232	done > $(COMPONENT).libfilelist
233
234ifeq ($(RC_ProjectName),xnu_libraries)
235do_all: $(COMPONENT).libfilelist
236else
237do_all: $(COMPONENT).filelist
238endif
239
240do_build_all:: do_all
241
242%RULES
243
244include $(MakeInc_rule)
245include $(MakeInc_dir)
246