@ -99,19 +99,39 @@ test/gc/node_modules/weak/build/Release/weakref.node: $(NODE_EXE)
--directory= " $( shell pwd ) /test/gc/node_modules/weak " \
--directory= " $( shell pwd ) /test/gc/node_modules/weak " \
--nodedir= " $( shell pwd ) "
--nodedir= " $( shell pwd ) "
build-addons : $( NODE_EXE )
# Implicitly depends on $(NODE_EXE), see the build-addons rule for rationale.
rm -rf test/addons/doc-*/
test/addons/.docbuildstamp : doc /api /addons .markdown
$( RM) -r test/addons/doc-*/
$( NODE) tools/doc/addon-verify.js
$( NODE) tools/doc/addon-verify.js
$( foreach dir, \
touch $@
$( sort $( dir $( wildcard test/addons/*/*.gyp) ) ) , \
$( NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
ADDONS_BINDING_GYPS := \
--directory= " $( shell pwd ) / $( dir) " \
$( filter-out test/addons/doc-*/binding.gyp, \
--nodedir= " $( shell pwd ) " && ) echo "build done"
$( wildcard test/addons/*/binding.gyp) )
# Implicitly depends on $(NODE_EXE), see the build-addons rule for rationale.
test/addons/.buildstamp : $( ADDONS_BINDING_GYPS ) | test /addons /.docbuildstamp
# Cannot use $(wildcard test/addons/*/) here, it's evaluated before
# embedded addons have been generated from the documentation.
for dirname in test/addons/*/; do \
$( NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
--directory= " $$ PWD/ $$ dirname " \
--nodedir= " $$ PWD " ; \
done
touch $@
# .buildstamp and .docbuildstamp need $(NODE_EXE) but cannot depend on it
# directly because it calls make recursively. The parent make cannot know
# if the subprocess touched anything so it pessimistically assumes that
# .buildstamp and .docbuildstamp are out of date and need a rebuild.
# Just goes to show that recursive make really is harmful...
# TODO(bnoordhuis) Force rebuild after gyp or node-gyp update.
build-addons : $( NODE_EXE ) test /addons /.buildstamp
test-gc : all test /gc /node_modules /weak /build /Release /weakref .node
test-gc : all test /gc /node_modules /weak /build /Release /weakref .node
$( PYTHON) tools/test.py --mode= release gc
$( PYTHON) tools/test.py --mode= release gc
test-build : all build -addons
test-build : | all build -addons
test-all : test -build test /gc /node_modules /weak /build /Release /weakref .node
test-all : test -build test /gc /node_modules /weak /build /Release /weakref .node
$( PYTHON) tools/test.py --mode= debug,release
$( PYTHON) tools/test.py --mode= debug,release
@ -119,8 +139,9 @@ test-all: test-build test/gc/node_modules/weak/build/Release/weakref.node
test-all-valgrind : test -build
test-all-valgrind : test -build
$( PYTHON) tools/test.py --mode= debug,release --valgrind
$( PYTHON) tools/test.py --mode= debug,release --valgrind
test-ci :
test-ci : | build -addons
$( PYTHON) tools/test.py -p tap --logfile test.tap --mode= release message parallel sequential
$( PYTHON) tools/test.py -p tap --logfile test.tap --mode= release \
addons message parallel sequential
test-release : test -build
test-release : test -build
$( PYTHON) tools/test.py --mode= release
$( PYTHON) tools/test.py --mode= release