summaryrefslogtreecommitdiff
path: root/platform/node/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'platform/node/Makefile')
-rw-r--r--platform/node/Makefile78
1 files changed, 78 insertions, 0 deletions
diff --git a/platform/node/Makefile b/platform/node/Makefile
new file mode 100644
index 0000000000..74b911a142
--- /dev/null
+++ b/platform/node/Makefile
@@ -0,0 +1,78 @@
+BUILDTYPE ?= Release
+MBGL ?= vendor/mbgl
+
+DEBUG_FLAG =
+ifeq ($(BUILDTYPE), Debug)
+DEBUG_FLAG = -d
+endif
+
+ifeq ($(shell uname -s), Darwin)
+HOST ?= osx
+ifeq ($(JOBS),)
+JOBS = $(shell sysctl -n hw.ncpu)
+endif
+endif
+ifeq ($(shell uname -s), Linux)
+HOST ?= linux
+ifeq ($(JOBS),)
+JOBS = $(shell nproc)
+endif
+endif
+
+NODE_PRE_GYP = $(shell which node-pre-gyp)
+ifeq ($(NODE_PRE_GYP),)
+NODE_PRE_GYP = $(shell npm bin)/node-pre-gyp
+endif
+
+# Explicitly disable the default FileSource implementation
+ASSET = none
+HTTP = none
+CACHE = none
+
+include $(MBGL)/config/defaults.mk
+
+global: build
+
+.PHONY: build
+build: build/Makefile
+ @$(NODE_PRE_GYP) build $(DEBUG_FLAG) --clang -- -j$(JOBS)
+
+vendor/mbgl:
+ git submodule update --init
+
+GYP_SETTINGS = -Dmbgl=$(MBGL) \
+ -Dhost=$(HOST) \
+ -I$(MBGL)/config/$(HOST).gypi \
+ $(LIBS_$(HOST)) \
+ -Duv_static_libs= -Duv_ldflags=
+
+.PHONY: build/Makefile
+build/Makefile: $(MBGL)/config/$(HOST).gypi
+ @$(NODE_PRE_GYP) configure --clang -- $(GYP_SETTINGS) -f make
+
+.PHONY: build/binding.xcodeproj
+build/binding.xcodeproj: $(MBGL)/config/$(HOST).gypi
+ @$(NODE_PRE_GYP) configure --clang -- $(GYP_SETTINGS) -f xcode
+
+.PHONY: xproj
+xproj: build/binding.xcodeproj
+ open build/binding.xcodeproj
+
+$(MBGL)/config/%.gypi: $(MBGL) $(MBGL)/configure
+ make -C $(MBGL) config/$*.gypi geojsonvt
+
+.PHONY: test-suite
+test-suite:
+ -@(`npm bin`/tape test/render.test.js | `npm bin`/faucet)
+
+.PHONY: test-js
+test-js:
+ @(`npm bin`/tape test/js/**/*.test.js | `npm bin`/faucet)
+
+.PHONY: test
+test: test-js test-suite
+
+.PHONY: clean
+clean:
+ rm -rf build lib
+ rm -f $(MBGL)/config/$(HOST).gypi