diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2015-01-29 18:30:46 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2015-02-04 10:49:09 +0100 |
commit | 29baacf3a5bb773d94d08d16b81c3cda45a44eb6 (patch) | |
tree | 1dc3ca456151138ee5e8b7cf88b3afcecc3df1db /Makefile | |
parent | 3d51e116a84ee168975bcee8377e9156f77e2731 (diff) | |
download | qtlocation-mapboxgl-29baacf3a5bb773d94d08d16b81c3cda45a44eb6.tar.gz |
refactor makefile
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 161 |
1 files changed, 108 insertions, 53 deletions
@@ -1,106 +1,161 @@ BUILDTYPE ?= Release PYTHON ?= python -V ?= 1 PREFIX ?= /usr/local JOBS ?= 1 ifeq ($(shell uname -s), Darwin) -PLATFORM ?= osx +DEFAULT_HOST ?= osx endif -PLATFORM ?= linux +DEFAULT_HOST ?= linux .PHONY: all all: mbgl + +#### Dependencies ############################################################## + config.gypi: configure ./configure config-ios.gypi: configure MASON_PLATFORM=ios ./configure config-ios.gypi +config-android.gypi: configure __android__/configure +__android__/configure: + $(ENV) ./configure config-android.gypi + + +#### Configuration defaults #################################################### + +__osx__/%: HOST ?= osx +__osx__/%: HEADLESS ?= cgl +__osx__/%: PLATFORM ?= osx +__osx__/%: ASSET ?= fs +__osx__/%: HTTP ?= nsurl +__osx__/%: CACHE ?= sqlite + +__ios__/%: HOST = ios +__ios__/%: HEADLESS ?= none +__ios__/%: PLATFORM ?= ios +__ios__/%: ASSET ?= fs +__ios__/%: HTTP ?= nsurl +__ios__/%: CACHE ?= sqlite + +__linux__/%: HOST = linux +__linux__/%: HEADLESS ?= glx +__linux__/%: PLATFORM ?= linux +__linux__/%: ASSET ?= fs +__linux__/%: HTTP ?= curl +__linux__/%: CACHE ?= sqlite + +__android__/%: ENV=$(shell ./scripts/android_env.sh) +__android__/%: HOST = android +__android__/%: HEADLESS ?= none +__android__/%: PLATFORM ?= android +__android__/%: ASSET ?= zip +__android__/%: HTTP ?= curl +__android__/%: CACHE ?= sqlite + +CONFIG_STRING += -Dhost=$(HOST) +CONFIG_STRING += -Dheadless_lib=$(HEADLESS) +CONFIG_STRING += -Dplatform_lib=$(PLATFORM) +CONFIG_STRING += -Dasset_lib=$(ASSET) +CONFIG_STRING += -Dhttp_lib=$(HTTP) +CONFIG_STRING += -Dcache_lib=$(CACHE) +CONFIG_STRING += --depth=. +CONFIG_STRING += -Goutput_dir=.. + + #### Library builds ############################################################ .PHONY: mbgl mbgl: build/mbgl/Makefile - $(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) V=$(V) mbgl-core mbgl-$(PLATFORM) mbgl-headless + $(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) everything .PHONY: install install: build/mbgl/Makefile - $(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) V=$(V) install + $(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) install .PHONY: standalone standalone: build/mbgl/Makefile - LINK=`pwd`/gyp/link.py $(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) V=$(V) standalone + LINK=`pwd`/gyp/link.py $(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) standalone + -#### Build scripts ############################################################# +#### Application buidls ######################################################## .PHONY: build/mbgl/Makefile -build/mbgl/Makefile: mbgl.gyp config.gypi - deps/run_gyp mbgl.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. -Goutput_dir=.. --generator-output=./build/mbgl -f make +build/mbgl/Makefile: mbgl.gyp config.gypi __$(DEFAULT_HOST)__/mbgl +__%__/mbgl: + deps/run_gyp mbgl.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build/mbgl -f make .PHONY: build/test/Makefile -build/test/Makefile: test/test.gyp config.gypi - deps/run_gyp test/test.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. -Goutput_dir=.. --generator-output=./build/test -f make +build/test/Makefile: test/test.gyp config.gypi __$(DEFAULT_HOST)__/test +__%__/test: + deps/run_gyp test/test.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build/test -f make .PHONY: build/linux/Makefile -build/linux/Makefile: linux/mapboxgl-app.gyp config.gypi - deps/run_gyp linux/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=linux --depth=. -Goutput_dir=.. --generator-output=./build/linux -f make +build/linux/Makefile: linux/mapboxgl-app.gyp config.gypi __linux__/linux +__linux__/linux: + deps/run_gyp linux/mapboxgl-app.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build/linux -f make .PHONY: build/macosx/Makefile -build/macosx/Makefile: macosx/mapboxgl-app.gyp config.gypi - deps/run_gyp macosx/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=osx --depth=. -Goutput_dir=.. --generator-output=./build/macosx -f make +build/macosx/Makefile: macosx/mapboxgl-app.gyp config.gypi __osx__/osx +__osx__/osx: + deps/run_gyp macosx/mapboxgl-app.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build/macosx -f make .PHONY: build/render/Makefile -build/render/Makefile: bin/render.gyp config.gypi - deps/run_gyp bin/render.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. -Goutput_dir=.. --generator-output=./build/render -f make +build/render/Makefile: bin/render.gyp config.gypi __$(DEFAULT_HOST)__/render +__%__/render: + deps/run_gyp bin/render.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build/render -f make .PHONY: build/test/test.xcodeproj -build/test/test.xcodeproj: test/test.gyp config.gypi - deps/run_gyp test/test.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. -Goutput_dir=.. --generator-output=./build -f xcode +build/test/test.xcodeproj: test/test.gyp config.gypi __osx__/test-xcode +__osx__/test-xcode: + deps/run_gyp test/test.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build -f xcode .PHONY: build/macosx/mapboxgl-app.xcodeproj -build/macosx/mapboxgl-app.xcodeproj: macosx/mapboxgl-app.gyp config.gypi - deps/run_gyp macosx/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=osx --depth=. --generator-output=./build -f xcode +build/macosx/mapboxgl-app.xcodeproj: macosx/mapboxgl-app.gyp config.gypi __osx__/app-xcode +__osx__/app-xcode: + deps/run_gyp macosx/mapboxgl-app.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build -f xcode .PHONY: build/ios/mapbox-gl-cocoa/app/mapboxgl-app.xcodeproj -build/ios/mapbox-gl-cocoa/app/mapboxgl-app.xcodeproj: ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp config-ios.gypi - deps/run_gyp ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp -Iconfig-ios.gypi -Dplatform=ios --depth=. --generator-output=./build -f xcode +build/ios/mapbox-gl-cocoa/app/mapboxgl-app.xcodeproj: ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp config-ios.gypi __ios__/app-xcode +__ios__/app-xcode: + deps/run_gyp ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp -Iconfig-ios.gypi $(CONFIG_STRING) --generator-output=./build -f xcode .PHONY: build/linux/mapboxgl-app.xcodeproj -build/linux/mapboxgl-app.xcodeproj: linux/mapboxgl-app.gyp config.gypi - deps/run_gyp linux/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=linux --depth=. --generator-output=./build -f xcode +build/linux/mapboxgl-app.xcodeproj: linux/mapboxgl-app.gyp config.gypi __linux__/app-xcode +__linux__/app-xcode: + deps/run_gyp linux/mapboxgl-app.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build -f xcode .PHONY: build/bin/render.xcodeproj - build/bin/render.xcodeproj: bin/render.gyp config.gypi - deps/run_gyp bin/render.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. --generator-output=./build -f xcode +build/bin/render.xcodeproj: bin/render.gyp config.gypi __$(HOST)__/render-xcode +__%__/render-xcode: + deps/run_gyp bin/render.gyp -Iconfig.gypi $(CONFIG_STRING) --generator-output=./build -f xcode + +.PHONY: build/android/Makefile +build/android/Makefile: android/mapboxgl-app.gyp config.gypi __android__/android-make +__android__/android-make: + @echo deps/run_gyp android/mapboxgl-app.gyp -Iconfig-android.gypi $(CONFIG_STRING) --generator-output=./build/android -f make-android + @$(ENV) deps/run_gyp android/mapboxgl-app.gyp -Iconfig-android.gypi $(CONFIG_STRING) --generator-output=./build/android -f make-android .PHONY: android -android: - ./scripts/local_mason.sh && \ - MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=$(MASON_ANDROID_ABI) ./.mason/mason env PATH && \ - export CXX="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env CXX`" && \ - export CC="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env CC`" && \ - export LD="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env LD`" && \ - export LINK="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env CXX`" && \ - export AR="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env AR`" && \ - export RANLIB="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env RANLIB`" && \ - export STRIP="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env STRIP`" && \ - export LDFLAGS="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env LDFLAGS` ${LDFLAGS}" && \ - export CFLAGS="`MASON_DIR=./.mason MASON_PLATFORM= MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env CFLAGS` ${CFLAGS}" && \ - export CPPFLAGS="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env CPPFLAGS` ${CPPFLAGS}" && \ - export PATH="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env PATH`:${PATH}" && \ - export JNIDIR="`MASON_DIR=./.mason MASON_PLATFORM=android MASON_ANDROID_ABI=${MASON_ANDROID_ABI} ./.mason/mason env JNIDIR`" && \ - MASON_PLATFORM=android MASON_ANDROID_ABI=$(MASON_ANDROID_ABI) ./configure config-android.gypi && \ - deps/run_gyp android/mapboxgl-app.gyp -Iconfig-android.gypi -Dplatform=android --depth=. --generator-output=./build/android/$(MASON_ANDROID_ABI) -f make-android && \ - $(MAKE) -C build/android/$(MASON_ANDROID_ABI) -j$(JOBS) BUILDTYPE=$(BUILDTYPE) V=$(V) androidapp && \ - BUILDTYPE=$(BUILDTYPE) MASON_ANDROID_ABI=$(MASON_ANDROID_ABI) ./android/scripts/copy-files.sh && \ - cd android/java && \ - ./gradlew --parallel-threads=$(JOBS) build +android: __android__/android +__android__/android: build/android/Makefile + @echo $(MAKE) -C build/android BUILDTYPE=$(BUILDTYPE) androidapp + @$(ENV) $(MAKE) -C build/android BUILDTYPE=$(BUILDTYPE) androidapp + mkdir -p android/java/lib/src/main/jniLibs/armeabi-v7a + cp build/$(BUILDTYPE)/lib.target/libmapbox-gl.so android/java/lib/src/main/jniLibs/armeabi-v7a/libmapbox-gl.so + mkdir -p android/java/lib/src/main/assets + cp build/$(BUILDTYPE)/ca-bundle.crt android/java/lib/src/main/assets/ca-bundle.crt + cp -r build/$(BUILDTYPE)/styles android/java/lib/src/main/assets/styles + cd android/java && ./gradlew --parallel-threads=$(JOBS) build + ##### Test cases ############################################################### test: build/test/Makefile - $(MAKE) -C build/test BUILDTYPE=$(BUILDTYPE) V=$(V) test + $(MAKE) -C build/test BUILDTYPE=$(BUILDTYPE) test test-%: test ./scripts/run_tests.sh --gtest_filter=$* @@ -109,12 +164,12 @@ test-%: test xtest: build/test/test.xcodeproj open ./build/test/test.xcodeproj -##### Makefile builds ########################################################## +##### Makefile builds ########################################################## # Builds the linux app with make. linux: build/linux/Makefile - $(MAKE) -C build/linux BUILDTYPE=$(BUILDTYPE) V=$(V) linuxapp + $(MAKE) -C build/linux BUILDTYPE=$(BUILDTYPE) linuxapp # Executes the Linux binary run-linux: linux @@ -122,7 +177,7 @@ run-linux: linux # Builds the OS X app with make. osx: build/macosx/Makefile - $(MAKE) -C build/macosx BUILDTYPE=$(BUILDTYPE) V=$(V) osxapp + $(MAKE) -C build/macosx BUILDTYPE=$(BUILDTYPE) osxapp # Executes the OS X binary run-osx: osx @@ -130,7 +185,7 @@ run-osx: osx # Builds the CLI render app render: build/render/Makefile - $(MAKE) -C build/render BUILDTYPE=$(BUILDTYPE) V=$(V) mbgl-render + $(MAKE) -C build/render BUILDTYPE=$(BUILDTYPE) mbgl-render ##### Xcode projects ########################################################### |