1# -*- mode: makefile;-*- 2# 3# Copyright (C) 1999-2013 Apple Inc. All rights reserved. 4# 5# MakeInc.def contains global definitions for building, 6# linking, and installing files. 7# 8 9# 10# Architecture Configuration options 11# 12SUPPORTED_ARCH_CONFIGS := X86_64 X86_64H 13 14# 15# Kernel Configuration options 16# 17SUPPORTED_KERNEL_CONFIGS = RELEASE DEVELOPMENT DEBUG PROFILE 18 19# 20# Machine Configuration options 21# 22 23SUPPORTED_X86_64_MACHINE_CONFIGS = NONE 24SUPPORTED_X86_64H_MACHINE_CONFIGS = NONE 25 26 27# 28# Platform options 29# 30SUPPORTED_PLATFORMS = MacOSX iPhoneOS iPhoneSimulator iPhoneOSNano iPhoneNanoSimulator 31 32# 33# Setup up *_LC variables during recursive invocations 34# 35 36ifndef CURRENT_ARCH_CONFIG_LC 37 export CURRENT_ARCH_CONFIG_LC := $(shell printf "%s" "$(CURRENT_ARCH_CONFIG)" | $(TR) A-Z a-z) 38endif 39 40ifndef CURRENT_KERNEL_CONFIG_LC 41 export CURRENT_KERNEL_CONFIG_LC := $(shell printf "%s" "$(CURRENT_KERNEL_CONFIG)" | $(TR) A-Z a-z) 42endif 43 44ifndef CURRENT_MACHINE_CONFIG_LC 45 export CURRENT_MACHINE_CONFIG_LC := $(shell printf "%s" "$(CURRENT_MACHINE_CONFIG)" | $(TR) A-Z a-z) 46endif 47 48 49# 50# Component List 51# 52COMPONENT_LIST = osfmk bsd libkern iokit pexpert libsa security 53COMPONENT = $(if $(word 2,$(subst /, ,$(RELATIVE_SOURCE_PATH))),$(word 2,$(subst /, ,$(RELATIVE_SOURCE_PATH))),$(firstword $(subst /, ,$(RELATIVE_SOURCE_PATH)))) 54COMPONENT_IMPORT_LIST = $(filter-out $(COMPONENT),$(COMPONENT_LIST)) 55 56 57# 58# Deployment target flag 59# 60ifeq ($(PLATFORM),MacOSX) 61 DEPLOYMENT_TARGET_FLAGS = -mmacosx-version-min=$(SDKVERSION) 62else ifneq ($(filter iPhoneOS iPhoneOSNano,$(PLATFORM)),) 63 DEPLOYMENT_TARGET_FLAGS = -miphoneos-version-min=$(SDKVERSION) 64else ifneq ($(filter iPhoneSimulator iPhoneNanoSimulator,$(PLATFORM)),) 65 DEPLOYMENT_TARGET_FLAGS = 66else 67 DEPLOYMENT_TARGET_FLAGS = 68endif 69 70 71# 72# Standard defines list 73# 74DEFINES = -DAPPLE -DKERNEL -DKERNEL_PRIVATE -DXNU_KERNEL_PRIVATE \ 75 -DPRIVATE -D__MACHO__=1 -Dvolatile=__volatile $(CONFIG_DEFINES) \ 76 $(SEED_DEFINES) 77 78# 79# Compiler command 80# 81KCC = $(CC) 82KC++ = $(CXX) 83 84# 85# Compiler warning flags 86# 87 88CWARNFLAGS_STD = \ 89 -Wall -Werror -Wno-format-y2k -Wextra -Wstrict-prototypes \ 90 -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual \ 91 -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wchar-subscripts \ 92 -Winline -Wnested-externs -Wredundant-decls -Wextra-tokens \ 93 -Wunreachable-code 94 95# Can be overridden in Makefile.template or Makefile.$arch 96export CWARNFLAGS ?= $(CWARNFLAGS_STD) 97 98define add_perfile_cflags 99$(1)_CWARNFLAGS_ADD += $2 100endef 101 102CXXWARNFLAGS_STD = \ 103 -Wall -Werror -Wno-format-y2k -Wextra -Wpointer-arith -Wreturn-type \ 104 -Wcast-qual -Wwrite-strings -Wswitch -Wcast-align -Wchar-subscripts \ 105 -Wredundant-decls -Wextra-tokens \ 106 -Wunreachable-code 107 108# overloaded-virtual warnings are non-fatal (9000888) 109CXXWARNFLAGS_STD += -Wno-error=overloaded-virtual 110 111# Can be overridden in Makefile.template or Makefile.$arch 112export CXXWARNFLAGS ?= $(CXXWARNFLAGS_STD) 113 114define add_perfile_cxxflags 115$(1)_CXXWARNFLAGS_ADD += $2 116endef 117 118# 119# Default ARCH_FLAGS, for use with compiler/linker/assembler/mig drivers 120 121ARCH_FLAGS_X86_64 = -arch x86_64 122ARCH_FLAGS_X86_64H = -arch x86_64h 123 124 125# 126# Default CFLAGS 127# 128ifdef RC_CFLAGS 129OTHER_CFLAGS = $(subst $(addprefix -arch ,$(RC_ARCHS)),,$(RC_CFLAGS)) 130endif 131 132# 133# Debug info 134# 135DSYMINFODIR = Contents 136DSYMKGMACROSDIR = Contents/Resources 137DSYMLLDBMACROSDIR = Contents/Resources/Python 138DSYMDWARFDIR = Contents/Resources/DWARF 139 140DEBUG_CFLAGS := -gdwarf-2 141BUILD_DSYM := 1 142 143# 144# We must not use -fno-keep-inline-functions, or it will remove the dtrace 145# probes from the kernel. 146# 147CFLAGS_GEN = $(DEBUG_CFLAGS) -nostdinc \ 148 -freorder-blocks -fno-builtin -fno-common \ 149 -fsigned-bitfields $(OTHER_CFLAGS) 150 151CFLAGS_RELEASE = 152CFLAGS_DEVELOPMENT = 153CFLAGS_DEBUG = 154CFLAGS_PROFILE = -pg 155 156CFLAGS_X86_64 = -Dx86_64 -DX86_64 -D__X86_64__ -DLP64 \ 157 -DPAGE_SIZE_FIXED -mkernel -msoft-float 158 159CFLAGS_X86_64H = $(CFLAGS_X86_64) 160 161 162CFLAGS_RELEASEX86_64 = -O2 163CFLAGS_DEVELOPMENTX86_64 = -O2 164# No space optimization for the DEBUG kernel for the benefit of gdb: 165CFLAGS_DEBUGX86_64 = -O0 166CFLAGS_PROFILEX86_64 = -O2 167 168CFLAGS_RELEASEX86_64H = -O2 169CFLAGS_DEVELOPMENTX86_64H = -O2 170# No space optimization for the DEBUG kernel for the benefit of gdb: 171CFLAGS_DEBUGX86_64H = -O0 172CFLAGS_PROFILEX86_64H = -O2 173 174CFLAGS_RELEASEARM = -O2 175CFLAGS_DEVELOPMENTARM = -O2 176CFLAGS_DEBUGARM = -O0 177CFLAGS_PROFILEARM = -O2 178 179 180CFLAGS = $(CFLAGS_GEN) \ 181 $($(addsuffix $(CURRENT_MACHINE_CONFIG),MACHINE_FLAGS_$(CURRENT_ARCH_CONFIG)_)) \ 182 $($(addsuffix $(CURRENT_ARCH_CONFIG),ARCH_FLAGS_)) \ 183 $($(addsuffix $(CURRENT_ARCH_CONFIG),CFLAGS_)) \ 184 $($(addsuffix $(CURRENT_KERNEL_CONFIG),CFLAGS_)) \ 185 $($(addsuffix $(CURRENT_ARCH_CONFIG), $(addsuffix $(CURRENT_KERNEL_CONFIG),CFLAGS_))) \ 186 $(DEPLOYMENT_TARGET_FLAGS) \ 187 $(DEFINES) 188 189# 190# Default C++ flags 191# 192 193OTHER_CXXFLAGS = 194 195CXXFLAGS_GEN = -fapple-kext $(OTHER_CXXFLAGS) 196 197# For the moment, do not use gnu++11 198#CXXFLAGS_ARM = -std=gnu++11 199 200 201CXXFLAGS = $(CXXFLAGS_GEN) \ 202 $($(addsuffix $(CURRENT_ARCH_CONFIG),CXXFLAGS_)) \ 203 $($(addsuffix $(CURRENT_KERNEL_CONFIG),CXXFLAGS_)) 204 205 206# 207# Assembler command 208# 209AS = $(CC) 210S_KCC = $(CC) 211 212# 213# Default SFLAGS 214# 215SFLAGS_GEN = -D__ASSEMBLER__ -DASSEMBLER $(OTHER_CFLAGS) 216 217SFLAGS_RELEASE = 218SFLAGS_DEVELOPMENT = 219SFLAGS_DEBUG = 220SFLAGS_PROFILE = 221 222SFLAGS_X86_64 = $(CFLAGS_X86_64) 223SFLAGS_X86_64H = $(CFLAGS_X86_64H) 224 225SFLAGS = $(SFLAGS_GEN) \ 226 $($(addsuffix $(CURRENT_MACHINE_CONFIG),MACHINE_FLAGS_$(CURRENT_ARCH_CONFIG)_)) \ 227 $($(addsuffix $(CURRENT_ARCH_CONFIG),ARCH_FLAGS_)) \ 228 $($(addsuffix $(CURRENT_ARCH_CONFIG),SFLAGS_)) \ 229 $($(addsuffix $(CURRENT_KERNEL_CONFIG),SFLAGS_)) \ 230 $(DEPLOYMENT_TARGET_FLAGS) \ 231 $(DEFINES) 232 233# 234# Linker command 235# 236LD = $(KC++) -nostdlib 237 238# 239# Default LDFLAGS 240# 241# Availability of DWARF allows DTrace CTF (compressed type format) to be constructed. 242# ctf_insert creates the CTF section. It needs reserved padding in the 243# headers for the load command segment and the CTF section structures. 244# 245LDFLAGS_KERNEL_GEN = \ 246 -nostdlib \ 247 -fapple-kext \ 248 -Wl,-e,__start \ 249 -Wl,-sectalign,__TEXT,__text,0x1000 \ 250 -Wl,-sectalign,__DATA,__common,0x1000 \ 251 -Wl,-sectalign,__DATA,__bss,0x1000 \ 252 -Wl,-sectcreate,__PRELINK_TEXT,__text,/dev/null \ 253 -Wl,-sectcreate,__PRELINK_STATE,__kernel,/dev/null \ 254 -Wl,-sectcreate,__PRELINK_STATE,__kexts,/dev/null \ 255 -Wl,-sectcreate,__PRELINK_INFO,__info,/dev/null \ 256 -Wl,-new_linker \ 257 -Wl,-pagezero_size,0x0 \ 258 -Wl,-version_load_command \ 259 -Wl,-function_starts \ 260 -Wl,-headerpad,152 261 262LDFLAGS_KERNEL_RELEASE = 263LDFLAGS_KERNEL_DEVELOPMENT = 264LDFLAGS_KERNEL_DEBUG = 265LDFLAGS_KERNEL_PROFILE = 266 267# KASLR static slide config: 268ifndef SLIDE 269SLIDE=0x00 270endif 271KERNEL_MIN_ADDRESS = 0xffffff8000000000 272KERNEL_BASE_OFFSET = 0x100000 273KERNEL_STATIC_SLIDE = $(shell printf "0x%016x" \ 274 $$[ $(SLIDE) << 21 ]) 275KERNEL_STATIC_BASE = $(shell printf "0x%016x" \ 276 $$[ $(KERNEL_MIN_ADDRESS) + $(KERNEL_BASE_OFFSET) ]) 277KERNEL_HIB_SECTION_BASE = $(shell printf "0x%016x" \ 278 $$[ $(KERNEL_STATIC_BASE) + $(KERNEL_STATIC_SLIDE) ]) 279KERNEL_TEXT_BASE = $(shell printf "0x%016x" \ 280 $$[ $(KERNEL_HIB_SECTION_BASE) + 0x100000 ]) 281 282LDFLAGS_KERNEL_RELEASEX86_64 = \ 283 -Wl,-pie \ 284 -Wl,-segaddr,__HIB,$(KERNEL_HIB_SECTION_BASE) \ 285 -Wl,-image_base,$(KERNEL_TEXT_BASE) \ 286 -Wl,-seg_page_size,__TEXT,0x200000 \ 287 -Wl,-sectalign,__DATA,__const,0x1000 \ 288 -Wl,-sectalign,__DATA,__sysctl_set,0x1000 \ 289 -Wl,-sectalign,__HIB,__bootPT,0x1000 \ 290 -Wl,-sectalign,__HIB,__desc,0x1000 \ 291 -Wl,-sectalign,__HIB,__data,0x1000 \ 292 -Wl,-sectalign,__HIB,__text,0x1000 \ 293 -Wl,-sectalign,__HIB,__const,0x1000 \ 294 -Wl,-sectalign,__HIB,__bss,0x1000 \ 295 -Wl,-sectalign,__HIB,__common,0x1000 \ 296 $(LDFLAGS_NOSTRIP_FLAG) 297 298# Define KERNEL_BASE_OFFSET so known at compile time: 299CFLAGS_X86_64 += -DKERNEL_BASE_OFFSET=$(KERNEL_BASE_OFFSET) 300CFLAGS_X86_64H += -DKERNEL_BASE_OFFSET=$(KERNEL_BASE_OFFSET) 301 302LDFLAGS_KERNEL_DEBUGX86_64 = $(LDFLAGS_KERNEL_RELEASEX86_64) 303LDFLAGS_KERNEL_DEVELOPMENTX86_64 = $(LDFLAGS_KERNEL_RELEASEX86_64) 304LDFLAGS_KERNEL_PROFILEX86_64 = $(LDFLAGS_KERNEL_RELEASEX86_64) 305 306LDFLAGS_KERNEL_RELEASEX86_64H = $(LDFLAGS_KERNEL_RELEASEX86_64) 307LDFLAGS_KERNEL_DEBUGX86_64H = $(LDFLAGS_KERNEL_RELEASEX86_64H) 308LDFLAGS_KERNEL_DEVELOPMENTX86_64H = $(LDFLAGS_KERNEL_RELEASEX86_64H) 309LDFLAGS_KERNEL_PROFILEX86_64H = $(LDFLAGS_KERNEL_RELEASEX86_64H) 310 311 312LDFLAGS_KERNEL = $(LDFLAGS_KERNEL_GEN) \ 313 $($(addsuffix $(CURRENT_ARCH_CONFIG),ARCH_FLAGS_)) \ 314 $($(addsuffix $(CURRENT_ARCH_CONFIG),LDFLAGS_KERNEL_)) \ 315 $($(addsuffix $(CURRENT_KERNEL_CONFIG),LDFLAGS_KERNEL_)) \ 316 $($(addsuffix $(CURRENT_ARCH_CONFIG), $(addsuffix $(CURRENT_KERNEL_CONFIG),LDFLAGS_KERNEL_))) \ 317 $(DEPLOYMENT_TARGET_FLAGS) 318 319# 320# Default runtime libraries to be linked with the kernel 321# 322LD_KERNEL_LIBS = -lcc_kext 323 324# 325# DTrace support 326# 327ifeq ($(CURRENT_KERNEL_CONFIG),RELEASE) 328ifneq ($(filter ARM%,$(CURRENT_ARCH_CONFIG)),) 329DO_CTFCONVERT = 0 330DO_CTFMERGE = 0 331DO_CTFMACHO = 0 332else 333DO_CTFCONVERT = $(SUPPORTS_CTFCONVERT) 334DO_CTFMERGE = 1 335DO_CTFMACHO = $(NEEDS_CTF_MACHOS) 336endif 337else 338DO_CTFCONVERT = $(SUPPORTS_CTFCONVERT) 339DO_CTFMERGE = 1 340DO_CTFMACHO = $(NEEDS_CTF_MACHOS) 341endif 342 343# 344# Default INCFLAGS 345# 346INCFLAGS_IMPORT = $(patsubst %, -I$(OBJROOT)/EXPORT_HDRS/%, $(COMPONENT_IMPORT_LIST)) 347INCFLAGS_EXTERN = -I$(SRCROOT)/EXTERNAL_HEADERS 348INCFLAGS_GEN = -I$(SRCROOT)/$(COMPONENT) -I$(OBJROOT)/EXPORT_HDRS/$(COMPONENT) 349INCFLAGS_LOCAL = -I. 350 351INCFLAGS = $(INCFLAGS_LOCAL) $(INCFLAGS_GEN) $(INCFLAGS_IMPORT) $(INCFLAGS_EXTERN) $(INCFLAGS_MAKEFILE) 352 353# 354# Default MIGFLAGS 355# 356MIGFLAGS = $(DEFINES) $(INCFLAGS) -novouchers $($(addsuffix $(CURRENT_ARCH_CONFIG),CFLAGS_)) $($(addsuffix $(CURRENT_ARCH_CONFIG),ARCH_FLAGS_)) \ 357 $(DEPLOYMENT_TARGET_FLAGS) 358 359# 360# Support for LLVM Link Time Optimization (LTO) 361# 362# LTO can be explicitly enabled or disabled with BUILD_LTO=1|0 363# and defaults to enabled except for DEBUG kernels 364# 365# CFLAGS_NOLTO_FLAG is needed on a per-file basis (for files 366# that deal poorly with LTO, or files that must be machine 367# code *.o files for xnu to build (i.e, setsegname runs on 368# them). 369# 370# LDFLAGS_NOSTRIP_FLAG is used to support configurations that 371# do not utilize an export list. For these configs to build, 372# we need to prevent the LTO logic from dead stripping them. 373 374LTO_ENABLED_RELEASE = 1 375LTO_ENABLED_DEVELOPMENT = 1 376LTO_ENABLED_DEBUG = 0 377 378ifneq ($(BUILD_LTO),) 379USE_LTO = $(BUILD_LTO) 380else 381USE_LTO = $(LTO_ENABLED_$(CURRENT_KERNEL_CONFIG)) 382endif 383 384ifeq ($(USE_LTO),1) 385CFLAGS_GEN += -flto 386CXXFLAGS_GEN += -flto 387LDFLAGS_KERNEL_GEN += -Wl,-mllvm,-inline-threshold=125 -Wl,-object_path_lto,$(TARGET)/lto.o # -Wl,-mllvm -Wl,-disable-fp-elim 388LDFLAGS_NOSTRIP_FLAG = -rdynamic 389CFLAGS_NOLTO_FLAG = -fno-lto 390SUPPORTS_CTFCONVERT = 0 391NEEDS_CTF_MACHOS = 1 392else 393LDFLAGS_NOSTRIP_FLAG = 394CFLAGS_NOLTO_FLAG = 395SUPPORTS_CTFCONVERT = 1 396NEEDS_CTF_MACHOS = 0 397endif 398 399# 400# Default VPATH 401# 402export VPATH = .:$(SOURCE) 403 404# 405# Macros that control installation of kernel and its header files 406# 407# install flags for header files 408# 409INSTALL_FLAGS = -c -S -m 0444 410DATA_INSTALL_FLAGS = -c -S -m 0644 411EXEC_INSTALL_FLAGS = -c -S -m 0755 412 413# 414# Header file destinations 415# 416ifeq ($(RC_ProjectName),xnu_headers_Sim) 417 include $(MAKEFILEPATH)/../AppleInternal/Makefiles/Makefile.indigo_prefix 418 HEADER_INSTALL_PREFIX = $(INDIGO_PREFIX) 419else 420 HEADER_INSTALL_PREFIX = 421endif 422 423FRAMEDIR = $(HEADER_INSTALL_PREFIX)/System/Library/Frameworks 424 425SINCVERS = B 426SINCFRAME = $(FRAMEDIR)/System.framework 427SINCDIR = $(SINCFRAME)/Versions/$(SINCVERS)/Headers 428SPINCDIR = $(SINCFRAME)/Versions/$(SINCVERS)/PrivateHeaders 429SRESDIR = $(SINCFRAME)/Versions/$(SINCVERS)/Resources 430 431ifndef INCDIR 432 INCDIR = $(HEADER_INSTALL_PREFIX)/usr/include 433endif 434ifndef LCLDIR 435 LCLDIR = $(SPINCDIR) 436endif 437 438KINCVERS = A 439KINCFRAME = $(FRAMEDIR)/Kernel.framework 440KINCDIR = $(KINCFRAME)/Versions/$(KINCVERS)/Headers 441KPINCDIR = $(KINCFRAME)/Versions/$(KINCVERS)/PrivateHeaders 442KRESDIR = $(KINCFRAME)/Versions/$(KINCVERS)/Resources 443 444XNU_PRIVATE_UNIFDEF = -UMACH_KERNEL_PRIVATE -UBSD_KERNEL_PRIVATE -UIOKIT_KERNEL_PRIVATE -ULIBKERN_KERNEL_PRIVATE -ULIBSA_KERNEL_PRIVATE -UPEXPERT_KERNEL_PRIVATE -UXNU_KERNEL_PRIVATE 445 446 447PLATFORM_UNIFDEF = $(foreach x,$(SUPPORTED_PLATFORMS),$(if $(filter $(PLATFORM),$(x)),-DPLATFORM_$(x) $(foreach token,$(PLATFORM_UNIFDEF_BLACKLIST_TOKENS_$(x)),-U$(token)),-UPLATFORM_$(x))) 448 449SPINCFRAME_UNIFDEF = $(PLATFORM_UNIFDEF) $(XNU_PRIVATE_UNIFDEF) $(SEED_DEFINES) -UKERNEL_PRIVATE -UKERNEL -DPRIVATE -U_OPEN_SOURCE_ -U__OPEN_SOURCE__ 450SINCFRAME_UNIFDEF = $(PLATFORM_UNIFDEF) $(XNU_PRIVATE_UNIFDEF) $(SEED_DEFINES) -UKERNEL_PRIVATE -UKERNEL -UPRIVATE -D_OPEN_SOURCE_ -D__OPEN_SOURCE__ 451KPINCFRAME_UNIFDEF = $(PLATFORM_UNIFDEF) $(XNU_PRIVATE_UNIFDEF) $(SEED_DEFINES) -DKERNEL_PRIVATE -DPRIVATE -DKERNEL -U_OPEN_SOURCE_ -U__OPEN_SOURCE__ 452KINCFRAME_UNIFDEF = $(PLATFORM_UNIFDEF) $(XNU_PRIVATE_UNIFDEF) $(SEED_DEFINES) -UKERNEL_PRIVATE -UPRIVATE -DKERNEL -D_OPEN_SOURCE_ -D__OPEN_SOURCE__ 453 454# 455# Compononent Header file destinations 456# 457EXPDIR = EXPORT_HDRS/$(COMPONENT) 458 459# 460# Strip Flags 461# 462STRIP_FLAGS_RELEASE = -S -x 463STRIP_FLAGS_DEVELOPMENT = -S 464STRIP_FLAGS_DEBUG = -S 465STRIP_FLAGS_PROFILE = -S -x 466 467STRIP_FLAGS = $($(addsuffix $(CURRENT_KERNEL_CONFIG),STRIP_FLAGS_)) 468 469# 470# dsymutil flags 471# 472DSYMUTIL_FLAGS_GEN = --minimize 473 474DSYMUTIL_FLAGS_X86_64 = --arch=x86_64 475DSYMUTIL_FLAGS_X86_64H = --arch=x86_64h 476 477DSYMUTIL_FLAGS = $(DSYMUTIL_FLAGS_GEN) \ 478 $($(addsuffix $(CURRENT_ARCH_CONFIG),DSYMUTIL_FLAGS_)) 479 480# 481# Man Page destination 482# 483MANDIR = /usr/share/man 484 485# 486# DEBUG alias location 487# 488DEVELOPER_EXTRAS_DIR = /AppleInternal/CoreOS/xnu_debug 489 490# 491# mach_kernel install location 492# 493INSTALL_KERNEL_DIR = / 494 495# 496# new OS X install location 497# 498SYSTEM_LIBRARY_KERNELS_DIR = /System/Library/Kernels 499 500# 501# File names in DSTROOT 502# 503 504ifeq ($(PLATFORM),MacOSX) 505KERNEL_FILE_NAME_PREFIX = kernel 506else 507KERNEL_FILE_NAME_PREFIX = mach 508endif 509 510ifeq ($(CURRENT_MACHINE_CONFIG),NONE) 511ifeq ($(CURRENT_KERNEL_CONFIG),RELEASE) 512KERNEL_FILE_NAME = $(KERNEL_FILE_NAME_PREFIX) 513KERNEL_LLDBBOOTSTRAP_NAME = $(KERNEL_FILE_NAME_PREFIX).py 514else 515KERNEL_FILE_NAME = $(KERNEL_FILE_NAME_PREFIX).$(CURRENT_KERNEL_CONFIG_LC) 516KERNEL_LLDBBOOTSTRAP_NAME = $(KERNEL_FILE_NAME_PREFIX).py 517endif 518else 519KERNEL_FILE_NAME = $(KERNEL_FILE_NAME_PREFIX).$(CURRENT_KERNEL_CONFIG_LC).$(CURRENT_MACHINE_CONFIG_LC) 520KERNEL_LLDBBOOTSTRAP_NAME = $(KERNEL_FILE_NAME_PREFIX)_$(CURRENT_KERNEL_CONFIG_LC).py 521endif 522 523# 524# System.kext pseudo-kext install location 525# 526INSTALL_EXTENSIONS_DIR = /System/Library/Extensions 527 528# 529# KDK location 530# 531INSTALL_KERNEL_SYM_DIR = /System/Library/Extensions/KDK 532 533# 534# Misc. Etc. 535# 536INSTALL_SHARE_MISC_DIR = /usr/share/misc 537INSTALL_DTRACE_SCRIPTS_DIR = /usr/lib/dtrace 538 539# 540# Overrides for XBS build aliases 541# 542ifeq ($(RC_ProjectName),xnu_debug) 543INSTALL_KERNEL_DIR := $(DEVELOPER_EXTRAS_DIR) 544INSTALL_KERNEL_SYM_DIR := $(DEVELOPER_EXTRAS_DIR) 545INSTALL_KERNEL_SYM_TO_KDK = 1 546INSTALL_XNU_DEBUG_FILES = 1 547else ifneq ($(filter iPhoneOS iPhoneOSNano,$(PLATFORM)),) 548INSTALL_KERNEL_SYM_TO_KDK = 1 549USE_BINARY_PLIST = 1 550else ifneq ($(filter iPhoneSimulator iPhoneNanoSimulator,$(PLATFORM)),) 551USE_BINARY_PLIST = 1 552else ifeq ($(PLATFORM),MacOSX) 553INSTALL_KERNEL_DIR := $(SYSTEM_LIBRARY_KERNELS_DIR) 554INSTALL_KERNEL_SYM_DIR := $(SYSTEM_LIBRARY_KERNELS_DIR) 555INSTALL_KERNEL_SYM_TO_KDK = $(if $(filter YES,$(DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT)),1,0) 556endif 557 558# vim: set ft=make: 559