Loading...
--- xnu/xnu-12377.121.6/Makefile
+++ xnu/xnu-792/Makefile
@@ -1,396 +1,69 @@
-#
-# Copyright (C) 1999-2020 Apple Inc. All rights reserved.
-#
 ifndef VERSDIR
-export VERSDIR := $(shell /bin/pwd)
+export VERSDIR=$(shell /bin/pwd)
+endif
+ifndef SRCROOT
+export SRCROOT=$(shell /bin/pwd)
+endif
+ifndef OBJROOT
+export OBJROOT=$(SRCROOT)/BUILD/obj
+endif
+ifndef DSTROOT
+export DSTROOT=$(SRCROOT)/BUILD/dst
+endif
+ifndef SYMROOT
+export SYMROOT=$(SRCROOT)/BUILD/sym
 endif
 
-ifndef SRCROOT
-export SRCROOT := $(shell /bin/pwd)
-endif
-ifndef OBJROOT
-export OBJROOT = $(SRCROOT)/BUILD/obj
-endif
-ifndef DSTROOT
-export DSTROOT = $(SRCROOT)/BUILD/dst
-endif
-ifndef SYMROOT
-export SYMROOT = $(SRCROOT)/BUILD/sym
-endif
-ifndef MallocNanoZone
-export MallocNanoZone := 1
-endif
-
-# Avoid make default rules, make becomes faster
-MAKEFLAGS+=r
-
-export MakeInc_top=${VERSDIR}/makedefs/MakeInc.top
-export MakeInc_kernel=${VERSDIR}/makedefs/MakeInc.kernel
 export MakeInc_cmd=${VERSDIR}/makedefs/MakeInc.cmd
 export MakeInc_def=${VERSDIR}/makedefs/MakeInc.def
 export MakeInc_rule=${VERSDIR}/makedefs/MakeInc.rule
 export MakeInc_dir=${VERSDIR}/makedefs/MakeInc.dir
 
