Clean up build system and add demos
This commit is contained in:
@@ -1,35 +1,65 @@
|
||||
PLOVR_JAR=bin/plovr-4b3caf2b7d84.jar
|
||||
SRC = $(shell find externs src/ol -name \*.js)
|
||||
TARGETS = $(shell find demos -name advanced-optimizations.js -o -name whitespace-only.js)
|
||||
comma := ,
|
||||
empty :=
|
||||
space := $(empty) $(empty)
|
||||
|
||||
.PHONY: all
|
||||
all: build webgl-debug.js
|
||||
all: build demos webgl-debug.js
|
||||
|
||||
.PHONY: build
|
||||
build: ol-api.js ol-skeleton.js
|
||||
build: build/ol3-compiled.js
|
||||
|
||||
ol-api.js: $(PLOVR_JAR) $(SRC) ol-base.json ol-api.json ol.js
|
||||
java -jar $(PLOVR_JAR) build $(basename $@).json >$@
|
||||
build/ol3-compiled.js: $(PLOVR_JAR) $(SRC) base.json \
|
||||
build/ol3.json build/ol3.js
|
||||
java -jar $(PLOVR_JAR) build build/ol3.json >$@
|
||||
@echo $@ "uncompressed:" $$(wc -c <$@) bytes
|
||||
@echo $@ " compressed:" $$(gzip -9 -c <$@ | wc -c) bytes
|
||||
|
||||
ol-skeleton.js: $(PLOVR_JAR) $(SRC) ol-base.json ol-skeleton.json skeleton.js
|
||||
java -jar $(PLOVR_JAR) build $(basename $@).json >$@
|
||||
build/ol3.js: $(SRC)
|
||||
( echo "goog.require('goog.dom');" ; find src/ol -name \*.js | xargs grep -rh ^goog.provide | sort | uniq | sed -e 's/provide/require/g' ) > $@
|
||||
|
||||
.PHONY: demos
|
||||
demos: demos/side-by-side
|
||||
|
||||
.PHONY: demos/side-by-side
|
||||
demos/side-by-side: \
|
||||
demos/side-by-side/advanced-optimizations.html \
|
||||
demos/side-by-side/advanced-optimizations.js \
|
||||
demos/side-by-side/debug.html \
|
||||
demos/side-by-side/whitespace-only.html \
|
||||
demos/side-by-side/whitespace-only.js
|
||||
|
||||
demos/side-by-side/advanced-optimizations.html: demos/side-by-side/index.html.in
|
||||
sed -e 's|@SRC@|advanced-optimizations.js|' $< > $@
|
||||
|
||||
demos/side-by-side/advanced-optimizations.js: $(PLOVR_JAR) $(SRC) base.json \
|
||||
demos/side-by-side/side-by-side.json demos/side-by-side/side-by-side.js
|
||||
java -jar $(PLOVR_JAR) build demos/side-by-side/side-by-side.json >$@
|
||||
@echo $@ "uncompressed:" $$(wc -c <$@) bytes
|
||||
@echo $@ " compressed:" $$(gzip -9 -c <$@ | wc -c) bytes
|
||||
|
||||
demos/side-by-side/debug.html: demos/side-by-side/index.html.in
|
||||
sed -e 's|@SRC@|http://localhost:9810/compile?id=demo-side-by-side|' $< > $@
|
||||
|
||||
demos/side-by-side/whitespace-only.html: demos/side-by-side/index.html.in
|
||||
sed -e 's|@SRC@|whitespace-only.js|' $< > $@
|
||||
|
||||
# FIXME invoke plovr directly, rather than assuming that the server is running
|
||||
demos/side-by-side/whitespace-only.js: $(PLOVR_JAR) $(SRC) base.json \
|
||||
demos/side-by-side/side-by-side.json demos/side-by-side/side-by-side.js
|
||||
curl 'http://localhost:9810/compile?id=demo-side-by-side&mode=WHITESPACE' > $@
|
||||
@echo $@ "uncompressed:" $$(wc -c <$@) bytes
|
||||
@echo $@ " compressed:" $$(gzip -9 -c <$@ | wc -c) bytes
|
||||
|
||||
.PHONY: serve
|
||||
serve: $(PLOVR_JAR)
|
||||
java -jar $(PLOVR_JAR) serve ol-api.json ol-skeleton.json
|
||||
|
||||
ol.js: $(SRC)
|
||||
( find src/ol -name \*.js | xargs grep -rh ^goog.provide | sort | uniq | sed -e 's/provide/require/g' ) > $@
|
||||
java -jar $(PLOVR_JAR) serve build/ol3.json demos/*/*.json
|
||||
|
||||
.PHONY: lint
|
||||
lint:
|
||||
gjslint --strict --limited_doc_files=$(subst $(space),$(comma),$(shell find externs -name \*.js)) $(SRC) skeleton.js
|
||||
gjslint --strict --limited_doc_files=$(subst $(space),$(comma),$(shell find externs -name \*.js)) $(SRC) $(filter-out $(TARGETS),$(shell find demos -name \*.js))
|
||||
|
||||
webgl-debug.js:
|
||||
curl https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/debug/webgl-debug.js > $@
|
||||
@@ -38,9 +68,9 @@ $(PLOVR_JAR):
|
||||
curl http://plovr.googlecode.com/files/$(notdir $@) > $@
|
||||
|
||||
clean:
|
||||
rm -f ol.js
|
||||
rm -f ol-api.js
|
||||
rm -f ol-skeleton.js
|
||||
rm -f build/all.js
|
||||
rm -f build/ol3.js
|
||||
rm -f demos/*/compiled.js
|
||||
|
||||
reallyclean: clean
|
||||
rm -f $(PLOVR_JAR)
|
||||
|
||||
Reference in New Issue
Block a user