]> git.saurik.com Git - apple/xnu.git/blobdiff - libkern/conf/Makefile.template
xnu-3247.1.106.tar.gz
[apple/xnu.git] / libkern / conf / Makefile.template
index a9b7a9af71315570479375df0d7fde87899f14c4..23bbd4f6a2b359afb306332c83e59a0a8ed37c37 100644 (file)
@@ -37,6 +37,8 @@ uncompr.o_CWARNFLAGS_ADD = -Wno-cast-qual
 
 # warnings in bison-generated code
 OSUnserializeXML.cpo_CXXWARNFLAGS_ADD = -Wno-uninitialized
+OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
+OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
 
 # Runtime support functions don't interact well with LTO (9294679)
 stack_protector.o_CFLAGS_ADD += $(CFLAGS_NOLTO_FLAG)
@@ -64,6 +66,8 @@ COMP_SUBDIRS =
 
 %CFILES
 
+%CXXFILES
+
 %SFILES
 
 %MACHDEP
@@ -83,26 +87,33 @@ 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
-#  in-line assembler expansion filter)
-#
-${OBJS}: ${OBJSDEPS}
-
-LDOBJS = $(OBJS)
-
-$(COMPONENT).filelist: $(LDOBJS)
+OSUnserializeXML.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
+OSUnserialize.cpo_CXXWARNFLAGS_ADD += -Wno-unreachable-code
+
+# 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)
        $(_v)for hib_file in ${HIB_FILES}; \
        do      \
-               $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} ; \
-               mv $${hib_file}__ $${hib_file} ; \
+               $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} || exit 1; \
+               mv $${hib_file}__ $${hib_file} || exit 1; \
        done
        @echo LDFILELIST $(COMPONENT)
-       $(_v)( for obj in ${LDOBJS}; do \
+       $(_v)for obj in ${OBJS}; do     \
                 echo $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
-       done; ) > $(COMPONENT).filelist
+       done > $(COMPONENT).filelist
 
 do_all: $(COMPONENT).filelist