| Index: Makefile
|
| diff --git a/Makefile b/Makefile
|
| index 88e338ae383863f68534ce5bfbfae42e07ad4b20..6b467ab317bc2b6c05e2140cf68c10585469bdcf 100644
|
| --- a/Makefile
|
| +++ b/Makefile
|
| @@ -36,6 +36,7 @@ TESTFLAGS ?=
|
| ANDROID_NDK_ROOT ?=
|
| ANDROID_TOOLCHAIN ?=
|
| ANDROID_V8 ?= /data/local/v8
|
| +NACL_SDK_ROOT ?=
|
|
|
| # Special build flags. Use them like this: "make library=shared"
|
|
|
| @@ -140,6 +141,7 @@ endif
|
| # - "native": current host's architecture, release mode
|
| # - any of the above with .check appended, e.g. "ia32.release.check"
|
| # - "android": cross-compile for Android/ARM
|
| +# - "nacl" : cross-compile for Native Client (ia32 and x64)
|
| # - default (no target specified): build all DEFAULT_ARCHES and MODES
|
| # - "check": build all targets and run all tests
|
| # - "<arch>.clean" for any <arch> in ARCHES
|
| @@ -153,6 +155,7 @@ ARCHES = ia32 x64 arm mipsel
|
| DEFAULT_ARCHES = ia32 x64 arm
|
| MODES = release debug
|
| ANDROID_ARCHES = android_ia32 android_arm android_mipsel
|
| +NACL_ARCHES = nacl_ia32 nacl_x64
|
|
|
| # List of files that trigger Makefile regeneration:
|
| GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \
|
| @@ -167,9 +170,12 @@ endif
|
| BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES)))
|
| ANDROID_BUILDS = $(foreach mode,$(MODES), \
|
| $(addsuffix .$(mode),$(ANDROID_ARCHES)))
|
| +NACL_BUILDS = $(foreach mode,$(MODES), \
|
| + $(addsuffix .$(mode),$(NACL_ARCHES)))
|
| # Generates corresponding test targets, e.g. "ia32.release.check".
|
| CHECKS = $(addsuffix .check,$(BUILDS))
|
| ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS))
|
| +NACL_CHECKS = $(addsuffix .check,$(NACL_BUILDS))
|
| # File where previously used GYPFLAGS are stored.
|
| ENVFILE = $(OUTDIR)/environment
|
|
|
| @@ -177,7 +183,9 @@ ENVFILE = $(OUTDIR)/environment
|
| $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \
|
| $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \
|
| $(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) \
|
| - must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN
|
| + must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN \
|
| + $(NACL_ARCHES) $(NACL_BUILDS) $(NACL_CHECKS) \
|
| + must-set-NACL_SDK_ROOT
|
|
|
| # Target definitions. "all" is the default.
|
| all: $(MODES)
|
| @@ -221,6 +229,16 @@ $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) build/android.gypi \
|
| OUTDIR="$(OUTDIR)" \
|
| GYPFLAGS="$(GYPFLAGS)"
|
|
|
| +$(NACL_ARCHES): $(addprefix $$@.,$(MODES))
|
| +
|
| +$(NACL_BUILDS): $(GYPFILES) $(ENVFILE) \
|
| + Makefile.nacl must-set-NACL_SDK_ROOT
|
| + @$(MAKE) -f Makefile.nacl $@ \
|
| + ARCH="$(basename $@)" \
|
| + MODE="$(subst .,,$(suffix $@))" \
|
| + OUTDIR="$(OUTDIR)" \
|
| + GYPFLAGS="$(GYPFLAGS)"
|
| +
|
| # Test targets.
|
| check: all
|
| @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
|
| @@ -252,12 +270,21 @@ $(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync
|
| $(addsuffix .check, $(ANDROID_ARCHES)): \
|
| $(addprefix $$(basename $$@).,$(MODES)).check
|
|
|
| +$(addsuffix .check, $(NACL_BUILDS)): $$(basename $$@)
|
| + @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
|
| + --arch-and-mode=$(basename $@) \
|
| + --timeout=600 --nopresubmit \
|
| + --command-prefix="tools/nacl-run.py"
|
| +
|
| +$(addsuffix .check, $(NACL_ARCHES)): \
|
| + $(addprefix $$(basename $$@).,$(MODES)).check
|
| +
|
| native.check: native
|
| @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \
|
| --arch-and-mode=. $(TESTFLAGS)
|
|
|
| # Clean targets. You can clean each architecture individually, or everything.
|
| -$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)):
|
| +$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)):
|
| rm -f $(OUTDIR)/Makefile.$(basename $@)
|
| rm -rf $(OUTDIR)/$(basename $@).release
|
| rm -rf $(OUTDIR)/$(basename $@).debug
|
| @@ -268,7 +295,7 @@ native.clean:
|
| rm -rf $(OUTDIR)/native
|
| find $(OUTDIR) -regex '.*\(host\|target\).native\.mk' -delete
|
|
|
| -clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)) native.clean
|
| +clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.clean
|
|
|
| # GYP file generation targets.
|
| OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES))
|
| @@ -291,6 +318,18 @@ ifndef ANDROID_TOOLCHAIN
|
| endif
|
| endif
|
|
|
| +# Note that NACL_SDK_ROOT must be set to point to an appropriate
|
| +# Native Client SDK before using this makefile. You can download
|
| +# an SDK here:
|
| +# https://developers.google.com/native-client/sdk/download
|
| +# The path indicated by NACL_SDK_ROOT will typically end with
|
| +# a folder for a pepper version such as "pepper_25" that should
|
| +# have "tools" and "toolchain" subdirectories.
|
| +must-set-NACL_SDK_ROOT:
|
| +ifndef NACL_SDK_ROOT
|
| + $(error NACL_SDK_ROOT must be set)
|
| +endif
|
| +
|
| # Replaces the old with the new environment file if they're different, which
|
| # will trigger GYP to regenerate Makefiles.
|
| $(ENVFILE): $(ENVFILE).new
|
|
|