1
0
Fork 0
easejs/Makefile

70 lines
1.8 KiB
Makefile

CWD=$(CURDIR)
PATH_BUILD=${CWD}/build
PATH_TOOLS=${CWD}/tools
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_DOC=${CWD}/doc
PATH_DOC_OUTPUT=${PATH_BUILD}/doc
PATH_DOC_OUTPUT_INFO=${PATH_DOC_OUTPUT}/manual.info
PATH_DOC_OUTPUT_PLAIN=${PATH_DOC_OUTPUT}/manual.txt
PATH_DOC_OUTPUT_HTML=${PATH_DOC_OUTPUT}/manual
PATH_DOC_OUTPUT_HTML1=${PATH_DOC_OUTPUT}/manual.html
PATH_MANUAL_TEXI=${PATH_DOC}/manual.texi
COMBINE=${PATH_TOOLS}/combine
.PHONY: test doc
default: combine
all: combine doc
# create build dir
mkbuild:
@mkdir -p ${PATH_BUILD}
# combine all modules into easily redistributable ease.js file (intended for
# browser)
combine: mkbuild
${COMBINE} > ${PATH_COMBINE_OUTPUT}
INC_TEST=1 ${COMBINE} > ${PATH_COMBINE_OUTPUT_FULL}
@cp ${PATH_BROWSER_TEST} ${PATH_BUILD}
# run tests
test: default
for test in `find ./test -name 'test-*.js'`; do \
node $${test}; \
done; \
for test in `find ./test -regex '.*/test-[^\.]*'`; do \
./$$test; \
done;
# generate texinfo documentation (twice to generate TOC), then remove the extra
# files that were generated
#
# generates: pdf, HTML (multiple pages), HTML (single page)
doc:
@mkdir -p ${PATH_DOC_OUTPUT}
pdftex -output-directory "${PATH_DOC}" ${PATH_MANUAL_TEXI}
pdftex -output-directory "${PATH_DOC}" ${PATH_MANUAL_TEXI}
find ${PATH_DOC} -type f \
! -name '*.texi' -a \
! -name '.*' -a \
! -name '*.pdf' \
| xargs rm
@mv -f ${PATH_DOC}/*.pdf ${PATH_DOC_OUTPUT}
cd ${PATH_DOC}; \
makeinfo -o ${PATH_DOC_OUTPUT_INFO} ${PATH_MANUAL_TEXI}; \
makeinfo --plain ${PATH_MANUAL_TEXI} > ${PATH_DOC_OUTPUT_PLAIN}; \
makeinfo --html -o ${PATH_DOC_OUTPUT_HTML} ${PATH_MANUAL_TEXI}; \
makeinfo --no-split --html -o ${PATH_DOC_OUTPUT_HTML1} ${PATH_MANUAL_TEXI};
# clean up build dir
clean:
rm -rf ${PATH_BUILD}