[build] Inline main.mk Android targets into Makefile

This commit is contained in:
John Firebaugh
2016-05-23 21:33:17 -07:00
parent d5840beb47
commit 1f8de2be5c
3 changed files with 22 additions and 83 deletions

View File

@@ -24,8 +24,6 @@ else
.mason: ;
endif
RUN = +$(MAKE) -f scripts/main.mk
default:
@printf "You must specify a valid target\n"
@@ -146,27 +144,34 @@ idocument:
#### Android targets #####################################################
# Builds a particular android architecture.
android-lib-%:
$(RUN) PLATFORM=android SUBPLATFORM=$* Makefile/all
ANDROID_ENV = platform/android/scripts/toolchain.sh
ANDROID_ABIS = arm-v5 arm-v7 arm-v8 x86 x86-64 mips
# Builds the default Android library
.PHONY: android-lib
android-lib: android-lib-arm-v7
define ANDROID_RULES
build/android-$1/config.gypi: platform/android/scripts/configure.sh .mason configure
$$(shell $(ANDROID_ENV) $1) ./configure $$< $$@ android $1
# Builds the selected/default Android library
.PHONY: android
android: android-lib
build/android-$1/Makefile: build/android-$1/config.gypi
$$(shell $(ANDROID_ENV) $1) deps/run_gyp platform/android/platform.gyp -I$$< \
-Dcoverage= -Goutput_dir=. --depth=. --generator-output=build/android-$1 -f make-android
android-lib-$1: build/android-$1/Makefile
$$(shell $(ANDROID_ENV) $1) $(MAKE) -j$(JOBS) -C build/android-$1 all
apackage: android-lib-$1
endef
$(foreach abi,$(ANDROID_ABIS),$(eval $(call ANDROID_RULES,$(abi))))
android: android-lib-arm-v7
cd platform/android && ./gradlew --parallel --max-workers=$(JOBS) assemble$(BUILDTYPE)
# Builds all android architectures for distribution.
.PHONY: apackage
apackage: android-lib-arm-v5 android-lib-arm-v7 android-lib-arm-v8 android-lib-x86 android-lib-x86-64 android-lib-mips
cd platform/android && ./gradlew --parallel-threads=$(JOBS) assemble$(BUILDTYPE)
test-android:
cd platform/android && ./gradlew testReleaseUnitTest --continue
apackage:
cd platform/android && ./gradlew --parallel-threads=$(JOBS) assemble$(BUILDTYPE)
#### Node targets #####################################################
NODE_PRE_GYP = $(shell npm bin)/node-pre-gyp

View File

@@ -4,7 +4,7 @@ set -e
set -o pipefail
export MASON_PLATFORM=android
export MASON_ANDROID_ABI=${MASON_ANDROID_ABI:-arm-v7}
export MASON_ANDROID_ABI=${1:-arm-v7}
export PATH="`pwd`/.mason:${PATH}"
export MASON_DIR="`pwd`/.mason"

View File

@@ -1,66 +0,0 @@
ifeq ($(shell uname -s), Darwin)
HOST_PLATFORM = osx
else
HOST_PLATFORM = linux
endif
PLATFORM ?= $(HOST_PLATFORM)
ifeq ($(PLATFORM),android)
CONFIGURE_PLATFORM = android
CONFIGURE_SUBPLATFORM = $(firstword $(SUBPLATFORM) arm-v7)
CONFIGURE_INPUT = platform/android/scripts/configure.sh
PLATFORM_OUTPUT = ./build/android-$(CONFIGURE_SUBPLATFORM)
GYP_FLAVOR_SUFFIX = -android
ENV = $(shell MASON_ANDROID_ABI=$(CONFIGURE_SUBPLATFORM) ./platform/android/scripts/toolchain.sh)
else
CONFIGURE_PLATFORM = $(PLATFORM)
CONFIGURE_SUBPLATFORM = $(shell uname -m)
CONFIGURE_INPUT = platform/$(CONFIGURE_PLATFORM)/scripts/configure.sh
PLATFORM_OUTPUT = ./build/$(PLATFORM)-$(CONFIGURE_SUBPLATFORM)
endif
# Text formatting
TEXT_BOLD = \033[1m
COLOR_GREEN = \033[32m
COLOR_CYAN = \033[36m
COLOR_PINK = \033[35m
FORMAT_END = \033[0m
# Never remove intermediate files
.SECONDARY:
#### Dependencies ##############################################################
ifneq (,$(wildcard .git/.))
.mason:
git submodule update --init
else
.mason: ;
endif
CONFIGURE_OUTPUT = $(PLATFORM_OUTPUT)/config.gypi
.NOTPARALLEL: $(CONFIGURE_OUTPUT)
$(CONFIGURE_OUTPUT): $(CONFIGURE_INPUT) .mason configure
@printf "$(TEXT_BOLD)$(COLOR_GREEN)* Running configure...$(FORMAT_END)\n"
$(ENV) ./configure $< $@ $(CONFIGURE_PLATFORM) $(CONFIGURE_SUBPLATFORM)
#### Build files ###############################################################
GYP_FLAGS += -I$(CONFIGURE_OUTPUT)
GYP_FLAGS += -Dcoverage=$(ENABLE_COVERAGE)
GYP_FLAGS += -Dcxx_host=$(CXX_HOST)
GYP_FLAGS += -Goutput_dir=.
GYP_FLAGS += --depth=.
GYP_FLAGS += --generator-output=$(PLATFORM_OUTPUT)
.PHONY: Makefile/__project__
Makefile/__project__: $(CONFIGURE_OUTPUT)
@printf "$(TEXT_BOLD)$(COLOR_GREEN)* Recreating project...$(FORMAT_END)\n"
$(ENV) deps/run_gyp platform/$(PLATFORM)/platform.gyp $(GYP_FLAGS) -f make$(GYP_FLAVOR_SUFFIX)
Makefile/%: Makefile/__project__
@printf "$(TEXT_BOLD)$(COLOR_GREEN)* Building target $*...$(FORMAT_END)\n"
$(ENV) $(MAKE) -j$(JOBS) -C $(PLATFORM_OUTPUT) BUILDTYPE=$(BUILDTYPE) $*