-.DEFAULT_GOAL := default
-
-export PATCH_PREFIX ?= change-under-test_
-export PATCH_GLOB ?= $(PATCH_PREFIX)*.diff
-
-
-skip:
-	@echo "Skipping $(RC_ProjectName)"
-
-.PHONY: skip
-
-#
-# Dispatch non-xnu build aliases to their own build
-# systems. All xnu variants start with MakeInc_top.
-#
-
-ifneq ($(findstring Libsyscall,$(RC_ProjectName)),)
-
-include $(MakeInc_cmd)
-include $(MakeInc_def)
-include $(MakeInc_rule)
-
-ifeq ($(RC_ProjectName),Libsyscall_headers_Sim)
-TARGET=-target Libsyscall_headers_Sim
-endif
-
-ifeq ($(RC_ProjectName),Libsyscall_driverkit)
-TARGET=-target Libsyscall_driverkit
-endif
-
-# default to OS X
-SDKROOT ?= macosx.internal
-
-default: install
-
-Libsyscall_driverkit: install
-
-.PHONY: Libsyscall_driverkit
-
-installhdrs install::
-	cd libsyscall ; \
-		xcodebuild $@ $(TARGET)	\
-			$(MAKEOVERRIDES)	\
-			"SRCROOT=$(SRCROOT)/libsyscall"					\
-			"OBJROOT=$(OBJROOT)"						\
-			"SYMROOT=$(SYMROOT)"						\
-			"DSTROOT=$(DSTROOT)"						\
-			"SDKROOT=$(SDKROOT)"
-
-installhdrs install:: do_unifdef_headers
-
-$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(INCDIR),$(SINCFRAME_UNIFDEF)))
-$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(LCLDIR),$(SPINCFRAME_UNIFDEF)))
-ifeq ($(DRIVERKIT),1)
-$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(DRIVERKITINCDIR),$(DKINCFRAME_UNIFDEF)))
-$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(DRIVERKITLCLDIR),$(DKPINCFRAME_UNIFDEF)))
-endif
-
-clean:
-
-installsrc:
-	pax -rw . $(SRCROOT)
-
-else ifneq ($(findstring libkxld_host,$(RC_ProjectName)),)
-
-include $(MakeInc_cmd)
-
-default: install
-
-installhdrs install clean:
-	 $(MAKE) -C libkern/kxld $@ USE_APPLE_PB_SUPPORT=all PRODUCT_TYPE=ARCHIVE
-
-installsrc:
-	$(_v)$(MKDIR) $(SRCROOT)
-	$(_v)$(FIND) -x . \! \( \( -name BUILD -o -name .svn -o -name .git -o -name cscope.\* -o -name compile_commands.json -o -name \*~ \) -prune \) -print0 | $(PAX) -rw -p a -d0 $(SRCROOT)
-	$(_v)$(CHMOD) -R go+rX $(SRCROOT)
-
-else ifneq ($(findstring libkxld,$(RC_ProjectName)),)
-
-include $(MakeInc_cmd)
-
-default: install
-
-installhdrs install clean:
-	 $(MAKE) -C libkern/kxld $@ USE_APPLE_PB_SUPPORT=all
-
-installsrc:
-	$(_v)$(MKDIR) $(SRCROOT)
-	$(_v)$(FIND) -x . \! \( \( -name BUILD -o -name .svn -o -name .git -o -name cscope.\* -name compile_commands.json -o -name \*~ \) -prune \) -print0 | $(PAX) -rw -p a -d0 $(SRCROOT)
-	$(_v)$(CHMOD) -R go+rX $(SRCROOT)
-
-else ifneq ($(findstring libkmod,$(RC_ProjectName)),)
-
-default: install
-
-installhdrs install:
-	cd libkern/kmod ; \
-		xcodebuild $@	\
-			$(MAKEOVERRIDES)	\
-			"SRCROOT=$(SRCROOT)/libkern/kmod"				\
-			"OBJROOT=$(OBJROOT)"						\
-			"SYMROOT=$(SYMROOT)"						\
-			"DSTROOT=$(DSTROOT)"						\
-			"SDKROOT=$(SDKROOT)"
-
-clean:
-
-installsrc:
-	pax -rw . $(SRCROOT)
-
-else ifneq ($(findstring xnu_tests,$(RC_ProjectName)),)
-
-export SYSCTL_HW_PHYSICALCPU := $(shell /usr/sbin/sysctl -n hw.physicalcpu)
-export SYSCTL_HW_LOGICALCPU  := $(shell /usr/sbin/sysctl -n hw.logicalcpu)
-MAKEJOBS := --jobs=$(shell expr $(SYSCTL_HW_LOGICALCPU) + 1)
-
-default: install
-
-installhdrs:
-
-install: xnu_tests
-
-clean:
-
-installsrc:
-	pax -rw . $(SRCROOT)
-
-else ifeq ($(RC_ProjectName),xnu_tests_driverkit)
-
-export SYSCTL_HW_PHYSICALCPU := $(shell /usr/sbin/sysctl -n hw.physicalcpu)
-export SYSCTL_HW_LOGICALCPU  := $(shell /usr/sbin/sysctl -n hw.logicalcpu)
-MAKEJOBS := --jobs=$(shell expr $(SYSCTL_HW_LOGICALCPU) + 1)
-
-default: install
-
-installhdrs:
-
-install: xnu_tests_driverkit
-
-clean:
-
-installsrc:
-	pax -rw . $(SRCROOT)
-
-else # all other RC_ProjectName
-
-ifndef CURRENT_BUILD_CONFIG
-
-# avoid having to include MakeInc.cmd
-ifeq ($(RC_XBS),YES)
-_v =
-else ifeq ($(VERBOSE),YES)
-_v =
-else
-_v = @
-endif
-
-#
-# Setup for parallel sub-makes, taking into account physical and logical
-# CPUs. If the system does not support SMT, use N+1.
-# If MAKEJOBS or -jN is passed on the make line, that takes precedence.
-#
-export SYSCTL_HW_PHYSICALCPU := $(shell /usr/sbin/sysctl -n hw.physicalcpu)
-export SYSCTL_HW_LOGICALCPU  := $(shell /usr/sbin/sysctl -n hw.logicalcpu)
-MAKEJOBS := --jobs=$(shell expr $(SYSCTL_HW_LOGICALCPU) + 1)
-
-TOP_TARGETS = \
-	clean \
-	installsrc \
-	exporthdrs \
-	all all_desktop all_embedded \
-	all_release_embedded all_development_embedded \
-	all_release_desktop all_development_desktop \
-	installhdrs installhdrs_desktop installhdrs_embedded \
-	installhdrs_release_embedded installhdrs_development_embedded \
-	installhdrs_release_desktop installhdrs_development_desktop \
-	install install_desktop install_embedded \
-	install_release_embedded install_development_embedded \
-	install_release_desktop install_development_desktop \
-	install_release_embedded_nohdrs install_release_desktop_nohdrs \
-	install_kernels \
-	cscope tags TAGS \
-	help
-
-DEFAULT_TARGET = all
-
-# Targets for internal build system debugging
-TOP_TARGETS += \
-	print_exports print_exports_first_build_config \
-	setup \
-	build \
-	config \
-	install_textfiles \
-	install_config
-
-.PHONY: $(TOP_TARGETS)
-
-default: $(DEFAULT_TARGET)
-
-ifneq ($(REMOTEBUILD),)
-$(TOP_TARGETS):
-	$(_v)$(VERSDIR)/tools/remote_build.sh _REMOTEBUILD_TARGET=$@ _REMOTEBUILD_MAKE=$(MAKE) $(if $(filter --,$(MAKEFLAGS)),-,)$(MAKEFLAGS)
-else
-$(TOP_TARGETS):
-	$(_v)$(MAKE) $(MAKEARGS) -r $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) -f $(MakeInc_top) $@
-endif
-
-else # CURRENT_BUILD_CONFIG
 
 include $(MakeInc_cmd)
 include $(MakeInc_def)
 
 ALL_SUBDIRS = \
