forked from flowplayer/flowplayer
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
62 lines (48 loc) · 1.54 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
export PATH := ./node_modules/.bin/:$(PATH)
# version and date
VERSION=$(shell cat VERSION)
SET_VERSION=sed "s/@VERSION/${VERSION}/g"
DATE=$(shell git log -1 --pretty=format:%ad --date=short)
SET_DATE=sed "s/@DATE/${DATE}/"
# paths
DIST=./dist
JS=$(DIST)/freedomplayer.js
SKIN=$(DIST)/skin
# https://foliovision.com/player/legal/freedom-player-license
concat: raw
# freedomplayer.js
@ node -e "var fs = require('fs'), js=fs.readFileSync('$(JS)', 'utf8'); process.stdout.write(js.replace('//BRANDING', fs.readFileSync('deps/branding.js', 'utf8')));" > $(JS).tmp
@ mv $(JS).tmp $(JS)
# the raw / non-working player without branding
raw:
# raw player
@ mkdir -p $(DIST)
@ cat LICENSE.js | $(SET_VERSION) | $(SET_DATE) > $(JS)
@ cat node_modules/ie8/build/ie8.js >> $(JS)
@ echo >> $(JS)
@ browserify -t brfs -p browserify-derequire -s freedomplayer lib/index.js | $(SET_VERSION) >> $(JS)
min: concat
# freedomplayer.min.js
@ uglifyjs $(JS) --comments '/foliovision.com\/player\/legal\/freedom-player-license/' --compress --mangle --output $(DIST)/freedomplayer.min.js
# make all skins
skin:
# skins
@ mkdir -p $(SKIN)
@ node-sass skin/sass/skin.sass | postcss > $(SKIN)/skin.css
@ cp -r skin/icons $(SKIN)
zip: min concat skin
@ cp index.html $(DIST)
@ cp LICENSE.md $(DIST)
@ rm -f $(DIST)/freedomplayer.zip
cd $(DIST) && zip -r freedomplayer-$(VERSION).zip * -x \*DS_Store
clean:
# cleaning
@ rm -rf $(DIST)
deps:
@ npm install
all: clean zip
# shortcuts
js: concat
browserlist:
@ npx browserslist@latest --update-db
.PHONY: dist skin deps