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 20SFLAGS+= -include meta_features.h 21 22# Runtime support functions don't interact well with LTO (9294679) 23stack_protector.o_CFLAGS_ADD += $(CFLAGS_NOLTO_FLAG) 24 25# 26# Directories for mig generated files 27# 28COMP_SUBDIRS = 29 30# 31# Make sure we don't remove this by accident if interrupted at the wrong 32# time. 33# 34.PRECIOUS: Makefile 35 36# 37# Theses macros are filled in by the config program depending on the 38# current configuration. The MACHDEP macro is replaced by the 39# contents of the machine dependent makefile template and the others 40# are replaced by the corresponding symbol definitions for the 41# configuration. 42# 43 44%OBJS 45 46%LIBOBJS 47 48%CFILES 49 50%CXXFILES 51 52%SFILES 53 54%MACHDEP 55 56# 57# Machine-independent per-file flags 58# 59 60# 61# Diagnostic opt-outs. We need to make this list empty. 62# 63# DO NOT ADD MORE HERE. 64# 65# -Wno-cast-align 66OSKext.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align 67OSKextLib.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align 68OSMetaClass.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align 69OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-cast-align 70corecrypto_md5.o_CWARNFLAGS_ADD += -Wno-cast-align 71corecrypto_sha1.o_CWARNFLAGS_ADD += -Wno-cast-align 72# -Wno-cast-qual 73OSKext.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual 74compress.o_CWARNFLAGS_ADD += -Wno-cast-qual 75deflate.o_CWARNFLAGS_ADD += -Wno-cast-qual 76runtime.cpo_CXXWARNFLAGS_ADD += -Wno-cast-qual 77trees.o_CWARNFLAGS_ADD += -Wno-cast-qual 78uncompr.o_CWARNFLAGS_ADD += -Wno-cast-qual 79# -Wno-implicit-int-conversion 80OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-implicit-int-conversion 81OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-implicit-int-conversion 82kxld_sym.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 83log.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 84scanf.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 85# -Wno-missing-prototypes 86OSRuntime.cpo_CXXWARNFLAGS_ADD += -Wno-missing-prototypes 87# -Wno-shorten-64-to-32 88OSKext.cpo_CXXWARNFLAGS_ADD += -Wno-shorten-64-to-32 89OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-shorten-64-to-32 90OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-shorten-64-to-32 91log.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 92scanf.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 93# -Wno-sign-conversion 94OSCollection.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 95OSData.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 96OSDebug.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 97OSKext.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 98OSKextVersion.o_CWARNFLAGS_ADD += -Wno-sign-conversion 99OSMetaClass.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 100OSNumber.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 101OSObject.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 102OSRuntime.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 103OSSerializeBinary.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 104OSSet.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 105OSString.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 106OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 107OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 108OSValueObject.cpo_CXXWARNFLAGS_ADD += -Wno-sign-conversion 109adler32.o_CWARNFLAGS_ADD += -Wno-sign-conversion 110corecrypto_aes.o_CWARNFLAGS_ADD += -Wno-sign-conversion 111corecrypto_aesxts.o_CWARNFLAGS_ADD += -Wno-sign-conversion 112deflate.o_CWARNFLAGS_ADD += -Wno-sign-conversion 113inet_aton.o_CWARNFLAGS_ADD += -Wno-sign-conversion 114infback.o_CWARNFLAGS_ADD += -Wno-sign-conversion 115inflate.o_CWARNFLAGS_ADD += -Wno-sign-conversion 116kxld_array.o_CWARNFLAGS_ADD += -Wno-sign-conversion 117kxld_copyright.o_CWARNFLAGS_ADD += -Wno-sign-conversion 118kxld_dict.o_CWARNFLAGS_ADD += -Wno-sign-conversion 119kxld_object.o_CWARNFLAGS_ADD += -Wno-sign-conversion 120kxld_reloc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 121kxld_sym.o_CWARNFLAGS_ADD += -Wno-sign-conversion 122kxld_symtab.o_CWARNFLAGS_ADD += -Wno-sign-conversion 123kxld_util.o_CWARNFLAGS_ADD += -Wno-sign-conversion 124log.o_CWARNFLAGS_ADD += -Wno-sign-conversion 125refcnt.o_CWARNFLAGS_ADD += -Wno-sign-conversion 126scanf.o_CWARNFLAGS_ADD += -Wno-sign-conversion 127trees.o_CWARNFLAGS_ADD += -Wno-sign-conversion 128uuid.o_CWARNFLAGS_ADD += -Wno-sign-conversion 129# -Wno-unreachable-code 130OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code 131OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code 132OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code-break 133OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code-break 134# -Wno-zero-as-null-pointer-constant 135OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-zero-as-null-pointer-constant 136OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-zero-as-null-pointer-constant 137 138# Rebuild if per-file overrides change 139${OBJS}: $(firstword $(MAKEFILE_LIST)) 140 141# Rebuild if global compile flags change 142$(COBJS): .CFLAGS 143.CFLAGS: ALWAYS 144 $(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS) 145$(CXXOBJS): .CXXFLAGS 146.CXXFLAGS: ALWAYS 147 $(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS) 148$(SOBJS): .SFLAGS 149.SFLAGS: ALWAYS 150 $(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS) 151 152$(COMPONENT).filelist: $(OBJS) 153 $(_v)for hib_file in ${HIB_FILES}; \ 154 do \ 155 $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} || exit 1; \ 156 mv $${hib_file}__ $${hib_file} || exit 1; \ 157 done 158 @$(LOG_LDFILELIST) "$(COMPONENT)" 159 $(_v)for obj in ${OBJS}; do \ 160 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ 161 done > $(COMPONENT).filelist 162 163$(COMPONENT).libfilelist: $(LIBOBJS) 164 @$(LOG_LDFILELIST) "lib$(COMPONENT)" 165 $(_v)for obj in ${LIBOBJS}; do \ 166 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ 167 done > $(COMPONENT).libfilelist 168 169ifeq ($(RC_ProjectName),xnu_libraries) 170do_all: $(COMPONENT).libfilelist 171else 172do_all: $(COMPONENT).filelist 173endif 174 175do_build_all:: do_all 176 177%RULES 178 179include $(MakeInc_rule) 180include $(MakeInc_dir) 181