3 JSTEST ?
= node_modules
/.bin
/jstest
4 JSHINT ?
= node_modules
/.bin
/jshint
5 UGLIFY ?
= node_modules
/.bin
/uglifyjs
6 SOURCES
= string-lerp.js
7 UGLIFIED
= $(SOURCES
:.js
=.min.js
)
9 TESTS
= $(wildcard tests
/*.js
);
10 LINT_TARGETS
= $(addprefix build
/stamp
/,$(addsuffix .lint
,$(SOURCES
)))
11 TEST_TARGETS
= $(addprefix build
/stamp
/,$(addsuffix .
test,$(SOURCES
)))
13 .PHONY
: all check lint
test min
16 @echo
"Interesting targets:"
17 @echo
" lint - validate source (with jshint)"
18 @echo
" test - run tests (with jstest)"
19 @echo
" ugly - generate minified/mangled source files"
21 @echo
"(Running these will download packages from NPM.)"
24 %.min.js
: %.js
$(UGLIFY
)
25 $(UGLIFY
) -m
< $< > $@
28 mkdir
-p build
/stamp build
/dist
30 build
/stamp
/%.lint
: % build
35 build
/stamp
/%.
test: tests
/% % build
38 @
$(JSTEST
) $< > $@ ||
(cat
$@
&& rm -f
$@
&& exit
1)
45 lint
: $(JSHINT
) $(LINT_TARGETS
)
47 test: $(JSTEST
) $(TEST_TARGETS
)