91 lines
2.4 KiB
Makefile
91 lines
2.4 KiB
Makefile
#
|
|
# Copyright (c) 2015, Joyent, Inc.
|
|
#
|
|
# Makefile for node-triton
|
|
#
|
|
|
|
#
|
|
# Vars, Tools, Files, Flags
|
|
#
|
|
JS_FILES := bin/triton \
|
|
$(shell find lib test -name '*.js' | grep -v '/tmp/')
|
|
JSL_CONF_NODE = tools/jsl.node.conf
|
|
JSL_FILES_NODE = $(JS_FILES)
|
|
JSSTYLE_FILES = $(JS_FILES)
|
|
JSSTYLE_FLAGS = -f tools/jsstyle.conf
|
|
CLEAN_FILES += ./node_modules
|
|
|
|
include ./tools/mk/Makefile.defs
|
|
|
|
#
|
|
# Targets
|
|
#
|
|
.PHONY: all
|
|
all:
|
|
npm install
|
|
|
|
.PHONY: test
|
|
test: test-unit test-integration
|
|
|
|
.PHONY: test-unit
|
|
test-unit:
|
|
NODE_NDEBUG= ./node_modules/.bin/tape test/unit/*.test.js
|
|
|
|
.PHONY: test-integration
|
|
test-integration:
|
|
NODE_NDEBUG= ./node_modules/.bin/tape test/integration/*.test.js
|
|
|
|
.PHONY: test-in-parallel
|
|
test-in-parallel:
|
|
ls test/unit/*.test.js test/integration/*.test.js \
|
|
| parallel ./node_modules/.bin/tape \
|
|
| ./node_modules/.bin/tap-summary --no-ansi --no-progress
|
|
|
|
.PHONY: clean
|
|
clean::
|
|
rm -f triton-*.tgz
|
|
|
|
check:: versioncheck
|
|
|
|
# Ensure CHANGES.md and package.json have the same version.
|
|
.PHONY: versioncheck
|
|
versioncheck:
|
|
@echo version is: $(shell cat package.json | json version)
|
|
[[ `cat package.json | json version` == `grep '^## ' CHANGES.md | head -2 | tail -1 | awk '{print $$2}'` ]]
|
|
|
|
.PHONY: cutarelease
|
|
cutarelease: versioncheck
|
|
[[ -z `git status --short` ]] # If this fails, the working dir is dirty.
|
|
@which json 2>/dev/null 1>/dev/null && \
|
|
ver=$(shell json -f package.json version) && \
|
|
name=$(shell json -f package.json name) && \
|
|
publishedVer=$(shell npm view -j $(shell json -f package.json name)@$(shell json -f package.json version) version 2>/dev/null) && \
|
|
if [[ -n "$$publishedVer" ]]; then \
|
|
echo "error: $$name@$$ver is already published to npm"; \
|
|
exit 1; \
|
|
fi && \
|
|
echo "** Are you sure you want to tag and publish $$name@$$ver to npm?" && \
|
|
echo "** Enter to continue, Ctrl+C to abort." && \
|
|
read
|
|
ver=$(shell cat package.json | json version) && \
|
|
date=$(shell date -u "+%Y-%m-%d") && \
|
|
git tag -a "$$ver" -m "version $$ver ($$date)" && \
|
|
git push --tags origin && \
|
|
npm publish
|
|
|
|
.PHONY: git-hooks
|
|
git-hooks:
|
|
ln -sf ../../tools/pre-commit.sh .git/hooks/pre-commit
|
|
|
|
.PHONY: dumpvar
|
|
dumpvar:
|
|
@if [[ -z "$(VAR)" ]]; then \
|
|
echo "error: set 'VAR' to dump a var"; \
|
|
exit 1; \
|
|
fi
|
|
@echo "$(VAR) is '$($(VAR))'"
|
|
|
|
include ./tools/mk/Makefile.deps
|
|
include ./tools/mk/Makefile.targ
|
|
JSL_FLAGS += --nofilelist
|