diff options
Diffstat (limited to 'native_client_sdk/src/tools/common.mk')
-rw-r--r-- | native_client_sdk/src/tools/common.mk | 73 |
1 files changed, 44 insertions, 29 deletions
diff --git a/native_client_sdk/src/tools/common.mk b/native_client_sdk/src/tools/common.mk index 387aad8..c3458f6 100644 --- a/native_client_sdk/src/tools/common.mk +++ b/native_client_sdk/src/tools/common.mk @@ -7,7 +7,6 @@ # http://www.gnu.org/software/make/manual/make.html # - # # Toolchain # @@ -33,6 +32,48 @@ OSNAME:=$(shell $(GETOS)) # +# TOOLCHAIN=all recursively calls this Makefile for all VALID_TOOLCHAINS. +# +ifeq ($(TOOLCHAIN),all) + +# Define the default target +all: + +# +# Generate a new MAKE command for each TOOLCHAIN. +# +# Note: We use targets for each toolchain (instead of an explicit recipe) so +# each toolchain can be built in parallel. +# +# $1 = Toolchain Name +# +define TOOLCHAIN_RULE +TOOLCHAIN_TARGETS += $(1)_TARGET +.PHONY: $(1)_TARGET +$(1)_TARGET: + +$(MAKE) TOOLCHAIN=$(1) $(MAKECMDGOALS) +endef + +# +# The target for all versions +# +USABLE_TOOLCHAINS=$(filter $(OSNAME) newlib glibc pnacl,$(VALID_TOOLCHAINS)) + +ifeq ($(NO_HOST_BUILDS),1) +USABLE_TOOLCHAINS:=$(filter-out $(OSNAME),$(USABLE_TOOLCHAINS)) +endif + +# Define the toolchain targets for all usable toolchains via the macro. +$(foreach tool,$(USABLE_TOOLCHAINS),$(eval $(call TOOLCHAIN_RULE,$(tool)))) + +.PHONY: all clean install +all: $(TOOLCHAIN_TARGETS) +clean: $(TOOLCHAIN_TARGETS) +install: $(TOOLCHAIN_TARGETS) + +else # TOOLCHAIN=all + +# # Verify we selected a valid toolchain for this example # ifeq (,$(findstring $(TOOLCHAIN),$(VALID_TOOLCHAINS))) @@ -156,34 +197,6 @@ install: .PHONY: install -# -# Target a toolchain -# -# $1 = Toolchain Name -# -define TOOLCHAIN_RULE -.PHONY: all_$(1) -all_$(1): - +$(MAKE) TOOLCHAIN=$(1) -TOOLCHAIN_LIST+=all_$(1) -endef - - -# -# The target for all versions -# -USABLE_TOOLCHAINS=$(filter $(OSNAME) newlib glibc pnacl,$(VALID_TOOLCHAINS)) - -ifeq ($(NO_HOST_BUILDS),1) -USABLE_TOOLCHAINS:=$(filter-out $(OSNAME),$(USABLE_TOOLCHAINS)) -endif - -$(foreach tool,$(USABLE_TOOLCHAINS),$(eval $(call TOOLCHAIN_RULE,$(tool),$(dep)))) - -.PHONY: all_versions -all_versions: $(TOOLCHAIN_LIST) - - OUTBASE?=. OUTDIR:=$(OUTBASE)/$(TOOLCHAIN)/$(CONFIG) STAMPDIR?=$(OUTDIR) @@ -427,3 +440,5 @@ CHECK_FOR_CHROME: check_for_chrome DEBUG: debug LAUNCH: run RUN: run + +endif # TOOLCHAIN=all |