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