UNPKG

1.3 kBPlain TextView Raw
1NODE_PATH ?= ./node_modules
2DIST_DIR = ./dist
3JS_COMPILER = node_modules/.bin/uglifyjs
4JS_TESTER = node_modules/.bin/vows
5
6DOC_DIR = doc
7BUILD_DIR = build
8DOC_LIST = `ls $(DOC_DIR)/md/`
9JS_ENGINE ?= $(shell which node nodejs 2>/dev/null | head -1)
10
11all: clean core doc
12
13clean:
14 @echo 'Cleaning up build files'
15 @rm -rf dist
16
17core: jstat.js jstat.min.js
18
19jstat.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
34jstat.min.js: jstat.js
35 @echo 'Minifying jStat'
36 @$(JS_COMPILER) < $(DIST_DIR)/$< > $(DIST_DIR)/$@
37
38doc:
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
47jstat: jstat.js
48
49install:
50 @echo 'Downloading necessary libraries for build'
51 @mkdir -p node_modules
52 @npm install
53
54test: clean core
55 @echo 'Running jStat unit tests'
56 @$(JS_TESTER) test/*/*.js
57
58.PHONY: clean core doc install test