NODE_PATH ?= ./node_modules DIST_DIR = ./dist JS_COMPILER = node_modules/.bin/uglifyjs JS_TESTER = node_modules/.bin/vows DOC_DIR = doc BUILD_DIR = build DOC_LIST = `ls $(DOC_DIR)/md/` JS_ENGINE ?= $(shell which node nodejs 2>/dev/null | head -1) all: clean core doc clean: @echo 'Cleaning up build files' @rm -rf dist core: jstat.js jstat.min.js jstat.js: \ src/_header.js \ src/core.js \ src/vector.js \ src/special.js \ src/distribution.js \ src/linearalgebra.js \ src/test.js \ src/models.js \ src/regression.js \ src/_footer.js @echo 'Building jStat' @mkdir -p $(DIST_DIR) @cat $^ > $(DIST_DIR)/$@ jstat.min.js: jstat.js @echo 'Minifying jStat' @$(JS_COMPILER) < $(DIST_DIR)/$< > $(DIST_DIR)/$@ doc: @echo 'Generating documentation' @mkdir -p $(DIST_DIR)/docs/assets @cp $(DOC_DIR)/assets/*.css $(DIST_DIR)/docs/assets/ @cp $(DOC_DIR)/assets/*.js $(DIST_DIR)/docs/assets/ @for i in $(DOC_LIST); do \ $(JS_ENGINE) $(BUILD_DIR)/doctool.js $(DOC_DIR)/assets/template.html $(DOC_DIR)/md/$${i} $(DIST_DIR)/docs/$${i%.*}.html; \ done jstat: jstat.js install: @echo 'Downloading necessary libraries for build' @mkdir -p node_modules @npm install test: clean core @echo 'Running jStat unit tests' @$(JS_TESTER) test/*/*.js .PHONY: clean core doc install test