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