summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-10-30 11:02:55 -0400
committerKonstantin Käfer <mail@kkaefer.com>2014-10-30 11:47:36 -0400
commit5413cb065ffaf7632d5b7cd27af925f6fbd9fcb8 (patch)
tree385ca53b80db10898ba409dc5ec35066be2a2bba /Makefile
parente38b02ff5897ef4bfd3666171f944213a256dd74 (diff)
downloadqtlocation-mapboxgl-5413cb065ffaf7632d5b7cd27af925f6fbd9fcb8.tar.gz
restructure Makefile to avoid concurrent makefile generation
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile85
1 files changed, 50 insertions, 35 deletions
diff --git a/Makefile b/Makefile
index c4d42bfd46..73e4c87999 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ PLATFORM ?= osx
endif
PLATFORM ?= linux
-
+.PHONY: all
all: mbgl-core mbgl-platform mbgl-headless
config.gypi: configure
@@ -17,28 +17,60 @@ config.gypi: configure
config-ios.gypi: configure
MASON_PLATFORM=ios ./configure config-ios.gypi
-# Builds the regular library
-mbgl-core: config.gypi mapboxgl.gyp
- deps/run_gyp mapboxgl.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. -Goutput_dir=.. --generator-output=./build/mbgl -f make
+#### Library builds ############################################################
+
+.PHONY: mbgl-core
+mbgl-core: build/mbgl/Makefile
$(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) V=$(V) mbgl-core
-mbgl-platform: config.gypi mapboxgl.gyp
- deps/run_gyp mapboxgl.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. -Goutput_dir=.. --generator-output=./build/mbgl -f make
+.PHONY: mbgl-platform
+mbgl-platform: build/mbgl/Makefile
$(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) V=$(V) mbgl-$(PLATFORM)
-mbgl-headless: config.gypi mapboxgl.gyp
- deps/run_gyp mapboxgl.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) --depth=. -Goutput_dir=.. --generator-output=./build/mbgl -f make
+.PHONY: mbgl-headless
+mbgl-headless: build/mbgl/Makefile
$(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) V=$(V) mbgl-headless
-install: config.gypi mapboxgl.gyp
- deps/run_gyp mapboxgl.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) -Dinstall_prefix=$(PREFIX) --depth=. -Goutput_dir=.. --generator-output=./build/mbgl -f make
+.PHONY: install
+install: build/mbgl/Makefile
$(MAKE) -C build/mbgl BUILDTYPE=$(BUILDTYPE) V=$(V) install
-##### Test cases ###############################################################
+#### Build scripts #############################################################
-build/test/Makefile: src common config.gypi test/test.gyp
+.PHONY: build/mbgl/Makefile
+build/mbgl/Makefile: mapboxgl.gyp config.gypi
+ deps/run_gyp mapboxgl.gyp -Iconfig.gypi -Dplatform=$(PLATFORM) -Dinstall_prefix=$(PREFIX) --depth=. -Goutput_dir=.. --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
+.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
+
+.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
+
+.PHONY: build/test/test.xcodeproj
+build/test/test.xcodeproj: test/test.gyp config.gypi
+ deps/run_gyp test/test.gyp -Iconfig.gypi -Dplatform=osx --depth=. -Goutput_dir=.. --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
+
+.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
+
+.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
+
+##### Test cases ###############################################################
+
test: build/test/Makefile
$(MAKE) -C build/test BUILDTYPE=$(BUILDTYPE) V=$(V) test
@@ -47,27 +79,22 @@ test_%: build/test/Makefile
(cd build/$(BUILDTYPE) && exec ./test_$*)
# build Mac OS X project for Xcode
-xtest: config.gypi clear_xcode_cache
- deps/run_gyp test/test.gyp -Iconfig.gypi -Dplatform=osx --depth=. -Goutput_dir=.. --generator-output=./build -f xcode
+xtest: build/test/test.xcodeproj
open ./build/test/test.xcodeproj
##### Makefile builds ##########################################################
# Builds the linux app with make.
-linux: config.gypi linux/mapboxgl-app.gyp
- deps/run_gyp linux/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=linux --depth=. -Goutput_dir=.. --generator-output=./build/linux -f make
+linux: build/linux/Makefile
$(MAKE) -C build/linux BUILDTYPE=$(BUILDTYPE) V=$(V) linuxapp
# Executes the Linux binary
run-linux: linux
(cd build/$(BUILDTYPE) && ./mapbox-gl)
-
-
# Builds the OS X app with make.
-osx: config.gypi macosx/mapboxgl-app.gyp
- deps/run_gyp macosx/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=osx --depth=. -Goutput_dir=.. --generator-output=./build/macosx -f make
+osx: build/macosx/Makefile
$(MAKE) -C build/macosx BUILDTYPE=$(BUILDTYPE) V=$(V) osxapp
# Executes the OS X binary
@@ -87,23 +114,14 @@ clear_xcode_cache:
find ~/Library/Developer/Xcode/DerivedData/mapboxgl-app-* -mtime +1 | xargs rm -rf; \
fi
-# build Mac OS X project for Xcode
-xproj-cli: config.gypi macosx/mapboxgl-app.gyp clear_xcode_cache
- deps/run_gyp macosx/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=osx --depth=. --generator-output=./build -f xcode
-
-xproj: xproj-cli
+xproj: build/macosx/mapboxgl-app.xcodeproj
open ./build/macosx/mapboxgl-app.xcodeproj
-# build iOS project for Xcode
-iproj-cli: config-ios.gypi ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp clear_xcode_cache
- deps/run_gyp ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp -Iconfig-ios.gypi -Dplatform=ios --depth=. --generator-output=./build -f xcode
-
-iproj: iproj-cli
+iproj: build/ios/mapbox-gl-cocoa/app/mapboxgl-app.xcodeproj
open ./build/ios/mapbox-gl-cocoa/app/mapboxgl-app.xcodeproj
# build Linux project for Xcode (Runs on Mac OS X too, but without platform-specific code)
-lproj: config.gypi linux/mapboxgl-app.gyp clear_xcode_cache
- deps/run_gyp linux/mapboxgl-app.gyp -Iconfig.gypi -Dplatform=linux --depth=. --generator-output=./build -f xcode
+lproj: build/linux/mapboxgl-app.xcodeproj
open ./build/linux/mapboxgl-app.xcodeproj
@@ -117,6 +135,3 @@ clean: clear_xcode_cache
distclean: clean
-rm -rf ./mason_packages
-
-.PHONY: mbgl-core install test linux clear_xcode_cache build/test/Makefile clean distclean
-# DO NOT DELETE