summaryrefslogtreecommitdiff
path: root/platform/node/Makefile
blob: 74b911a1421179e9923b31f59af7615d22e61713 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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