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
|