2010-11-10 19:38:06 -05:00
|
|
|
|
2011-03-19 19:35:21 -04:00
|
|
|
PATH_BUILD=./build
|
2011-03-19 19:36:07 -04:00
|
|
|
PATH_TOOLS=./tools
|
2011-03-20 01:25:57 -04:00
|
|
|
PATH_LIB=./lib
|
2010-12-19 23:51:22 -05:00
|
|
|
PATH_COMBINE_OUTPUT=${PATH_BUILD}/ease.js
|
2010-12-28 00:23:13 -05:00
|
|
|
PATH_COMBINE_OUTPUT_FULL=${PATH_BUILD}/ease-full.js
|
2010-12-28 13:21:41 -05:00
|
|
|
PATH_BROWSER_TEST=${PATH_TOOLS}/browser-test.html
|
2011-03-10 22:55:07 -05:00
|
|
|
PATH_TEST=./test
|
|
|
|
PATH_PERF_TEST=${PATH_TEST}/perf
|
2010-12-19 23:51:22 -05:00
|
|
|
|
2011-03-11 19:47:00 -05:00
|
|
|
PERF_TESTS := $(shell find "$(PATH_PERF_TEST)" -name 'perf-*.js')
|
2011-03-09 00:06:33 -05:00
|
|
|
|
2011-03-19 19:35:21 -04:00
|
|
|
PATH_DOC=./doc
|
2011-03-08 23:48:47 -05:00
|
|
|
PATH_DOC_OUTPUT=${PATH_BUILD}/doc
|
2011-03-09 00:06:33 -05:00
|
|
|
PATH_DOC_OUTPUT_INFO=${PATH_DOC_OUTPUT}/manual.info
|
|
|
|
PATH_DOC_OUTPUT_PLAIN=${PATH_DOC_OUTPUT}/manual.txt
|
2011-03-08 23:57:52 -05:00
|
|
|
PATH_DOC_OUTPUT_HTML=${PATH_DOC_OUTPUT}/manual
|
2011-03-09 00:01:22 -05:00
|
|
|
PATH_DOC_OUTPUT_HTML1=${PATH_DOC_OUTPUT}/manual.html
|
2011-03-09 19:10:13 -05:00
|
|
|
PATH_DOC_CSS=${PATH_DOC}/manual.css
|
2011-03-19 19:35:21 -04:00
|
|
|
PATH_DOC_IMG=${PATH_DOC}/img
|
2011-03-21 21:09:36 -04:00
|
|
|
PATH_DOC_INTERACTIVE_SRC=$(PATH_DOC)/interactive.js
|
|
|
|
PATH_DOC_INTERACTIVE_DEST=$(PATH_DOC_OUTPUT)/interactive.js \
|
|
|
|
$(PATH_DOC_OUTPUT_HTML)/interactive.js
|
2011-03-08 23:57:52 -05:00
|
|
|
PATH_MANUAL_TEXI=${PATH_DOC}/manual.texi
|
2010-12-19 23:51:22 -05:00
|
|
|
|
2011-03-20 01:25:57 -04:00
|
|
|
src_js := index.js $(wildcard $(PATH_LIB)/*.js)
|
2011-03-20 02:28:40 -04:00
|
|
|
src_tests := index.js $(wildcard $(PATH_TEST)/test-*)
|
2011-03-20 00:44:06 -04:00
|
|
|
doc_src := $(wildcard $(PATH_DOC)/*.texi)
|
2011-03-19 19:35:21 -04:00
|
|
|
doc_imgs := $(patsubst %.dia, %.png, $(wildcard $(PATH_DOC_IMG)/*.dia))
|
2011-03-20 02:46:01 -04:00
|
|
|
doc_imgs_txt := $(patsubst %.dia, %.png, $(wildcard $(PATH_DOC_IMG)/*.txt))
|
2011-03-19 19:35:21 -04:00
|
|
|
|
2011-03-21 21:09:36 -04:00
|
|
|
doc_replace := s/<\/body>/<script type="text\/javascript" \
|
|
|
|
src="interactive.js"><\/script><\/body>/
|
|
|
|
|
2010-12-19 23:51:22 -05:00
|
|
|
COMBINE=${PATH_TOOLS}/combine
|
|
|
|
|
|
|
|
|
2011-03-20 01:25:57 -04:00
|
|
|
.PHONY: combine doc test test-combine
|
2010-11-10 19:38:06 -05:00
|
|
|
|
2010-12-19 23:51:22 -05:00
|
|
|
|
|
|
|
default: combine
|
2011-03-08 00:06:34 -05:00
|
|
|
all: combine doc
|
2010-12-19 23:51:22 -05:00
|
|
|
|
|
|
|
# create build dir
|
2011-03-20 01:25:57 -04:00
|
|
|
$(PATH_BUILD):
|
2011-03-19 19:35:21 -04:00
|
|
|
mkdir -p "$(PATH_BUILD)"
|
2011-03-20 00:44:06 -04:00
|
|
|
$(PATH_DOC_OUTPUT):
|
2011-03-19 19:35:21 -04:00
|
|
|
mkdir -p "$(PATH_DOC_OUTPUT)"
|
2011-03-20 01:25:57 -04:00
|
|
|
mkbuild: $(PATH_BUILD)
|
|
|
|
mkbuild-doc: $(PATH_DOC_OUTPUT)
|
2010-12-19 23:51:22 -05:00
|
|
|
|
|
|
|
# combine all modules into easily redistributable ease.js file (intended for
|
|
|
|
# browser)
|
2011-03-20 01:25:57 -04:00
|
|
|
$(PATH_COMBINE_OUTPUT): $(src_js) | mkbuild
|
|
|
|
${COMBINE} > "$(PATH_COMBINE_OUTPUT)"
|
2011-03-20 02:28:40 -04:00
|
|
|
$(PATH_COMBINE_OUTPUT_FULL): $(src_js) $(src_tests) | mkbuild
|
2011-03-20 01:25:57 -04:00
|
|
|
INC_TEST=1 "$(COMBINE)" > "${PATH_COMBINE_OUTPUT_FULL}"
|
|
|
|
$(PATH_BUILD)/browser-test.html: $(PATH_COMBINE_OUTPUT_FULL)
|
|
|
|
cp "$(PATH_BROWSER_TEST)" "$(PATH_BUILD)"
|
|
|
|
combine: $(PATH_COMBINE_OUTPUT) $(PATH_BUILD)/browser-test.html
|
2010-12-19 23:51:22 -05:00
|
|
|
|
2011-03-20 02:28:40 -04:00
|
|
|
|
2011-03-27 01:57:55 -04:00
|
|
|
test: default
|
2011-03-20 02:28:40 -04:00
|
|
|
$(MAKE) -C $(PATH_TEST)
|
2010-12-19 23:51:22 -05:00
|
|
|
|
2011-03-10 22:55:07 -05:00
|
|
|
# performance tests
|
2011-03-11 19:47:00 -05:00
|
|
|
perf: default $(PERF_TESTS)
|
|
|
|
perf-%.js: default
|
|
|
|
@node $@
|
2010-12-19 23:51:22 -05:00
|
|
|
|
2011-03-08 00:06:34 -05:00
|
|
|
# generate texinfo documentation (twice to generate TOC), then remove the extra
|
2011-03-09 00:01:22 -05:00
|
|
|
# files that were generated
|
|
|
|
#
|
2011-03-20 00:44:06 -04:00
|
|
|
# generates: pdf, info, HTML (multiple pages), HTML (single page)
|
|
|
|
doc: | doc-pdf doc-info doc-plain doc-html
|
2011-03-19 19:35:21 -04:00
|
|
|
|
2011-03-20 00:44:06 -04:00
|
|
|
# doc images
|
2011-03-19 19:35:21 -04:00
|
|
|
doc/img/%.png: doc/img/%.dia
|
2011-03-20 15:08:21 -04:00
|
|
|
dia -e $@ -s 300x $<
|
2011-03-19 19:35:21 -04:00
|
|
|
|
2011-03-20 00:44:06 -04:00
|
|
|
# doc pdf
|
2011-03-20 18:36:03 -04:00
|
|
|
$(PATH_DOC_OUTPUT)/%.pdf: $(doc_src) $(doc_imgs) | mkbuild-doc doc-img
|
2011-03-19 19:35:21 -04:00
|
|
|
TEXINPUTS="$(PATH_DOC):" \
|
|
|
|
pdftex -output-directory "${PATH_DOC}" "${PATH_MANUAL_TEXI}" && \
|
|
|
|
TEXINPUTS="$(PATH_DOC):" \
|
|
|
|
pdftex -output-directory "${PATH_DOC}" "${PATH_MANUAL_TEXI}"
|
2011-03-11 19:56:23 -05:00
|
|
|
mv -f "${PATH_DOC}"/*.pdf "${PATH_DOC_OUTPUT}"
|
2011-03-19 15:04:41 -04:00
|
|
|
cd "$(PATH_DOC)" && rm -f $(shell cat "$(PATH_DOC)/.gitignore")
|
2011-03-19 19:35:21 -04:00
|
|
|
|
2011-03-20 00:44:06 -04:00
|
|
|
# doc info
|
2011-03-20 02:46:01 -04:00
|
|
|
$(PATH_DOC_OUTPUT_INFO): $(doc_src) $(doc_imgs_txt) | mkbuild-doc
|
2011-03-20 00:44:06 -04:00
|
|
|
makeinfo -I "$(PATH_DOC)" -o $@ "$(PATH_MANUAL_TEXI)";
|
2011-03-19 19:35:21 -04:00
|
|
|
|
2011-03-20 00:44:06 -04:00
|
|
|
# doc plain text
|
2011-03-20 02:46:01 -04:00
|
|
|
$(PATH_DOC_OUTPUT_PLAIN): $(doc_imgs_txt) | mkbuild-doc
|
2011-03-20 00:44:06 -04:00
|
|
|
makeinfo --plain -I "$(PATH_DOC)" "${PATH_MANUAL_TEXI}" > $@
|
2011-03-19 19:35:21 -04:00
|
|
|
|
2011-03-20 00:44:06 -04:00
|
|
|
# doc html (multiple pages)
|
2011-03-21 21:09:36 -04:00
|
|
|
$(PATH_DOC_OUTPUT_HTML)/index.html: $(doc_src) \
|
|
|
|
| $(PATH_DOC_OUTPUT_HTML)/img $(PATH_DOC_OUTPUT_HTML)/interactive.js \
|
|
|
|
mkbuild-doc doc-img
|
2011-03-19 19:35:21 -04:00
|
|
|
makeinfo --html --css-include="${PATH_DOC_CSS}" \
|
2011-03-21 21:09:36 -04:00
|
|
|
-I "$(PATH_DOC)" -o "${PATH_DOC_OUTPUT_HTML}" "${PATH_MANUAL_TEXI}"
|
|
|
|
sed -i '$(doc_replace)' $(PATH_DOC_OUTPUT_HTML)/*.htm?
|
2011-03-20 00:44:06 -04:00
|
|
|
|
|
|
|
# doc html (single page)
|
2011-03-21 21:09:36 -04:00
|
|
|
$(PATH_DOC_OUTPUT_HTML1): $(doc_src) \
|
|
|
|
| $(PATH_DOC_OUTPUT)/img $(PATH_DOC_OUTPUT)/interactive.js mkbuild-doc doc-img
|
2011-03-19 19:35:21 -04:00
|
|
|
makeinfo --no-split --html --css-include="${PATH_DOC_CSS}" \
|
2011-03-21 21:09:36 -04:00
|
|
|
-I "$(PATH_DOC)" -o - "${PATH_MANUAL_TEXI}" \
|
|
|
|
| sed '$(doc_replace)' \
|
|
|
|
> "$(PATH_DOC_OUTPUT_HTML1)"
|
2011-03-19 19:35:21 -04:00
|
|
|
|
2011-03-20 00:44:06 -04:00
|
|
|
# doc images (in build dir)
|
2011-03-20 18:36:03 -04:00
|
|
|
$(PATH_DOC_OUTPUT)/img: $(doc_imgs) | mkbuild-doc doc-img
|
2011-03-20 00:44:06 -04:00
|
|
|
mkdir -p $@
|
|
|
|
cp "$(PATH_DOC_IMG)"/*.png $@
|
|
|
|
$(PATH_DOC_OUTPUT_HTML)/img: $(PATH_DOC_OUTPUT)/img
|
|
|
|
mkdir -p $(PATH_DOC_OUTPUT_HTML)
|
|
|
|
ln -s ../img $@
|
|
|
|
|
2011-03-21 21:09:36 -04:00
|
|
|
# interactive html doc (js)
|
|
|
|
$(PATH_DOC_INTERACTIVE_DEST): $(PATH_DOC_INTERACTIVE_SRC)
|
|
|
|
cp $< $@
|
|
|
|
|
2011-03-20 00:44:06 -04:00
|
|
|
doc-img: $(doc_imgs)
|
|
|
|
doc-pdf: $(PATH_DOC_OUTPUT)/manual.pdf
|
|
|
|
doc-info: $(PATH_DOC_OUTPUT_INFO)
|
|
|
|
doc-plain: $(PATH_DOC_OUTPUT_PLAIN)
|
|
|
|
doc-html: $(PATH_DOC_OUTPUT_HTML)/index.html $(PATH_DOC_OUTPUT_HTML1)
|
2011-03-08 00:06:34 -05:00
|
|
|
|
2010-12-19 23:51:22 -05:00
|
|
|
# clean up build dir
|
2011-03-08 23:48:47 -05:00
|
|
|
clean:
|
2011-03-09 19:12:16 -05:00
|
|
|
rm -rf "${PATH_BUILD}"
|
2011-03-19 19:35:21 -04:00
|
|
|
rm -rf $(PATH_DOC_IMG)/*.png
|
2011-03-08 00:06:34 -05:00
|
|
|
|