You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
4.3 KiB
Makefile
158 lines
4.3 KiB
Makefile
SCRIPTS_PATH ?= ../Tools/Scripts
|
|
|
|
XCODE_OPTIONS = `perl -I$(SCRIPTS_PATH) -Mwebkitdirs -e 'print XcodeOptionString()' -- $(BUILD_WEBKIT_OPTIONS)` $${COLOR_DIAGNOSTICS_ARG} $(ARGS)
|
|
|
|
ifneq (,$(SDKROOT))
|
|
ifneq (,$(OVERRIDE_SDKROOT))
|
|
ifneq (default,$(OVERRIDE_SDKROOT))
|
|
XCODE_OPTIONS := $(XCODE_OPTIONS) SDKROOT=$(OVERRIDE_SDKROOT)
|
|
endif
|
|
OVERRIDE_SDKROOT =
|
|
else
|
|
XCODE_OPTIONS := $(XCODE_OPTIONS) SDKROOT=$(SDKROOT)
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(ARCHS))
|
|
ifneq (,$(OVERRIDE_ARCHS))
|
|
ifneq (default,$(OVERRIDE_ARCHS))
|
|
XCODE_OPTIONS := $(XCODE_OPTIONS) ARCHS="$(OVERRIDE_ARCHS)"
|
|
XCODE_OPTIONS += ONLY_ACTIVE_ARCH=NO
|
|
endif
|
|
OVERRIDE_ARCHS =
|
|
else
|
|
XCODE_OPTIONS := $(XCODE_OPTIONS) ARCHS="$(ARCHS)"
|
|
XCODE_OPTIONS += ONLY_ACTIVE_ARCH=NO
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(SDK_VARIANT))
|
|
XCODE_OPTIONS += SDK_VARIANT="$(SDK_VARIANT)"
|
|
endif
|
|
|
|
ifeq (, $(findstring WK_USE_CCACHE, $(ARGS)))
|
|
ifneq (, $(shell which ccache))
|
|
XCODE_OPTIONS += WK_USE_CCACHE=YES
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(findstring UseNewBuildSystem,$(ARGS)),)
|
|
CAN_USE_XCBUILD = $(shell perl -I$(SCRIPTS_PATH) -Mwebkitdirs -e 'print canUseXCBuild()')
|
|
ifeq ($(CAN_USE_XCBUILD),1)
|
|
# Temporarily disable default use of XCBuild until issues with it are ironed out.
|
|
#XCODE_OPTIONS += -UseNewBuildSystem=YES
|
|
XCODE_OPTIONS += -UseNewBuildSystem=NO
|
|
else
|
|
XCODE_OPTIONS += -UseNewBuildSystem=NO
|
|
endif
|
|
endif
|
|
|
|
DEFAULT_VERBOSITY := $(shell defaults read org.webkit.BuildConfiguration BuildTranscriptVerbosity 2>/dev/null || echo "default")
|
|
VERBOSITY ?= $(DEFAULT_VERBOSITY)
|
|
|
|
ifeq ($(VERBOSITY),default)
|
|
OUTPUT_FILTER = cat
|
|
XCODE_OPTIONS += -hideShellScriptEnvironment
|
|
else
|
|
ifeq ($(VERBOSITY),noisy)
|
|
OUTPUT_FILTER = cat
|
|
else
|
|
OUTPUT_FILTER = $(SCRIPTS_PATH)/filter-build-webkit
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(ASAN),YES)
|
|
ASAN_OPTION=--asan
|
|
else
|
|
ifeq ($(ASAN),NO)
|
|
ASAN_OPTION=--no-asan
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(TSAN),YES)
|
|
TSAN_OPTION=--tsan
|
|
else
|
|
ifeq ($(TSAN),NO)
|
|
TSAN_OPTION=--no-tsan
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(UBSAN),YES)
|
|
UBSAN_OPTION=--ubsan
|
|
else
|
|
ifeq ($(UBSAN),NO)
|
|
UBSAN_OPTION=--no-ubsan
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(WK_LTO_MODE),full)
|
|
WK_LTO_OPTION=--lto-mode=full
|
|
else ifeq ($(WK_LTO_MODE),thin)
|
|
WK_LTO_OPTION=--lto-mode=thin
|
|
else ifeq ($(WK_LTO_MODE),none)
|
|
WK_LTO_OPTION=--lto-mode=none
|
|
endif
|
|
|
|
export DSYMUTIL_NUM_THREADS = $(shell sysctl -n hw.activecpu)
|
|
|
|
# Run xcodebuild with the same PATH with which the Xcode IDE runs, to mitigate unnecessary rebuilds due to PATH differences.
|
|
# See <rdar://problem/16466196>.
|
|
export PATH = $(shell getconf PATH)
|
|
|
|
|
|
define set_webkit_configuration
|
|
$(SCRIPTS_PATH)/set-webkit-configuration $1 $(ASAN_OPTION) $(TSAN_OPTION) $(UBSAN_OPTION) $(WK_LTO_OPTION)
|
|
endef
|
|
|
|
define invoke_xcode
|
|
( \
|
|
[[ -t 1 ]] && COLOR_DIAGNOSTICS_ARG="COLOR_DIAGNOSTICS=YES"; \
|
|
echo; \
|
|
echo "===== BUILDING $$(basename "$$(pwd)") ====="; \
|
|
echo; \
|
|
$1 xcodebuild $2 $(OTHER_OPTIONS) $(XCODE_TARGET) $(XCODE_OPTIONS) $3 | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]} \
|
|
)
|
|
endef
|
|
|
|
all:
|
|
ifneq (,$(strip $(ASAN_OPTION) $(TSAN_OPTION) $(UBSAN_OPTION) $(WK_LTO_OPTION)))
|
|
@$(call set_webkit_configuration,)
|
|
endif
|
|
@$(call invoke_xcode,,,GCC_PREPROCESSOR_DEFINITIONS='$(GCC_PREPROCESSOR_ADDITIONS) $$(inherited)')
|
|
|
|
debug d: force
|
|
@$(call set_webkit_configuration,--debug)
|
|
@$(call invoke_xcode,,,GCC_PREPROCESSOR_DEFINITIONS='$(GCC_PREPROCESSOR_ADDITIONS) $$(inherited)')
|
|
|
|
release r: force
|
|
@$(call set_webkit_configuration,--release)
|
|
@$(call invoke_xcode,,,GCC_PREPROCESSOR_DEFINITIONS='$(GCC_PREPROCESSOR_ADDITIONS) $$(inherited)')
|
|
|
|
release+assert ra: force
|
|
@$(call set_webkit_configuration,--release)
|
|
@$(call invoke_xcode,,,GCC_PREPROCESSOR_DEFINITIONS='$(GCC_PREPROCESSOR_ADDITIONS) ASSERT_ENABLED=1 $$(inherited)')
|
|
|
|
testing t: force
|
|
@$(call set_webkit_configuration,--debug --force-optimization-level=O3)
|
|
@$(call invoke_xcode,,,GCC_PREPROCESSOR_DEFINITIONS='$(GCC_PREPROCESSOR_ADDITIONS) $$(inherited)')
|
|
|
|
analyze:
|
|
@$(call set_webkit_configuration,--debug)
|
|
@$(call invoke_xcode,$(PATH_TO_SCAN_BUILD),analyze,GCC_PREPROCESSOR_DEFINITIONS='$(GCC_PREPROCESSOR_ADDITIONS) $$(inherited)')
|
|
|
|
clean:
|
|
ifndef XCODE_TARGET
|
|
@$(call invoke_xcode,,,-alltargets clean)
|
|
else
|
|
@$(call invoke_xcode,,,clean)
|
|
endif
|
|
|
|
installsrc:
|
|
ifndef XCODE_TARGET
|
|
@$(call invoke_xcode,,,-alltargets installsrc SRCROOT="$(SRCROOT)$(PATH_FROM_ROOT)")
|
|
else
|
|
@$(call invoke_xcode,,,installsrc SRCROOT="$(SRCROOT)$(PATH_FROM_ROOT)")
|
|
endif
|
|
|
|
force: ;
|