1 | MODULE_NAME := $(shell node -e "console.log(require('./package.json').binary.module_name)")
|
2 |
|
3 | # Whether to turn compiler warnings into errors
|
4 | export WERROR ?= false
|
5 |
|
6 | default: release
|
7 |
|
8 | ./node_modules/.bin/node-pre-gyp:
|
9 | # install deps but for now ignore our own install script
|
10 | # so that we can run it directly in either debug or release
|
11 | npm install --ignore-scripts
|
12 |
|
13 | release: ./node_modules/.bin/node-pre-gyp
|
14 | V=1 ./node_modules/.bin/node-pre-gyp configure build --error_on_warnings=$(WERROR) --loglevel=error
|
15 | @echo "run 'make clean' for full rebuild"
|
16 |
|
17 | debug: ./node_modules/.bin/node-pre-gyp
|
18 | V=1 ./node_modules/.bin/node-pre-gyp configure build --error_on_warnings=$(WERROR) --loglevel=error --debug
|
19 | @echo "run 'make clean' for full rebuild"
|
20 |
|
21 | coverage:
|
22 | ./scripts/coverage.sh
|
23 |
|
24 | tidy:
|
25 | ./scripts/clang-tidy.sh
|
26 |
|
27 | format:
|
28 | ./scripts/clang-format.sh
|
29 |
|
30 | sanitize:
|
31 | ./scripts/sanitize.sh
|
32 |
|
33 | clean:
|
34 | rm -rf lib/binding
|
35 | rm -rf build
|
36 | # remove remains from running 'make coverage'
|
37 | rm -f *.profraw
|
38 | rm -f *.profdata
|
39 | @echo "run 'make distclean' to also clear node_modules, mason_packages, and .mason directories"
|
40 |
|
41 | distclean: clean
|
42 | rm -rf node_modules
|
43 | rm -rf mason_packages
|
44 | # remove remains from running './scripts/setup.sh'
|
45 | rm -rf .mason
|
46 | rm -rf .toolchain
|
47 | rm -f local.env
|
48 |
|
49 | xcode: ./node_modules/.bin/node-pre-gyp
|
50 | ./node_modules/.bin/node-pre-gyp configure -- -f xcode
|
51 |
|
52 | @# If you need more targets, e.g. to run other npm scripts, duplicate the last line and change NPM_ARGUMENT
|
53 | SCHEME_NAME="$(MODULE_NAME)" SCHEME_TYPE=library BLUEPRINT_NAME=$(MODULE_NAME) BUILDABLE_NAME=$(MODULE_NAME).node scripts/create_scheme.sh
|
54 | SCHEME_NAME="npm test" SCHEME_TYPE=node BLUEPRINT_NAME=$(MODULE_NAME) BUILDABLE_NAME=$(MODULE_NAME).node NODE_ARGUMENT="`npm bin tape`/tape test/*.test.js" scripts/create_scheme.sh
|
55 |
|
56 | open build/binding.xcodeproj
|
57 |
|
58 | docs:
|
59 | npm run docs
|
60 |
|
61 | test:
|
62 | npm test
|
63 |
|
64 | .PHONY: test docs
|
65 |
|
66 | testpack:
|
67 | rm -f ./*tgz
|
68 | npm pack
|
69 |
|
70 | testpacked: testpack
|
71 | rm -rf /tmp/package
|
72 | tar -xf *tgz --directory=/tmp/
|
73 | du -h -d 0 /tmp/package
|
74 | cp -r test /tmp/package/
|
75 | cp -r fonts /tmp/package/
|
76 | ln -s `pwd`/mason_packages /tmp/package/mason_packages
|
77 | (cd /tmp/package && make && make test)
|