-
Notifications
You must be signed in to change notification settings - Fork 50
/
Makefile
77 lines (64 loc) · 1.87 KB
/
Makefile
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
#
# Copyright (c) 2012, Joyent, Inc. All rights reserved.
#
# Makefile: basic Makefile for template API service
#
# This Makefile is a template for new repos. It contains only repo-specific
# logic and uses included makefiles to supply common targets (javascriptlint,
# jsstyle, restdown, etc.), which are used by other repos as well. You may well
# need to rewrite most of this file, but you shouldn't need to touch the
# included makefiles.
#
# If you find yourself adding support for new targets that could be useful for
# other projects too, you should add these to the original versions of the
# included Makefiles (in eng.git) so that other teams can use them too.
#
#
# Tools
#
# Get md2man-roff from <https://github.com/sunaku/md2man>
MD2MAN := md2man-roff
NPM_EXEC := npm
TAP := ./node_modules/tape/bin/tape
#
# Files
#
JS_FILES := $(shell find lib -name '*.js')
JSL_CONF_NODE = tools/jsl.node.conf
JSL_FILES_NODE = $(JS_FILES)
JSSTYLE_FILES = $(JS_FILES)
JSSTYLE_FLAGS = -f tools/jsstyle.conf
MAN_PAGES := $(shell ls man/src)
MAN_OUTDIR := man/man1
MAN_OUTPAGES=$(MAN_PAGES:%.md=$(MAN_OUTDIR)/%.1)
MAN_ROOT := man/src
include ./tools/mk/Makefile.defs
include ./tools/mk/Makefile.node_deps.defs
#
# Repo-specific targets
#
.PHONY: all
all: $(REPO_DEPS)
$(NPM_EXEC) install
CLEAN_FILES += $(TAP) ./node_modules/tap
.PHONY: test
test: all
TAP=1 $(TAP) test/*.js
.PHONY: coverage
coverage: all
$(NPM_EXEC) install istanbul && \
./node_modules/.bin/istanbul cover \
$(TAP) test/*.js
.PHONY: codecovio
codecovio: coverage
$(NPM_EXEC) install codecov.io && \
./node_modules/.bin/codecov < coverage/lcov.info
$(MAN_OUTDIR):
mkdir -p $@
$(MAN_OUTDIR)/%.1: $(MAN_ROOT)/%.md | $(MAN_OUTDIR)
$(MD2MAN) $^ > $@
.PHONY: manpages
manpages: $(MAN_OUTPAGES)
include ./tools/mk/Makefile.deps
include ./tools/mk/Makefile.node_deps.targ
include ./tools/mk/Makefile.targ