This repository has been archived by the owner on Apr 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 26
/
Makefile
109 lines (91 loc) · 2.61 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.PHONY: build var node amd size hint clean test web preview pages dependencies
# repository name
REPO = ie8
# make var files
VAR = src/$(REPO).js
# make node files
NODE = $(VAR)
# make amd files
AMD = $(VAR)
# README constant
# default build task
build:
make clean
make var
# make node
# make amd
# make test
make hint
make size
# build generic version
var:
mkdir -p build
cat template/var.before $(VAR) template/var.after >build/no-copy.$(REPO).max.js
node node_modules/uglify-js/bin/uglifyjs --verbose build/no-copy.$(REPO).max.js >build/no-copy.$(REPO).js
cat template/license.before LICENSE.txt template/license.after build/no-copy.$(REPO).max.js >build/$(REPO).max.js
cat template/copyright build/no-copy.$(REPO).js >build/$(REPO).js
rm build/no-copy.$(REPO).max.js
rm build/no-copy.$(REPO).js
# build node.js version
node:
mkdir -p build
cat template/license.before LICENSE.txt template/license.after template/node.before $(NODE) template/node.after >build/$(REPO).node.js
# build AMD version
amd:
mkdir -p build
cat template/amd.before $(AMD) template/amd.after >build/no-copy.$(REPO).max.amd.js
node node_modules/uglify-js/bin/uglifyjs --verbose build/no-copy.$(REPO).max.amd.js >build/no-copy.$(REPO).amd.js
cat template/license.before LICENSE.txt template/license.after build/no-copy.$(REPO).max.amd.js >build/$(REPO).max.amd.js
cat template/copyright build/no-copy.$(REPO).amd.js >build/$(REPO).amd.js
rm build/no-copy.$(REPO).max.amd.js
rm build/no-copy.$(REPO).amd.js
size:
wc -c build/$(REPO).max.js
gzip -c build/$(REPO).js | wc -c
# hint built file
hint:
node node_modules/jshint/bin/jshint build/$(REPO).max.js
# clean/remove build folder
clean:
rm -rf build
# tests, as usual and of course
test:
npm test
# launch tiny-cdn (ctrl+click to open the page)
web:
./node_modules/.bin/tiny-cdn run ./
# markdown the readme and view it
preview:
node_modules/markdown/bin/md2html.js README.md >README.md.htm
cat template/md.before README.md.htm template/md.after >README.md.html
open README.md.html
sleep 3
rm README.md.htm README.md.html
pages:
git pull --rebase
make var
mkdir -p ~/tmp
mkdir -p ~/tmp/$(REPO)
cp -rf src ~/tmp/$(REPO)
cp -rf build ~/tmp/$(REPO)
cp -rf test ~/tmp/$(REPO)
cp index.html ~/tmp/$(REPO)
git checkout gh-pages
mkdir -p test
rm -rf test
cp -rf ~/tmp/$(REPO) test
git add test
git add test/.
git commit -m 'automatic test generator'
git push
git checkout master
rm -r ~/tmp/$(REPO)
# modules used in this repo
dependencies:
rm -rf node_modules
mkdir node_modules
npm install wru
npm install tiny-cdn
npm install uglify-js@1
npm install jshint
npm install markdown