|
1 | 1 | SHELL=/bin/bash
|
2 | 2 | VOC=voc
|
3 |
| -TARGETS=cptable.js cputils.js cpexcel.js sbcs.js |
| 3 | +TARGET=cptable.js |
| 4 | +AUXTARGETS=cputils.js cpexcel.js sbcs.js |
4 | 5 |
|
5 |
| -.PHONY: js voc |
| 6 | +## Main Targets |
| 7 | + |
| 8 | +.PHONY: all |
| 9 | +all: voc ## Build library and auxiliary scripts |
| 10 | + |
| 11 | +.PHONY: voc |
6 | 12 | voc test.js: codepage.md
|
7 | 13 | $(VOC) codepage.md
|
8 | 14 |
|
9 |
| -js: make.sh codepage.md |
| 15 | +.PHONY: js |
| 16 | +js: make.sh codepage.md ## Build all output targets |
10 | 17 | bash make.sh <(awk -F, '$$3=="1"' pages.csv) sbcs.js cptable
|
11 | 18 | bash make.sh excel.csv cpexcel.js cptable
|
12 | 19 | bash make.sh
|
| 20 | + make cputils.js |
13 | 21 |
|
14 |
| -.PHONY: init |
15 |
| -init: |
16 |
| - bash misc/init.sh |
| 22 | +cputils.js: %.js : %.flow.js |
| 23 | + node -e 'process.stdout.write(require("fs").readFileSync("$<","utf8").replace(/^[ \t]*\/\*[:#][^*]*\*\/[ \t]*(\n)?/gm,"").replace(/\/\*[:#][^*]*\*\//gm,""))' > $@ |
17 | 24 |
|
18 | 25 | .PHONY: clean
|
19 |
| -clean: |
| 26 | +clean: ## Remove targets and build artifaats |
20 | 27 | rm -f make.sh .vocrc pages.csv bits/*.js
|
21 | 28 |
|
22 |
| -.PHONY: test mocha |
23 |
| -test mocha: test.js |
24 |
| - mocha -R spec |
| 29 | +.PHONY: dist ## Copy files for distribution |
| 30 | +dist: $(TARGET) $(AUXTARGETS) |
| 31 | + cp $(TARGET) $(AUXTARGETS) LICENSE dist/ |
25 | 32 |
|
26 |
| -.PHONY: prof |
27 |
| -prof: |
28 |
| - cat misc/prof.js test.js > prof.js |
29 |
| - node --prof prof.js |
| 33 | +## Testing |
30 | 34 |
|
31 |
| -.PHONY: lint |
32 |
| -lint: |
33 |
| - jshint --show-non-errors $(TARGETS) |
34 |
| - jscs $(TARGETS) |
| 35 | +.PHONY: test mocha |
| 36 | +test mocha: test.js $(TARGET) baseline ## Run test suite |
| 37 | + mocha -R spec -t 20000 |
35 | 38 |
|
36 | 39 | .PHONY: ctest
|
37 |
| -ctest: |
| 40 | +ctest: ## Build browser test (into ctest/ subdirectory) |
38 | 41 | bash ctest/fixtures.sh
|
39 | 42 |
|
40 |
| -.PHONY: cov cov-spin |
41 |
| -cov: misc/coverage.html |
42 |
| -cov-spin: |
43 |
| - make cov & bash misc/spin.sh $$! |
| 43 | +.PHONY: ctestserv |
| 44 | +ctestserv: ## Start a test server on port 8000 |
| 45 | + @python -mSimpleHTTPServer |
| 46 | + |
| 47 | +.PHONY: baseline |
| 48 | +baseline: ## Build test baselines |
| 49 | + @bash ./misc/make_baseline.sh |
| 50 | + |
| 51 | +## Code Checking |
44 | 52 |
|
45 |
| -misc/coverage.html: test.js |
46 |
| - mocha --require blanket -R html-cov > $@ |
| 53 | +.PHONY: lint |
| 54 | +lint: $(TARGET) $(AUXTARGETS) ## Run jshint and jscs checks |
| 55 | + @jshint --show-non-errors $(TARGET) $(AUXTARGETS) |
| 56 | + @jshint --show-non-errors package.json |
| 57 | + @jshint --show-non-errors --extract=always $(HTMLLINT) |
| 58 | + @jscs $(TARGET) $(AUXTARGETS) |
| 59 | + |
| 60 | +.PHONY: flow |
| 61 | +flow: lint ## Run flow checker |
| 62 | + @flow check --all --show-all-errors |
| 63 | + |
| 64 | +.PHONY: cov |
| 65 | +cov: misc/coverage.html ## Run coverage test |
| 66 | + |
| 67 | +misc/coverage.html: $(TARGET) test.js |
| 68 | + mocha --require blanket -R html-cov -t 20000 > $@ |
| 69 | + |
| 70 | +.PHONY: coveralls |
| 71 | +coveralls: ## Coverage Test + Send to coveralls.io |
| 72 | + mocha --require blanket --reporter mocha-lcov-reporter -t 20000 | node ./node_modules/coveralls/bin/coveralls.js |
| 73 | + |
| 74 | +.PHONY: prof |
| 75 | +prof: |
| 76 | + cat misc/prof.js test.js > prof.js |
| 77 | + node --prof prof.js |
47 | 78 |
|
48 |
| -.PHONY: coveralls coveralls-spin |
49 |
| -coveralls: |
50 |
| - mocha --require blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js |
51 | 79 |
|
52 |
| -coveralls-spin: |
53 |
| - make coveralls & bash misc/spin.sh $$! |
54 | 80 |
|
55 |
| -.PHONY: dist |
56 |
| -dist: dist/cpexcel.full.js dist/cptable.full.js dist/sbcs.full.js |
57 |
| - cp $(TARGETS) dist/ |
58 |
| - cp LICENSE dist/ |
| 81 | +.PHONY: help |
| 82 | +help: |
| 83 | + @grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST) | bash misc/help.sh |
59 | 84 |
|
60 |
| -.PHONY: dist/cpexcel.full.js dist/cptable.full.js dist/sbcs.full.js |
61 |
| -dist/cpexcel.full.js dist/cptable.full.js dist/sbcs.full.js : dist/%.full.js: %.js cputils.js |
62 |
| - cat $^ > $@ |
| 85 | +#* To show a spinner, append "-spin" to any target e.g. cov-spin |
| 86 | +%-spin: |
| 87 | + @make $* & bash misc/spin.sh $$! |
0 commit comments