#!/usr/bin/make -f JSTEST ?= node_modules/.bin/jstest JSHINT ?= node_modules/.bin/jshint UGLIFY ?= node_modules/.bin/uglifyjs SOURCES = string-lerp.js MINIFIED = $(SOURCES:.js=.min.js) TESTS = $(wildcard tests/*.js); LINT_TARGETS = $(addprefix build/stamp/,$(addsuffix .lint,$(SOURCES))) TEST_TARGETS = $(addprefix build/stamp/,$(addsuffix .test,$(SOURCES))) .PHONY: all check lint test all: $(MINIFIED) %.min.js: %.js $(UGLIFY) $(UGLIFY) -m < $< > $@ build: mkdir -p build/stamp build/dist build/stamp/%.lint: % build @mkdir -p $(@D) $(JSHINT) $< @touch $@ build/stamp/%.test: tests/% % build @mkdir -p $(@D) @echo $(JSTEST) $< @$(JSTEST) $< > $@ || (cat $@ && rm -f $@ && exit 1) @touch $@ check: lint test lint: $(JSHINT) $(LINT_TARGETS) test: $(JSTEST) $(TEST_TARGETS) clean: rm -rf build rm -f $(MINIFIED) distclean: clean rm -rf node_modules $(JSTEST): npm install jstest $(JSHINT): npm install jshint $(UGLIFY): npm install uglify-js