X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/91447636331957f3d9b5ca5b508f07c526b0074d..39236c6e673c41db228275375ab7fdb0f837b292:/libkern/conf/Makefile.template diff --git a/libkern/conf/Makefile.template b/libkern/conf/Makefile.template index fc5e9da90..a9b7a9af7 100644 --- a/libkern/conf/Makefile.template +++ b/libkern/conf/Makefile.template @@ -5,16 +5,6 @@ # the terms and conditions for use and redistribution. # -# -# Export IDENT for sub-makefiles -# -export IDENT - -# -# XXX: INCFLAGS -# -INCFLAGS_MAKEFILE= - export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule @@ -24,12 +14,32 @@ include $(MakeInc_cmd) include $(MakeInc_def) # -# XXX: CFLAGS +# CFLAGS # -CFLAGS+= -DKERNEL -DLIBKERN_KERNEL_PRIVATE -DOSALLOCDEBUG=1 \ - -Wall -Wno-four-char-constants -fno-common +CFLAGS+= -include meta_features.h -DLIBKERN_KERNEL_PRIVATE -DOSALLOCDEBUG=1 + +# Objects that don't want -Wcast-align warning (8474835) +OSKextLib.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align +OSKext.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align +OSMetaClass.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align +OSUnserialize.cpo_CXXWARNFLAGS_ADD = -Wno-cast-align +corecrypto_md5.o_CWARNFLAGS_ADD = -Wno-cast-align +corecrypto_sha1.o_CWARNFLAGS_ADD = -Wno-cast-align + +# zlib is 3rd party source +compress.o_CWARNFLAGS_ADD = -Wno-cast-qual +deflate.o_CWARNFLAGS_ADD = -Wno-cast-qual +infback.o_CWARNFLAGS_ADD = -Wno-cast-qual +inffast.o_CWARNFLAGS_ADD = -Wno-cast-qual +inflate.o_CWARNFLAGS_ADD = -Wno-cast-qual +trees.o_CWARNFLAGS_ADD = -Wno-cast-qual +uncompr.o_CWARNFLAGS_ADD = -Wno-cast-qual -SFLAGS+= -DKERNEL +# warnings in bison-generated code +OSUnserializeXML.cpo_CXXWARNFLAGS_ADD = -Wno-uninitialized + +# Runtime support functions don't interact well with LTO (9294679) +stack_protector.o_CFLAGS_ADD += $(CFLAGS_NOLTO_FLAG) # # Directories for mig generated files @@ -54,15 +64,26 @@ COMP_SUBDIRS = %CFILES -%MFILES - %SFILES -%BFILES - -%ORDERED %MACHDEP +# +# Machine-independent per-file flags +# + +# zlib is 3rd party source +compress.o_CWARNFLAGS_ADD = -Wno-cast-qual +deflate.o_CWARNFLAGS_ADD = -Wno-cast-qual +infback.o_CWARNFLAGS_ADD = -Wno-cast-qual +inffast.o_CWARNFLAGS_ADD = -Wno-cast-qual +inflate.o_CWARNFLAGS_ADD = -Wno-cast-qual +trees.o_CWARNFLAGS_ADD = -Wno-cast-qual +uncompr.o_CWARNFLAGS_ADD = -Wno-cast-qual + +# warnings in bison-generated code +OSUnserializeXML.cpo_CXXWARNFLAGS_ADD = -Wno-uninitialized + # # OBJSDEPS is the set of files (defined in the machine dependent # template if necessary) which all objects depend on (such as an @@ -70,25 +91,24 @@ COMP_SUBDIRS = # ${OBJS}: ${OBJSDEPS} - -%LOAD - LDOBJS = $(OBJS) -$(COMPONENT).o: $(LDOBJS) - @echo "creating $(COMPONENT).o" - @echo [ updating $(COMPONENT).o ${LIBKERN_KERNEL_CONFIG} ] - $(LD) $(LDFLAGS_COMPONENT) -o $(COMPONENT).o ${LDOBJS} +$(COMPONENT).filelist: $(LDOBJS) + $(_v)for hib_file in ${HIB_FILES}; \ + do \ + $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} ; \ + mv $${hib_file}__ $${hib_file} ; \ + done + @echo LDFILELIST $(COMPONENT) + $(_v)( for obj in ${LDOBJS}; do \ + echo $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ + done; ) > $(COMPONENT).filelist -do_all: $(COMPONENT).o +do_all: $(COMPONENT).filelist -do_depend: do_all - ${MD} -u Makedep -f -d `ls *.d` - -do_build_all: do_depend +do_build_all:: do_all %RULES include $(MakeInc_rule) include $(MakeInc_dir) -