Makefile (1297B)
1 NODE_PATH ?= ./node_modules 2 DIST_DIR = ./dist 3 JS_COMPILER = node_modules/.bin/uglifyjs 4 JS_TESTER = node_modules/.bin/vows 5 6 DOC_DIR = doc 7 BUILD_DIR = build 8 DOC_LIST = `ls $(DOC_DIR)/md/` 9 JS_ENGINE ?= $(shell which node nodejs 2>/dev/null | head -1) 10 11 all: clean core doc 12 13 clean: 14 @echo 'Cleaning up build files' 15 @rm -rf dist 16 17 core: jstat.js jstat.min.js 18 19 jstat.js: \ 20 src/_header.js \ 21 src/core.js \ 22 src/vector.js \ 23 src/special.js \ 24 src/distribution.js \ 25 src/linearalgebra.js \ 26 src/test.js \ 27 src/models.js \ 28 src/regression.js \ 29 src/_footer.js 30 @echo 'Building jStat' 31 @mkdir -p $(DIST_DIR) 32 @cat $^ > $(DIST_DIR)/$@ 33 34 jstat.min.js: jstat.js 35 @echo 'Minifying jStat' 36 @$(JS_COMPILER) < $(DIST_DIR)/$< > $(DIST_DIR)/$@ 37 38 doc: 39 @echo 'Generating documentation' 40 @mkdir -p $(DIST_DIR)/docs/assets 41 @cp $(DOC_DIR)/assets/*.css $(DIST_DIR)/docs/assets/ 42 @cp $(DOC_DIR)/assets/*.js $(DIST_DIR)/docs/assets/ 43 @for i in $(DOC_LIST); do \ 44 $(JS_ENGINE) $(BUILD_DIR)/doctool.js $(DOC_DIR)/assets/template.html $(DOC_DIR)/md/$${i} $(DIST_DIR)/docs/$${i%.*}.html; \ 45 done 46 47 jstat: jstat.js 48 49 install: 50 @echo 'Downloading necessary libraries for build' 51 @mkdir -p node_modules 52 @npm install 53 54 test: clean core 55 @echo 'Running jStat unit tests' 56 @$(JS_TESTER) test/*/*.js 57 58 .PHONY: clean core doc install test