1
0
Fork 0
easejs/Makefile

88 lines
2.3 KiB
Makefile
Raw Permalink Normal View History

2010-11-10 19:38:06 -05:00
path_build=./build
path_tools=./tools
path_lib=./lib
path_combine_output=${path_build}/ease.js
path_combine_output_full=${path_build}/ease-full.js
path_browser_test=${path_tools}/browser-test.html
path_test=./test
path_perf_test=${path_test}/perf
perf_tests := $(shell find "$(path_perf_test)" -name 'perf-*.js')
src_js := index.js $(wildcard $(path_lib)/*.js)
src_tests := index.js $(shell find "$(path_test)" -name test-* \
-o -name *Test* \
-o -name inc-*.js )
path_doc := ./doc
combine := $(path_tools)/combine
compiler := $(path_tools)/compiler.jar
.PHONY: combine min doc test test-combine clean distclean
2010-11-10 19:38:06 -05:00
2011-05-23 18:38:13 -04:00
default: combine min
all: combine min doc
2011-06-05 13:53:05 -04:00
mkbuild: $(path_build)
# create build dir
$(path_build):
mkdir -p "$(path_build)"
# combine all modules into easily redistributable ease.js file (intended for
# browser)
$(path_combine_output): $(src_js) | mkbuild
${combine} > "$(path_combine_output)"
$(path_combine_output_full): $(src_js) $(src_tests) | mkbuild
INC_TEST=1 "$(combine)" > "${path_combine_output_full}"
2011-12-03 12:56:37 -05:00
$(path_build)/browser-test.html: $(path_browser_test) | $(path_combine_output_full)
cp "$(path_browser_test)" $@
$(path_build)/browser-test-min.html: $(path_browser_test) | $(path_combine_output_full)
cat "$(path_browser_test)" | sed 's/ease-full\.js/ease-full\.min\.js/' > $@
combine: $(path_combine_output) $(path_build)/browser-test.html
doc:
$(MAKE) -C $(path_doc)
2011-03-27 01:57:55 -04:00
test: default
$(MAKE) -C $(path_test)
2011-03-10 22:55:07 -05:00
# performance tests
perf: default $(perf_tests)
perf-%.js: default
@node $@
# minificatino process uses Google Closure compiler
min: build/ease.min.js build/ease-full.min.js $(path_build)/browser-test-min.html \
| combine
$(compiler):
wget -O- http://closure-compiler.googlecode.com/files/compiler-latest.tar.gz \
| tar -C $(path_tools) -xzv compiler.jar
build/%.min.js: build/%.js $(compiler)
cat $(path_tools)/license.tpl > $@
java -jar $(compiler) --compilation_level ADVANCED_OPTIMIZATIONS \
--formatting pretty_print \
--property_map_output_file build/min-propmap.xml \
--warning_level VERBOSE \
--js $< >> $@ || rm $@
2011-05-23 18:27:42 -04:00
install: doc-info
[ -d $(path_info_install) ] || mkdir -p $(path_info_install)
cp $(path_doc_output_info) $(path_info_install)
uninstall:
rm $(path_info_install)/easejs.info
# clean up build dir
2011-03-08 23:48:47 -05:00
clean:
$(MAKE) -C $(path_doc) clean
rm -rf "${path_build}"
2011-03-08 00:06:34 -05:00
distclean: clean
rm $(compiler)