-	security \
-	bsd  \
 	iokit \
 	osfmk \
+	bsd  \
 	pexpert \
 	libkern \
-	libsa \
-	config \
-	san
+	libsa
 
-CONFIG_SUBDIRS = config tools san
-# Hack to handle san external dependency on config_all allsymbols target
-config_all_recurse_into_san: config_all_recurse_into_config
+CONFIG_SUBDIRS = config
 
 INSTINC_SUBDIRS = $(ALL_SUBDIRS) EXTERNAL_HEADERS
-INSTINC_SUBDIRS_X86_64 = $(INSTINC_SUBDIRS)
-INSTINC_SUBDIRS_X86_64H = $(INSTINC_SUBDIRS)
-INSTINC_SUBDIRS_ARM64 = $(INSTINC_SUBDIRS)
+
+INSTINC_SUBDIRS_PPC = $(INSTINC_SUBDIRS) EXTERNAL_HEADERS
+
+INSTINC_SUBDIRS_I386 = $(INSTINC_SUBDIRS) EXTERNAL_HEADERS
 
 EXPINC_SUBDIRS = $(ALL_SUBDIRS)
-EXPINC_SUBDIRS_X86_64 = $(EXPINC_SUBDIRS)
-EXPINC_SUBDIRS_X86_64H = $(EXPINC_SUBDIRS)
-EXPINC_SUBDIRS_ARM64 = $(EXPINC_SUBDIRS)
 
-SETUP_SUBDIRS = SETUP san bsd
+EXPINC_SUBDIRS_PPC =  $(EXPINC_SUBDIRS)
 
-COMP_SUBDIRS_X86_64 = $(ALL_SUBDIRS)
-COMP_SUBDIRS_X86_64H = $(ALL_SUBDIRS)
-COMP_SUBDIRS_ARM64 = $(ALL_SUBDIRS)
+EXPINC_SUBDIRS_I386 = $(EXPINC_SUBDIRS)
 
-INSTTEXTFILES_SUBDIRS =	\
+COMP_SUBDIRS = $(ALL_SUBDIRS)
+
+
+INST_SUBDIRS =	\
+	libkern	\
+	libsa   \
+	iokit	\
+	osfmk	\
+	bsd	\
+	config
+
+INSTALL_FILE_LIST= \
+	mach_kernel
+
+INSTALL_FILE_DIR= \
+	/
+
+INSTMAN_SUBDIRS = \
 	bsd
-INSTTEXTFILES_SUBDIRS_X86_64 = $(INSTTEXTFILES_SUBDIRS)
-INSTTEXTFILES_SUBDIRS_X86_64H = $(INSTTEXTFILES_SUBDIRS)
-INSTTEXTFILES_SUBDIRS_ARM64 = $(INSTTEXTFILES_SUBDIRS)
 
-include $(MakeInc_kernel)
 include $(MakeInc_rule)
 include $(MakeInc_dir)
