UNPKG

2.17 kBPlain TextView Raw
1MODULE_NAME := $(shell node -e "console.log(require('./package.json').binary.module_name)")
2
3# Whether to turn compiler warnings into errors
4export WERROR ?= false
5
6default: 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
13release: ./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
17debug: ./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
21coverage:
22 ./scripts/coverage.sh
23
24tidy:
25 ./scripts/clang-tidy.sh
26
27format:
28 ./scripts/clang-format.sh
29
30sanitize:
31 ./scripts/sanitize.sh
32
33clean:
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
41distclean: 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
49xcode: ./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
58docs:
59 npm run docs
60
61test:
62 npm test
63
64.PHONY: test docs
65
66testpack:
67 rm -f ./*tgz
68 npm pack
69
70testpacked: 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)