X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/4a3eedf9ecc9bbe3f3a5c6ce5e53ad199d639d32..cb3231590a3c94ab4375e2228bd5e86b0cf1ad7e:/security/conf/Makefile.template diff --git a/security/conf/Makefile.template b/security/conf/Makefile.template index f697e624e..2d75b556c 100644 --- a/security/conf/Makefile.template +++ b/security/conf/Makefile.template @@ -5,16 +5,6 @@ # the terms and conditions for use and redistribution. # -# -# Export IDENT for sub-makefiles -# -export IDENT - -# -# INCFLAGS to include security prototypes -# -INCFLAGS_MAKEFILE= -I$(SOURCE) -I$(SOURCE)/.. - export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule @@ -26,28 +16,32 @@ include $(MakeInc_def) # # XXX: CFLAGS # -CFLAGS+= -I. -imacros meta_features.h -DKERNEL -DBSD_KERNEL_PRIVATE \ - -Wall -Wno-four-char-constants -fno-common +CFLAGS+= -include meta_features.h -DBSD_KERNEL_PRIVATE +SFLAGS+= -include meta_features.h + +# Objects that don't want -Wcast-align warning (8474835) +OBJS_NO_CAST_ALIGN = \ + mac_alloc.o \ + mac_base.o + +$(foreach file,$(OBJS_NO_CAST_ALIGN),$(eval $(call add_perfile_cflags,$(file),-Wno-cast-align))) + +# +# INCFLAGS to include security prototypes +# +INCFLAGS_MAKEFILE= -I$(SOURCE)/.. # # Directories for mig generated files # COMP_SUBDIRS = - +# # Make sure we don't remove this by accident if interrupted at the wrong # time. # .PRECIOUS: Makefile -VERSION_FILES= \ - $(SOURCE_DIR)/$(COMPONENT)/conf/version.major \ - $(SOURCE_DIR)/$(COMPONENT)/conf/version.minor \ - $(SOURCE_DIR)/$(COMPONENT)/conf/version.variant - -COPYRIGHT_FILES = \ - $(SOURCE_DIR)/$(COMPONENT)/conf/copyright.nai - # # Theses macros are filled in by the config program depending on the # current configuration. The MACHDEP macro is replaced by the @@ -60,44 +54,35 @@ COPYRIGHT_FILES = \ %CFILES -%MFILES +%CXXFILES %SFILES -%BFILES - -%ORDERED %MACHDEP -# -# OBJSDEPS is the set of files (defined in the machine dependent -# template if necessary) which all objects depend on (such as an -# in-line assembler expansion filter) -# -${OBJS}: ${OBJSDEPS} - - -%LOAD - -LDOBJS = $(OBJS) - -$(COMPONENT).o: $(LDOBJS) - $(_v)$(RM) $(RMFLAGS) vers.c - $(_v)$(COMPOBJROOT)/newvers \ - `$(CAT) ${VERSION_FILES}` ${COPYRIGHT_FILES} - $(_v)${KCC} $(CFLAGS) $(INCLUDES) -c vers.c - @echo LD $(COMPONENT) - $(_v)$(LD) $(LDFLAGS_COMPONENT) -o $(COMPONENT).o ${LDOBJS} vers.o - -do_all: $(COMPONENT).o - -do_depend: do_all - $(_v)${MD} -u Makedep -f -d `ls *.d`; - -do_build_all: do_depend - -${SOBJS}: - +# Rebuild if per-file overrides change +${OBJS}: $(firstword $(MAKEFILE_LIST)) + +# Rebuild if global compile flags change +$(COBJS): .CFLAGS +.CFLAGS: ALWAYS + $(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS) +$(CXXOBJS): .CXXFLAGS +.CXXFLAGS: ALWAYS + $(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS) +$(SOBJS): .SFLAGS +.SFLAGS: ALWAYS + $(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS) + +$(COMPONENT).filelist: $(OBJS) + $(call makelog,$(ColorL)LDFILELIST$(Color0) $(ColorLF)$(COMPONENT)$(Color0)) + $(_v)for obj in ${OBJS}; do \ + $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ + done > $(COMPONENT).filelist + +do_all: $(COMPONENT).filelist + +do_build_all:: do_all %RULES