-
-endif # CURRENT_BUILD_CONFIG
-
-endif # all other RC_ProjectName
-
-installapi_libkdd installhdrs_libkdd install_libkdd:
-	cd libkdd; \
-		xcodebuild -target Default $(subst _libkdd,,$@)	\
-			$(MAKEOVERRIDES)	\
-			"SRCROOT=$(SRCROOT)/libkdd"		\
-			"OBJROOT=$(OBJROOT)"			\
-			"SYMROOT=$(SYMROOT)"			\
-			"DSTROOT=$(DSTROOT)"			\
-			"SDKROOT=$(SDKROOT)"
-
-
-installapi_libkdd_tests installhdrs_libkdd_tests install_libkdd_tests:
-	cd libkdd; \
-		xcodebuild -target tests $(subst _libkdd_tests,,$@)	\
-			$(MAKEOVERRIDES)	\
-			"SRCROOT=$(SRCROOT)/libkdd"		\
-			"OBJROOT=$(OBJROOT)"			\
-			"SYMROOT=$(SYMROOT)"			\
-			"DSTROOT=$(DSTROOT)"			\
-			"SDKROOT=$(SDKROOT)"
-
-
-installapi_libkdd_host installhdrs_libkdd_host install_libkdd_host:
-	cd libkdd; \
-		xcodebuild -configuration ReleaseHost -target kdd.framework $(subst _libkdd_host,,$@)	\
-			$(MAKEOVERRIDES)	\
-			"SRCROOT=$(SRCROOT)/libkdd"		\
-			"OBJROOT=$(OBJROOT)"			\
-			"SYMROOT=$(SYMROOT)"			\
-			"DSTROOT=$(DSTROOT)"			\
-			"SDKROOT=$(SDKROOT)"
-
-
-# "xnu_tests" and "testbots" are targets that can be invoked via a standalone
-# "make xnu_tests" or via buildit/XBS with the RC_ProjectName=xnu_tests.
-# Define the target here in the outermost scope of the initial Makefile
-
-xnu_tests:
-	$(MAKE) -C $(SRCROOT)/tools/tests	$(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \
-		SRCROOT=$(SRCROOT)/tools/tests
-	$(MAKE) -C $(SRCROOT)/tests	$(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \
-		SRCROOT=$(SRCROOT)/tests
-	$(MAKE) -C $(SRCROOT)/tools/lldbmacros/tests $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \
-		SRCROOT=$(SRCROOT)/tools/lldbmacros
-
-xnu_tests_driverkit:
-	$(MAKE) -C $(SRCROOT)/tests/driverkit $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \
-		SRCROOT=$(SRCROOT)/tests/driverkit
-
-# Notice when building xnu_unittests target from the main makefile, the executables are
-# created at BUILD/sym, whereas if you run the makefile directly with make -C
-# the executables are created at tests/unit/build/sym
-xnu_unittests:
-	$(MAKE) -C $(SRCROOT)/tests/unit	$(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \
-		SRCROOT=$(SRCROOT)/tests/unit
-	$(MAKE) -C $(SRCROOT)/tests	$(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) sched/install_userspace_unit_tests \
-		SRCROOT=$(SRCROOT)/tests
-
-
-include $(MakeInc_cmd)
-
-#
-# The "analyze" target defined below invokes Clang Static Analyzer
-# with a predefined set of checks and options for the project.
-#
-
-# By default, analysis results are available in BUILD/StaticAnalyzer.
-# Set this variable in your make invocation to use a different directory.
-# Note that these results are only deleted when the build directory
-# is cleaned. They aren't deleted every time the analyzer is re-run,
-# but they are deleted after "make clean".
-STATIC_ANALYZER_OUTPUT_DIR ?= $(SRCROOT)/BUILD/StaticAnalyzer
-
-# By default, the default make target is analyzed. You can analyze
-# other targets by setting this variable in your make invocation.
-STATIC_ANALYZER_TARGET ?=
-
-# You can pass additional flags to scan-build by setting this variable
-# in your make invocation. For example, you can enable additional checks.
-STATIC_ANALYZER_EXTRA_FLAGS ?=
-
-analyze:
-# This is where the reports are going to be available.
-# Old reports are deleted on make clean only.
-	$(_v)$(MKDIR) $(STATIC_ANALYZER_OUTPUT_DIR)
-
-# Recursively build the requested target under scan-build.
-# Exclude checks that weren't deemed to be security critical,
-# like null pointer dereferences.
-	$(_v)$(XCRUN) $(SCAN_BUILD) -o $(STATIC_ANALYZER_OUTPUT_DIR) \
-		-disable-checker deadcode.DeadStores \
-		-disable-checker core.NullDereference \
-		-disable-checker core.DivideZero \
-		--exclude BUILD \
-		$(STATIC_ANALYZER_EXTRA_FLAGS) \
-		$(MAKE) $(STATIC_ANALYZER_TARGET) QUIET=1 2>&1 | $(GREP) "^scan-build:"
-
-.PHONY: analyze
-
-.PHONY: empty
-
-# Add an empty target which is useful for bringing up new build aliases
-# Aliases can be created with this as their target, then later move to their
-# required target in coordination with other aliases
-empty:
-	$(_v)$(MKDIR) $(DSTROOT)/AppleInternal