.: Allow building with arbitrary SDK and ARCHS with make + Xcode
[WebKit-https.git] / Makefile.shared
1 SCRIPTS_PATH ?= ../Tools/Scripts
2
3 SDK = /
4
5 ifneq (,$(findstring iphoneos,$(SDK)))
6         ARCHS = armv7
7 else ifneq (,$(findstring iphonesimulator,$(SDK)))
8         ARCHS = i386
9 else ifneq (,$(findstring macosx,$(SDK)))
10         ARCHS = x86_64
11 else
12         ARCHS = x86_64
13 endif
14
15 ARCH_FLAGS=$(addprefix --arch ,$(ARCHS))
16 DEFAULT_VERBOSITY := $(shell defaults read org.webkit.BuildConfiguration BuildTranscriptVerbosity 2>/dev/null || echo "default")
17 VERBOSITY ?= $(DEFAULT_VERBOSITY)
18
19 ifeq ($(VERBOSITY),default)
20 OUTPUT_FILTER = grep -v setenv
21 else
22 ifeq ($(VERBOSITY),noisy)
23 OUTPUT_FILTER = cat
24 else
25 OUTPUT_FILTER = $(SCRIPTS_PATH)/filter-build-webkit
26 endif
27 endif
28
29 define xcode-options
30          $(shell perl -I$(SCRIPTS_PATH) -Mwebkitdirs -e 'print XcodeOptionString()' -- --sdk $(SDK) $1 $(ARCH_FLAGS) $(ARGS))
31 endef
32
33 all:
34         xcodebuild $(OTHER_OPTIONS) $(call xcode-options,) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]}
35
36 debug d: force
37         $(SCRIPTS_PATH)/set-webkit-configuration --debug
38         xcodebuild $(OTHER_OPTIONS) $(call xcode-options, --configuration Debug) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]}
39
40 release r: force
41         $(SCRIPTS_PATH)/set-webkit-configuration --release
42         xcodebuild $(OTHER_OPTIONS) $(call xcode-options, --configuration Release) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]}
43
44 clean:
45         xcodebuild $(OTHER_OPTIONS) -alltargets clean $(call xcode-options,) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]}
46
47 force: ;