1*a1e26a70SApple OSS Distributions# 2*a1e26a70SApple OSS Distributions# Copyright (C) 1999-2020 Apple Inc. All rights reserved. 3*a1e26a70SApple OSS Distributions# 4*a1e26a70SApple OSS Distributionsifndef VERSDIR 5*a1e26a70SApple OSS Distributionsexport VERSDIR := $(shell /bin/pwd) 6*a1e26a70SApple OSS Distributionsendif 7*a1e26a70SApple OSS Distributions 8*a1e26a70SApple OSS Distributionsifndef SRCROOT 9*a1e26a70SApple OSS Distributionsexport SRCROOT := $(shell /bin/pwd) 10*a1e26a70SApple OSS Distributionsendif 11*a1e26a70SApple OSS Distributionsifndef OBJROOT 12*a1e26a70SApple OSS Distributionsexport OBJROOT = $(SRCROOT)/BUILD/obj 13*a1e26a70SApple OSS Distributionsendif 14*a1e26a70SApple OSS Distributionsifndef DSTROOT 15*a1e26a70SApple OSS Distributionsexport DSTROOT = $(SRCROOT)/BUILD/dst 16*a1e26a70SApple OSS Distributionsendif 17*a1e26a70SApple OSS Distributionsifndef SYMROOT 18*a1e26a70SApple OSS Distributionsexport SYMROOT = $(SRCROOT)/BUILD/sym 19*a1e26a70SApple OSS Distributionsendif 20*a1e26a70SApple OSS Distributionsifndef MallocNanoZone 21*a1e26a70SApple OSS Distributionsexport MallocNanoZone := 1 22*a1e26a70SApple OSS Distributionsendif 23*a1e26a70SApple OSS Distributions 24*a1e26a70SApple OSS Distributions# Avoid make default rules, make becomes faster 25*a1e26a70SApple OSS DistributionsMAKEFLAGS+=r 26*a1e26a70SApple OSS Distributions 27*a1e26a70SApple OSS Distributionsexport MakeInc_top=${VERSDIR}/makedefs/MakeInc.top 28*a1e26a70SApple OSS Distributionsexport MakeInc_kernel=${VERSDIR}/makedefs/MakeInc.kernel 29*a1e26a70SApple OSS Distributionsexport MakeInc_cmd=${VERSDIR}/makedefs/MakeInc.cmd 30*a1e26a70SApple OSS Distributionsexport MakeInc_def=${VERSDIR}/makedefs/MakeInc.def 31*a1e26a70SApple OSS Distributionsexport MakeInc_rule=${VERSDIR}/makedefs/MakeInc.rule 32*a1e26a70SApple OSS Distributionsexport MakeInc_dir=${VERSDIR}/makedefs/MakeInc.dir 33*a1e26a70SApple OSS Distributions 34*a1e26a70SApple OSS Distributions.DEFAULT_GOAL := default 35*a1e26a70SApple OSS Distributions 36*a1e26a70SApple OSS Distributionsexport PATCH_PREFIX ?= change-under-test_ 37*a1e26a70SApple OSS Distributionsexport PATCH_GLOB ?= $(PATCH_PREFIX)*.diff 38*a1e26a70SApple OSS Distributions 39*a1e26a70SApple OSS Distributions 40*a1e26a70SApple OSS Distributionsskip: 41*a1e26a70SApple OSS Distributions @echo "Skipping $(RC_ProjectName)" 42*a1e26a70SApple OSS Distributions 43*a1e26a70SApple OSS Distributions.PHONY: skip 44*a1e26a70SApple OSS Distributions 45*a1e26a70SApple OSS Distributions# 46*a1e26a70SApple OSS Distributions# Dispatch non-xnu build aliases to their own build 47*a1e26a70SApple OSS Distributions# systems. All xnu variants start with MakeInc_top. 48*a1e26a70SApple OSS Distributions# 49*a1e26a70SApple OSS Distributions 50*a1e26a70SApple OSS Distributionsifneq ($(findstring Libsyscall,$(RC_ProjectName)),) 51*a1e26a70SApple OSS Distributions 52*a1e26a70SApple OSS Distributionsinclude $(MakeInc_cmd) 53*a1e26a70SApple OSS Distributionsinclude $(MakeInc_def) 54*a1e26a70SApple OSS Distributionsinclude $(MakeInc_rule) 55*a1e26a70SApple OSS Distributions 56*a1e26a70SApple OSS Distributionsifeq ($(RC_ProjectName),Libsyscall_headers_Sim) 57*a1e26a70SApple OSS DistributionsTARGET=-target Libsyscall_headers_Sim 58*a1e26a70SApple OSS Distributionsendif 59*a1e26a70SApple OSS Distributions 60*a1e26a70SApple OSS Distributionsifeq ($(RC_ProjectName),Libsyscall_driverkit) 61*a1e26a70SApple OSS DistributionsTARGET=-target Libsyscall_driverkit 62*a1e26a70SApple OSS Distributionsendif 63*a1e26a70SApple OSS Distributions 64*a1e26a70SApple OSS Distributions# default to OS X 65*a1e26a70SApple OSS DistributionsSDKROOT ?= macosx.internal 66*a1e26a70SApple OSS Distributions 67*a1e26a70SApple OSS Distributionsdefault: install 68*a1e26a70SApple OSS Distributions 69*a1e26a70SApple OSS DistributionsLibsyscall_driverkit: install 70*a1e26a70SApple OSS Distributions 71*a1e26a70SApple OSS Distributions.PHONY: Libsyscall_driverkit 72*a1e26a70SApple OSS Distributions 73*a1e26a70SApple OSS Distributionsinstallhdrs install:: 74*a1e26a70SApple OSS Distributions cd libsyscall ; \ 75*a1e26a70SApple OSS Distributions xcodebuild $@ $(TARGET) \ 76*a1e26a70SApple OSS Distributions $(MAKEOVERRIDES) \ 77*a1e26a70SApple OSS Distributions "SRCROOT=$(SRCROOT)/libsyscall" \ 78*a1e26a70SApple OSS Distributions "OBJROOT=$(OBJROOT)" \ 79*a1e26a70SApple OSS Distributions "SYMROOT=$(SYMROOT)" \ 80*a1e26a70SApple OSS Distributions "DSTROOT=$(DSTROOT)" \ 81*a1e26a70SApple OSS Distributions "SDKROOT=$(SDKROOT)" 82*a1e26a70SApple OSS Distributions 83*a1e26a70SApple OSS Distributionsinstallhdrs install:: do_unifdef_headers 84*a1e26a70SApple OSS Distributions 85*a1e26a70SApple OSS Distributions$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(INCDIR),$(SINCFRAME_UNIFDEF))) 86*a1e26a70SApple OSS Distributions$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(LCLDIR),$(SPINCFRAME_UNIFDEF))) 87*a1e26a70SApple OSS Distributionsifeq ($(DRIVERKIT),1) 88*a1e26a70SApple OSS Distributions$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(DRIVERKITINCDIR),$(DKINCFRAME_UNIFDEF))) 89*a1e26a70SApple OSS Distributions$(eval $(call LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template,$(DSTROOT)/$(DRIVERKITLCLDIR),$(DKPINCFRAME_UNIFDEF))) 90*a1e26a70SApple OSS Distributionsendif 91*a1e26a70SApple OSS Distributions 92*a1e26a70SApple OSS Distributionsclean: 93*a1e26a70SApple OSS Distributions 94*a1e26a70SApple OSS Distributionsinstallsrc: 95*a1e26a70SApple OSS Distributions pax -rw . $(SRCROOT) 96*a1e26a70SApple OSS Distributions 97*a1e26a70SApple OSS Distributionselse ifneq ($(findstring libkxld_host,$(RC_ProjectName)),) 98*a1e26a70SApple OSS Distributions 99*a1e26a70SApple OSS Distributionsinclude $(MakeInc_cmd) 100*a1e26a70SApple OSS Distributions 101*a1e26a70SApple OSS Distributionsdefault: install 102*a1e26a70SApple OSS Distributions 103*a1e26a70SApple OSS Distributionsinstallhdrs install clean: 104*a1e26a70SApple OSS Distributions $(MAKE) -C libkern/kxld $@ USE_APPLE_PB_SUPPORT=all PRODUCT_TYPE=ARCHIVE 105*a1e26a70SApple OSS Distributions 106*a1e26a70SApple OSS Distributionsinstallsrc: 107*a1e26a70SApple OSS Distributions $(_v)$(MKDIR) $(SRCROOT) 108*a1e26a70SApple OSS Distributions $(_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) 109*a1e26a70SApple OSS Distributions $(_v)$(CHMOD) -R go+rX $(SRCROOT) 110*a1e26a70SApple OSS Distributions 111*a1e26a70SApple OSS Distributionselse ifneq ($(findstring libkxld,$(RC_ProjectName)),) 112*a1e26a70SApple OSS Distributions 113*a1e26a70SApple OSS Distributionsinclude $(MakeInc_cmd) 114*a1e26a70SApple OSS Distributions 115*a1e26a70SApple OSS Distributionsdefault: install 116*a1e26a70SApple OSS Distributions 117*a1e26a70SApple OSS Distributionsinstallhdrs install clean: 118*a1e26a70SApple OSS Distributions $(MAKE) -C libkern/kxld $@ USE_APPLE_PB_SUPPORT=all 119*a1e26a70SApple OSS Distributions 120*a1e26a70SApple OSS Distributionsinstallsrc: 121*a1e26a70SApple OSS Distributions $(_v)$(MKDIR) $(SRCROOT) 122*a1e26a70SApple OSS Distributions $(_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) 123*a1e26a70SApple OSS Distributions $(_v)$(CHMOD) -R go+rX $(SRCROOT) 124*a1e26a70SApple OSS Distributions 125*a1e26a70SApple OSS Distributionselse ifneq ($(findstring libkmod,$(RC_ProjectName)),) 126*a1e26a70SApple OSS Distributions 127*a1e26a70SApple OSS Distributionsdefault: install 128*a1e26a70SApple OSS Distributions 129*a1e26a70SApple OSS Distributionsinstallhdrs install: 130*a1e26a70SApple OSS Distributions cd libkern/kmod ; \ 131*a1e26a70SApple OSS Distributions xcodebuild $@ \ 132*a1e26a70SApple OSS Distributions $(MAKEOVERRIDES) \ 133*a1e26a70SApple OSS Distributions "SRCROOT=$(SRCROOT)/libkern/kmod" \ 134*a1e26a70SApple OSS Distributions "OBJROOT=$(OBJROOT)" \ 135*a1e26a70SApple OSS Distributions "SYMROOT=$(SYMROOT)" \ 136*a1e26a70SApple OSS Distributions "DSTROOT=$(DSTROOT)" \ 137*a1e26a70SApple OSS Distributions "SDKROOT=$(SDKROOT)" 138*a1e26a70SApple OSS Distributions 139*a1e26a70SApple OSS Distributionsclean: 140*a1e26a70SApple OSS Distributions 141*a1e26a70SApple OSS Distributionsinstallsrc: 142*a1e26a70SApple OSS Distributions pax -rw . $(SRCROOT) 143*a1e26a70SApple OSS Distributions 144*a1e26a70SApple OSS Distributionselse ifneq ($(findstring xnu_tests,$(RC_ProjectName)),) 145*a1e26a70SApple OSS Distributions 146*a1e26a70SApple OSS Distributionsexport SYSCTL_HW_PHYSICALCPU := $(shell /usr/sbin/sysctl -n hw.physicalcpu) 147*a1e26a70SApple OSS Distributionsexport SYSCTL_HW_LOGICALCPU := $(shell /usr/sbin/sysctl -n hw.logicalcpu) 148*a1e26a70SApple OSS DistributionsMAKEJOBS := --jobs=$(shell expr $(SYSCTL_HW_LOGICALCPU) + 1) 149*a1e26a70SApple OSS Distributions 150*a1e26a70SApple OSS Distributionsdefault: install 151*a1e26a70SApple OSS Distributions 152*a1e26a70SApple OSS Distributionsinstallhdrs: 153*a1e26a70SApple OSS Distributions 154*a1e26a70SApple OSS Distributionsinstall: xnu_tests 155*a1e26a70SApple OSS Distributions 156*a1e26a70SApple OSS Distributionsclean: 157*a1e26a70SApple OSS Distributions 158*a1e26a70SApple OSS Distributionsinstallsrc: 159*a1e26a70SApple OSS Distributions pax -rw . $(SRCROOT) 160*a1e26a70SApple OSS Distributions 161*a1e26a70SApple OSS Distributionselse ifeq ($(RC_ProjectName),xnu_tests_driverkit) 162*a1e26a70SApple OSS Distributions 163*a1e26a70SApple OSS Distributionsexport SYSCTL_HW_PHYSICALCPU := $(shell /usr/sbin/sysctl -n hw.physicalcpu) 164*a1e26a70SApple OSS Distributionsexport SYSCTL_HW_LOGICALCPU := $(shell /usr/sbin/sysctl -n hw.logicalcpu) 165*a1e26a70SApple OSS DistributionsMAKEJOBS := --jobs=$(shell expr $(SYSCTL_HW_LOGICALCPU) + 1) 166*a1e26a70SApple OSS Distributions 167*a1e26a70SApple OSS Distributionsdefault: install 168*a1e26a70SApple OSS Distributions 169*a1e26a70SApple OSS Distributionsinstallhdrs: 170*a1e26a70SApple OSS Distributions 171*a1e26a70SApple OSS Distributionsinstall: xnu_tests_driverkit 172*a1e26a70SApple OSS Distributions 173*a1e26a70SApple OSS Distributionsclean: 174*a1e26a70SApple OSS Distributions 175*a1e26a70SApple OSS Distributionsinstallsrc: 176*a1e26a70SApple OSS Distributions pax -rw . $(SRCROOT) 177*a1e26a70SApple OSS Distributions 178*a1e26a70SApple OSS Distributionselse # all other RC_ProjectName 179*a1e26a70SApple OSS Distributions 180*a1e26a70SApple OSS Distributionsifndef CURRENT_BUILD_CONFIG 181*a1e26a70SApple OSS Distributions 182*a1e26a70SApple OSS Distributions# avoid having to include MakeInc.cmd 183*a1e26a70SApple OSS Distributionsifeq ($(RC_XBS),YES) 184*a1e26a70SApple OSS Distributions_v = 185*a1e26a70SApple OSS Distributionselse ifeq ($(VERBOSE),YES) 186*a1e26a70SApple OSS Distributions_v = 187*a1e26a70SApple OSS Distributionselse 188*a1e26a70SApple OSS Distributions_v = @ 189*a1e26a70SApple OSS Distributionsendif 190*a1e26a70SApple OSS Distributions 191*a1e26a70SApple OSS Distributions# 192*a1e26a70SApple OSS Distributions# Setup for parallel sub-makes, taking into account physical and logical 193*a1e26a70SApple OSS Distributions# CPUs. If the system does not support SMT, use N+1. 194*a1e26a70SApple OSS Distributions# If MAKEJOBS or -jN is passed on the make line, that takes precedence. 195*a1e26a70SApple OSS Distributions# 196*a1e26a70SApple OSS Distributionsexport SYSCTL_HW_PHYSICALCPU := $(shell /usr/sbin/sysctl -n hw.physicalcpu) 197*a1e26a70SApple OSS Distributionsexport SYSCTL_HW_LOGICALCPU := $(shell /usr/sbin/sysctl -n hw.logicalcpu) 198*a1e26a70SApple OSS DistributionsMAKEJOBS := --jobs=$(shell expr $(SYSCTL_HW_LOGICALCPU) + 1) 199*a1e26a70SApple OSS Distributions 200*a1e26a70SApple OSS DistributionsTOP_TARGETS = \ 201*a1e26a70SApple OSS Distributions clean \ 202*a1e26a70SApple OSS Distributions installsrc \ 203*a1e26a70SApple OSS Distributions exporthdrs \ 204*a1e26a70SApple OSS Distributions all all_desktop all_embedded \ 205*a1e26a70SApple OSS Distributions all_release_embedded all_development_embedded \ 206*a1e26a70SApple OSS Distributions all_release_desktop all_development_desktop \ 207*a1e26a70SApple OSS Distributions installhdrs installhdrs_desktop installhdrs_embedded \ 208*a1e26a70SApple OSS Distributions installhdrs_release_embedded installhdrs_development_embedded \ 209*a1e26a70SApple OSS Distributions installhdrs_release_desktop installhdrs_development_desktop \ 210*a1e26a70SApple OSS Distributions install install_desktop install_embedded \ 211*a1e26a70SApple OSS Distributions install_release_embedded install_development_embedded \ 212*a1e26a70SApple OSS Distributions install_release_desktop install_development_desktop \ 213*a1e26a70SApple OSS Distributions install_kernels \ 214*a1e26a70SApple OSS Distributions cscope tags TAGS \ 215*a1e26a70SApple OSS Distributions help 216*a1e26a70SApple OSS Distributions 217*a1e26a70SApple OSS DistributionsDEFAULT_TARGET = all 218*a1e26a70SApple OSS Distributions 219*a1e26a70SApple OSS Distributions# Targets for internal build system debugging 220*a1e26a70SApple OSS DistributionsTOP_TARGETS += \ 221*a1e26a70SApple OSS Distributions print_exports print_exports_first_build_config \ 222*a1e26a70SApple OSS Distributions setup \ 223*a1e26a70SApple OSS Distributions build \ 224*a1e26a70SApple OSS Distributions config \ 225*a1e26a70SApple OSS Distributions install_textfiles \ 226*a1e26a70SApple OSS Distributions install_config 227*a1e26a70SApple OSS Distributions 228*a1e26a70SApple OSS Distributions.PHONY: $(TOP_TARGETS) 229*a1e26a70SApple OSS Distributions 230*a1e26a70SApple OSS Distributionsdefault: $(DEFAULT_TARGET) 231*a1e26a70SApple OSS Distributions 232*a1e26a70SApple OSS Distributionsifneq ($(REMOTEBUILD),) 233*a1e26a70SApple OSS Distributions$(TOP_TARGETS): 234*a1e26a70SApple OSS Distributions $(_v)$(VERSDIR)/tools/remote_build.sh _REMOTEBUILD_TARGET=$@ _REMOTEBUILD_MAKE=$(MAKE) $(if $(filter --,$(MAKEFLAGS)),-,)$(MAKEFLAGS) 235*a1e26a70SApple OSS Distributionselse 236*a1e26a70SApple OSS Distributions$(TOP_TARGETS): 237*a1e26a70SApple OSS Distributions $(_v)$(MAKE) $(MAKEARGS) -r $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) -f $(MakeInc_top) $@ 238*a1e26a70SApple OSS Distributionsendif 239*a1e26a70SApple OSS Distributions 240*a1e26a70SApple OSS Distributionselse # CURRENT_BUILD_CONFIG 241*a1e26a70SApple OSS Distributions 242*a1e26a70SApple OSS Distributionsinclude $(MakeInc_cmd) 243*a1e26a70SApple OSS Distributionsinclude $(MakeInc_def) 244*a1e26a70SApple OSS Distributions 245*a1e26a70SApple OSS DistributionsALL_SUBDIRS = \ 246*a1e26a70SApple OSS Distributions security \ 247*a1e26a70SApple OSS Distributions bsd \ 248*a1e26a70SApple OSS Distributions iokit \ 249*a1e26a70SApple OSS Distributions osfmk \ 250*a1e26a70SApple OSS Distributions pexpert \ 251*a1e26a70SApple OSS Distributions libkern \ 252*a1e26a70SApple OSS Distributions libsa \ 253*a1e26a70SApple OSS Distributions config \ 254*a1e26a70SApple OSS Distributions san 255*a1e26a70SApple OSS Distributions 256*a1e26a70SApple OSS DistributionsCONFIG_SUBDIRS = config tools san 257*a1e26a70SApple OSS Distributions# Hack to handle san external dependency on config_all allsymbols target 258*a1e26a70SApple OSS Distributionsconfig_all_recurse_into_san: config_all_recurse_into_config 259*a1e26a70SApple OSS Distributions 260*a1e26a70SApple OSS DistributionsINSTINC_SUBDIRS = $(ALL_SUBDIRS) EXTERNAL_HEADERS 261*a1e26a70SApple OSS DistributionsINSTINC_SUBDIRS_X86_64 = $(INSTINC_SUBDIRS) 262*a1e26a70SApple OSS DistributionsINSTINC_SUBDIRS_X86_64H = $(INSTINC_SUBDIRS) 263*a1e26a70SApple OSS DistributionsINSTINC_SUBDIRS_ARM64 = $(INSTINC_SUBDIRS) 264*a1e26a70SApple OSS Distributions 265*a1e26a70SApple OSS DistributionsEXPINC_SUBDIRS = $(ALL_SUBDIRS) 266*a1e26a70SApple OSS DistributionsEXPINC_SUBDIRS_X86_64 = $(EXPINC_SUBDIRS) 267*a1e26a70SApple OSS DistributionsEXPINC_SUBDIRS_X86_64H = $(EXPINC_SUBDIRS) 268*a1e26a70SApple OSS DistributionsEXPINC_SUBDIRS_ARM64 = $(EXPINC_SUBDIRS) 269*a1e26a70SApple OSS Distributions 270*a1e26a70SApple OSS DistributionsSETUP_SUBDIRS = SETUP san bsd 271*a1e26a70SApple OSS Distributions 272*a1e26a70SApple OSS DistributionsCOMP_SUBDIRS_X86_64 = $(ALL_SUBDIRS) 273*a1e26a70SApple OSS DistributionsCOMP_SUBDIRS_X86_64H = $(ALL_SUBDIRS) 274*a1e26a70SApple OSS DistributionsCOMP_SUBDIRS_ARM64 = $(ALL_SUBDIRS) 275*a1e26a70SApple OSS Distributions 276*a1e26a70SApple OSS DistributionsINSTTEXTFILES_SUBDIRS = \ 277*a1e26a70SApple OSS Distributions bsd 278*a1e26a70SApple OSS DistributionsINSTTEXTFILES_SUBDIRS_X86_64 = $(INSTTEXTFILES_SUBDIRS) 279*a1e26a70SApple OSS DistributionsINSTTEXTFILES_SUBDIRS_X86_64H = $(INSTTEXTFILES_SUBDIRS) 280*a1e26a70SApple OSS DistributionsINSTTEXTFILES_SUBDIRS_ARM64 = $(INSTTEXTFILES_SUBDIRS) 281*a1e26a70SApple OSS Distributions 282*a1e26a70SApple OSS Distributionsinclude $(MakeInc_kernel) 283*a1e26a70SApple OSS Distributionsinclude $(MakeInc_rule) 284*a1e26a70SApple OSS Distributionsinclude $(MakeInc_dir) 285*a1e26a70SApple OSS Distributions 286*a1e26a70SApple OSS Distributionsendif # CURRENT_BUILD_CONFIG 287*a1e26a70SApple OSS Distributions 288*a1e26a70SApple OSS Distributionsendif # all other RC_ProjectName 289*a1e26a70SApple OSS Distributions 290*a1e26a70SApple OSS Distributionsinstallapi_libkdd installhdrs_libkdd install_libkdd: 291*a1e26a70SApple OSS Distributions cd libkdd; \ 292*a1e26a70SApple OSS Distributions xcodebuild -target Default $(subst _libkdd,,$@) \ 293*a1e26a70SApple OSS Distributions $(MAKEOVERRIDES) \ 294*a1e26a70SApple OSS Distributions "SRCROOT=$(SRCROOT)/libkdd" \ 295*a1e26a70SApple OSS Distributions "OBJROOT=$(OBJROOT)" \ 296*a1e26a70SApple OSS Distributions "SYMROOT=$(SYMROOT)" \ 297*a1e26a70SApple OSS Distributions "DSTROOT=$(DSTROOT)" \ 298*a1e26a70SApple OSS Distributions "SDKROOT=$(SDKROOT)" 299*a1e26a70SApple OSS Distributions 300*a1e26a70SApple OSS Distributions 301*a1e26a70SApple OSS Distributionsinstallapi_libkdd_tests installhdrs_libkdd_tests install_libkdd_tests: 302*a1e26a70SApple OSS Distributions cd libkdd; \ 303*a1e26a70SApple OSS Distributions xcodebuild -target tests $(subst _libkdd_tests,,$@) \ 304*a1e26a70SApple OSS Distributions $(MAKEOVERRIDES) \ 305*a1e26a70SApple OSS Distributions "SRCROOT=$(SRCROOT)/libkdd" \ 306*a1e26a70SApple OSS Distributions "OBJROOT=$(OBJROOT)" \ 307*a1e26a70SApple OSS Distributions "SYMROOT=$(SYMROOT)" \ 308*a1e26a70SApple OSS Distributions "DSTROOT=$(DSTROOT)" \ 309*a1e26a70SApple OSS Distributions "SDKROOT=$(SDKROOT)" 310*a1e26a70SApple OSS Distributions 311*a1e26a70SApple OSS Distributions 312*a1e26a70SApple OSS Distributionsinstallapi_libkdd_host installhdrs_libkdd_host install_libkdd_host: 313*a1e26a70SApple OSS Distributions cd libkdd; \ 314*a1e26a70SApple OSS Distributions xcodebuild -configuration ReleaseHost -target kdd.framework $(subst _libkdd_host,,$@) \ 315*a1e26a70SApple OSS Distributions $(MAKEOVERRIDES) \ 316*a1e26a70SApple OSS Distributions "SRCROOT=$(SRCROOT)/libkdd" \ 317*a1e26a70SApple OSS Distributions "OBJROOT=$(OBJROOT)" \ 318*a1e26a70SApple OSS Distributions "SYMROOT=$(SYMROOT)" \ 319*a1e26a70SApple OSS Distributions "DSTROOT=$(DSTROOT)" \ 320*a1e26a70SApple OSS Distributions "SDKROOT=$(SDKROOT)" 321*a1e26a70SApple OSS Distributions 322*a1e26a70SApple OSS Distributions 323*a1e26a70SApple OSS Distributions# "xnu_tests" and "testbots" are targets that can be invoked via a standalone 324*a1e26a70SApple OSS Distributions# "make xnu_tests" or via buildit/XBS with the RC_ProjectName=xnu_tests. 325*a1e26a70SApple OSS Distributions# Define the target here in the outermost scope of the initial Makefile 326*a1e26a70SApple OSS Distributions 327*a1e26a70SApple OSS Distributionsxnu_tests: 328*a1e26a70SApple OSS Distributions $(MAKE) -C $(SRCROOT)/tools/tests $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \ 329*a1e26a70SApple OSS Distributions SRCROOT=$(SRCROOT)/tools/tests 330*a1e26a70SApple OSS Distributions $(MAKE) -C $(SRCROOT)/tests $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \ 331*a1e26a70SApple OSS Distributions SRCROOT=$(SRCROOT)/tests 332*a1e26a70SApple OSS Distributions $(MAKE) -C $(SRCROOT)/tools/lldbmacros/tests $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \ 333*a1e26a70SApple OSS Distributions SRCROOT=$(SRCROOT)/tools/lldbmacros 334*a1e26a70SApple OSS Distributions 335*a1e26a70SApple OSS Distributionsxnu_tests_driverkit: 336*a1e26a70SApple OSS Distributions $(MAKE) -C $(SRCROOT)/tests/driverkit $(if $(filter -j,$(MAKEFLAGS)),,$(MAKEJOBS)) \ 337*a1e26a70SApple OSS Distributions SRCROOT=$(SRCROOT)/tests/driverkit 338*a1e26a70SApple OSS Distributions 339*a1e26a70SApple OSS Distributions 340*a1e26a70SApple OSS Distributionsinclude $(MakeInc_cmd) 341*a1e26a70SApple OSS Distributions 342*a1e26a70SApple OSS Distributions# 343*a1e26a70SApple OSS Distributions# The "analyze" target defined below invokes Clang Static Analyzer 344*a1e26a70SApple OSS Distributions# with a predefined set of checks and options for the project. 345*a1e26a70SApple OSS Distributions# 346*a1e26a70SApple OSS Distributions 347*a1e26a70SApple OSS Distributions# By default, analysis results are available in BUILD/StaticAnalyzer. 348*a1e26a70SApple OSS Distributions# Set this variable in your make invocation to use a different directory. 349*a1e26a70SApple OSS Distributions# Note that these results are only deleted when the build directory 350*a1e26a70SApple OSS Distributions# is cleaned. They aren't deleted every time the analyzer is re-run, 351*a1e26a70SApple OSS Distributions# but they are deleted after "make clean". 352*a1e26a70SApple OSS DistributionsSTATIC_ANALYZER_OUTPUT_DIR ?= $(SRCROOT)/BUILD/StaticAnalyzer 353*a1e26a70SApple OSS Distributions 354*a1e26a70SApple OSS Distributions# By default, the default make target is analyzed. You can analyze 355*a1e26a70SApple OSS Distributions# other targets by setting this variable in your make invocation. 356*a1e26a70SApple OSS DistributionsSTATIC_ANALYZER_TARGET ?= 357*a1e26a70SApple OSS Distributions 358*a1e26a70SApple OSS Distributions# You can pass additional flags to scan-build by setting this variable 359*a1e26a70SApple OSS Distributions# in your make invocation. For example, you can enable additional checks. 360*a1e26a70SApple OSS DistributionsSTATIC_ANALYZER_EXTRA_FLAGS ?= 361*a1e26a70SApple OSS Distributions 362*a1e26a70SApple OSS Distributionsanalyze: 363*a1e26a70SApple OSS Distributions# This is where the reports are going to be available. 364*a1e26a70SApple OSS Distributions# Old reports are deleted on make clean only. 365*a1e26a70SApple OSS Distributions $(_v)$(MKDIR) $(STATIC_ANALYZER_OUTPUT_DIR) 366*a1e26a70SApple OSS Distributions 367*a1e26a70SApple OSS Distributions# Recursively build the requested target under scan-build. 368*a1e26a70SApple OSS Distributions# Exclude checks that weren't deemed to be security critical, 369*a1e26a70SApple OSS Distributions# like null pointer dereferences. 370*a1e26a70SApple OSS Distributions $(_v)$(XCRUN) $(SCAN_BUILD) -o $(STATIC_ANALYZER_OUTPUT_DIR) \ 371*a1e26a70SApple OSS Distributions -disable-checker deadcode.DeadStores \ 372*a1e26a70SApple OSS Distributions -disable-checker core.NullDereference \ 373*a1e26a70SApple OSS Distributions -disable-checker core.DivideZero \ 374*a1e26a70SApple OSS Distributions --exclude BUILD \ 375*a1e26a70SApple OSS Distributions $(STATIC_ANALYZER_EXTRA_FLAGS) \ 376*a1e26a70SApple OSS Distributions $(MAKE) $(STATIC_ANALYZER_TARGET) QUIET=1 2>&1 | $(GREP) "^scan-build:" 377*a1e26a70SApple OSS Distributions 378*a1e26a70SApple OSS Distributions.PHONY: analyze 379*a1e26a70SApple OSS Distributions 380*a1e26a70SApple OSS Distributions.PHONY: empty 381*a1e26a70SApple OSS Distributions 382*a1e26a70SApple OSS Distributions# Add an empty target which is useful for bringing up new build aliases 383*a1e26a70SApple OSS Distributions# Aliases can be created with this as their target, then later move to their 384*a1e26a70SApple OSS Distributions# required target in coordination with other aliases 385*a1e26a70SApple OSS Distributionsempty: 386*a1e26a70SApple OSS Distributions $(_v)$(MKDIR) $(DSTROOT)/AppleInternal 387