summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile114
-rw-r--r--scripts/main.mk58
2 files changed, 65 insertions, 107 deletions
diff --git a/Makefile b/Makefile
index 537c840fce..25b8ef233c 100644
--- a/Makefile
+++ b/Makefile
@@ -198,80 +198,96 @@ test-node: node
#### Qt targets #####################################################
-.PHONY: qt-lib
-qt-lib:
- $(RUN) PLATFORM=qt Makefile/qt-lib
+QT_OUTPUT_PATH = build/qt-$(HOST_PLATFORM)-$(shell uname -m)
+QT_MAKEFILE = $(QT_OUTPUT_PATH)/Makefile
-.PHONY: qt-app
-qt-app:
- $(RUN) PLATFORM=qt Makefile/qt-app
+# Cross compilation support
+QT_ENV = $(shell MASON_PLATFORM_VERSION=$(shell uname -m) ./platform/qt/scripts/toolchain.sh)
-.PHONY: run-qt-app
-run-qt-app: qt-app
- $(RUN) PLATFORM=qt run-qt-app
+$(QT_OUTPUT_PATH)/config.gypi: platform/qt/scripts/configure.sh .mason configure
+ $(QT_ENV) ./configure $< $@ linux $(shell uname -m)
+
+$(QT_MAKEFILE): $(QT_OUTPUT_PATH)/config.gypi
+ $(QT_ENV) deps/run_gyp platform/qt/platform.gyp -I$< -Dcoverage=$(ENABLE_COVERAGE) \
+ -Goutput_dir=. --depth=. --generator-output=$(QT_OUTPUT_PATH) -f make
+
+qt-lib: $(QT_MAKEFILE)
+ $(QT_ENV) $(MAKE) -j$(JOBS) -C $(QT_OUTPUT_PATH) qt-lib
+
+qt-app: $(QT_MAKEFILE)
+ $(QT_ENV) $(MAKE) -j$(JOBS) -C $(QT_OUTPUT_PATH) qt-app
+
+qt-qml-app: $(QT_MAKEFILE)
+ $(QT_ENV) $(MAKE) -j$(JOBS) -C $(QT_OUTPUT_PATH) qt-qml-app
-.PHONY: qt-qml-app
-qt-qml-app:
- $(RUN) PLATFORM=qt Makefile/qt-qml-app
+test-qt: $(QT_MAKEFILE) node_modules/express
+ $(QT_ENV) $(MAKE) -j$(JOBS) -C $(QT_OUTPUT_PATH) test
+ $(GDB) $(QT_OUTPUT_PATH)/$(BUILDTYPE)/test --gtest_catch_exceptions=0 --gtest_filter=*
+
+run-qt-app: qt-app
+ cd $(QT_OUTPUT_PATH)/$(BUILDTYPE) && ./qmapboxgl
-.PHONY: run-qt-qml-app
run-qt-qml-app: qt-qml-app
- $(RUN) PLATFORM=qt run-qt-qml-app
+ cd $(QT_OUTPUT_PATH)/$(BUILDTYPE) && ./qquickmapboxgl
-.PHONY: test-qt
-test-qt: node_modules/express
- $(RUN) PLATFORM=qt test-*
+#### Linux targets #####################################################
-#### Miscellaneous targets #####################################################
+LINUX_OUTPUT_PATH = build/linux-$(shell uname -m)
+LINUX_MAKEFILE = $(LINUX_OUTPUT_PATH)/Makefile
+
+$(LINUX_OUTPUT_PATH)/config.gypi: platform/linux/scripts/configure.sh .mason configure
+ ./configure $< $@ linux $(shell uname -m)
+
+$(LINUX_MAKEFILE): $(LINUX_OUTPUT_PATH)/config.gypi
+ deps/run_gyp platform/linux/platform.gyp -I$< -Dcoverage=$(ENABLE_COVERAGE) \
+ -Goutput_dir=. --depth=. --generator-output=$(LINUX_OUTPUT_PATH) -f make
-.PHONY: linux
linux: glfw-app render offline
-.PHONY: test-linux
test-linux: test-*
-.PHONY: glfw-app
-glfw-app:
- $(RUN) Makefile/glfw-app
+render: $(LINUX_MAKEFILE)
+ $(MAKE) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) mbgl-render
+
+offline: $(LINUX_MAKEFILE)
+ $(MAKE) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) mbgl-offline
+
+glfw-app: $(LINUX_MAKEFILE)
+ $(MAKE) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) glfw-app
+
+test: $(LINUX_MAKEFILE)
+ $(MAKE) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) test
-.PHONY: run-glfw-app
run-glfw-app: glfw-app
- $(RUN) run-glfw-app
+ cd $(LINUX_OUTPUT_PATH)/$(BUILDTYPE) && ./mapbox-glfw
-.PHONY: run-valgrind-glfw-app
run-valgrind-glfw-app: glfw-app
- $(RUN) run-valgrind-glfw-app
+ cd $(LINUX_OUTPUT_PATH)/$(BUILDTYPE) && valgrind --leak-check=full --suppressions=../../../scripts/valgrind.sup ./mapbox-glfw
-.PHONY: test
-test:
- $(RUN) Makefile/test
+ifneq (,$(shell which gdb))
+ GDB = gdb -batch -return-child-result -ex 'set print thread-events off' -ex 'run' -ex 'thread apply all bt' --args
+endif
-test-%: node_modules/express
- $(RUN) test-$*
+test-%: node_modules/express test
+ $(GDB) $(LINUX_OUTPUT_PATH)/$(BUILDTYPE)/test --gtest_catch_exceptions=0 --gtest_filter=$*
node_modules/express:
npm install express@4.11.1
-.PHONY: check
-check:
- $(RUN) BUILDTYPE=Debug ENABLE_COVERAGE=1 check
-
-.PHONY: render
-render:
- $(RUN) Makefile/mbgl-render
-
-.PHONY: offline
-offline:
- $(RUN) Makefile/mbgl-offline
+check: test
+ scripts/collect-coverage.sh $(LINUX_OUTPUT_PATH)/$(BUILDTYPE)
# Generates a compilation database with ninja for use in clang tooling
-.PHONY: compdb
-compdb:
- $(RUN) Ninja/compdb
+compdb: $(LINUX_OUTPUT_PATH)/config.gypi
+ deps/run_gyp platform/linux/platform.gyp $(GYP_FLAGS) -f ninja
+ deps/ninja/ninja-linux -C $(LINUX_OUTPUT_PATH)/$(BUILDTYPE) \
+ -t compdb cc cc_s cxx objc objcxx > $(LINUX_OUTPUT_PATH)/$(BUILDTYPE)/compile_commands.json
-.PHONY: tidy
-tidy:
- $(RUN) tidy
+tidy: compdb
+ deps/ninja/ninja-linux -C $(LINUX_OUTPUT_PATH)/$(BUILDTYPE) version shaders
+ scripts/clang-tidy.sh $(LINUX_OUTPUT_PATH)/$(BUILDTYPE)
+
+#### Miscellaneous targets #####################################################
clean:
-find ./deps/gyp -name "*.pyc" -exec rm {} \;
diff --git a/scripts/main.mk b/scripts/main.mk
index dd05e633ab..7f1f02011c 100644
--- a/scripts/main.mk
+++ b/scripts/main.mk
@@ -15,15 +15,6 @@ ifeq ($(PLATFORM),android)
GYP_FLAVOR_SUFFIX = -android
ENV = $(shell MASON_ANDROID_ABI=$(CONFIGURE_SUBPLATFORM) ./platform/android/scripts/toolchain.sh)
-else ifeq ($(PLATFORM),qt)
- CONFIGURE_PLATFORM = $(HOST_PLATFORM)
- CONFIGURE_SUBPLATFORM = $(shell uname -m)
- CONFIGURE_INPUT = platform/qt/scripts/configure.sh
- PLATFORM_OUTPUT = ./build/qt-$(HOST_PLATFORM)-$(CONFIGURE_SUBPLATFORM)
-
- # Cross compilation support
- ENV = $(shell MASON_PLATFORM_VERSION=$(CONFIGURE_SUBPLATFORM) ./platform/qt/scripts/toolchain.sh)
-
else
CONFIGURE_PLATFORM = $(PLATFORM)
CONFIGURE_SUBPLATFORM = $(shell uname -m)
@@ -70,55 +61,6 @@ 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)
-.PHONY: Ninja/__project__
-Ninja/__project__: $(CONFIGURE_OUTPUT)
- @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Recreating project...$(FORMAT_END)\n"
- $(ENV) deps/run_gyp platform/$(PLATFORM)/platform.gyp $(GYP_FLAGS) -f ninja
-
-#### Build individual targets ##################################################
-
Makefile/%: Makefile/__project__
@printf "$(TEXT_BOLD)$(COLOR_GREEN)* Building target $*...$(FORMAT_END)\n"
$(ENV) $(MAKE) -j$(JOBS) -C $(PLATFORM_OUTPUT) BUILDTYPE=$(BUILDTYPE) $*
-
-Ninja/%: Ninja/__project__
- @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Building target $*...$(FORMAT_END)\n"
- $(ENV) deps/ninja/ninja-$(PLATFORM) -C $(PLATFORM_OUTPUT)/$(BUILDTYPE) $*
-
-#### Tidy ######################################################################
-
-Ninja/compdb: OUTPUT=$(PLATFORM_OUTPUT)/$(BUILDTYPE)/compile_commands.json
-Ninja/compdb: Ninja/__project__
- @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Writing to $(OUTPUT)$(FORMAT_END)\n"
- $(ENV) deps/ninja/ninja-$(PLATFORM) -C $(PLATFORM_OUTPUT)/$(BUILDTYPE) \
- -t compdb cc cc_s cxx objc objcxx > $(OUTPUT)
-
-tidy: Ninja/compdb
- @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Generating header files...$(FORMAT_END)\n"
- $(ENV) deps/ninja/ninja-$(PLATFORM) -C $(PLATFORM_OUTPUT)/$(BUILDTYPE) version shaders
- @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Running tidy...$(FORMAT_END)\n"
- @./scripts/clang-tidy.sh $(PLATFORM_OUTPUT)/$(BUILDTYPE)
-
-#### Run tests #################################################################
-
-run-glfw-app:
- cd $(PLATFORM_OUTPUT)/$(BUILDTYPE) && ./mapbox-glfw
-
-run-qt-app:
- cd $(PLATFORM_OUTPUT)/$(BUILDTYPE) && ./qmapboxgl
-
-run-qt-qml-app:
- cd $(PLATFORM_OUTPUT)/$(BUILDTYPE) && ./qquickmapboxgl
-
-run-valgrind-glfw-app:
- cd $(PLATFORM_OUTPUT)/$(BUILDTYPE) && valgrind --leak-check=full --suppressions=../../../scripts/valgrind.sup ./mapbox-glfw
-
-ifneq (,$(shell which gdb))
- GDB = gdb -batch -return-child-result -ex 'set print thread-events off' -ex 'run' -ex 'thread apply all bt' --args
-endif
-
-test-%: Makefile/test
- $(GDB) $(PLATFORM_OUTPUT)/$(BUILDTYPE)/test --gtest_catch_exceptions=0 --gtest_filter=$*
-
-check: Makefile/test
- ./scripts/collect-coverage.sh $(PLATFORM_OUTPUT)/$(BUILDTYPE)