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 := marked-man
NPM_EXEC := npm
TAP := ./node_modules/.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) manpages
# $(NPM_EXEC) install
CLEAN_FILES += $(TAP) ./node_modules/tap $(MAN_OUTDIR)
.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
|