diff --git a/Makefile b/Makefile index 9e5b739..3e5b8dd 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ PATH_DOC_CSS=${PATH_DOC}/manual.css PATH_DOC_IMG=${PATH_DOC}/img PATH_MANUAL_TEXI=${PATH_DOC}/manual.texi +doc_src := $(wildcard $(PATH_DOC)/*.texi) doc_imgs := $(patsubst %.dia, %.png, $(wildcard $(PATH_DOC_IMG)/*.dia)) COMBINE=${PATH_TOOLS}/combine @@ -39,8 +40,9 @@ all: combine doc # create build dir mkbuild: mkdir -p "$(PATH_BUILD)" -mkbuild-doc: +$(PATH_DOC_OUTPUT): mkdir -p "$(PATH_DOC_OUTPUT)" +mkbuild-doc: | $(PATH_DOC_OUTPUT) # combine all modules into easily redistributable ease.js file (intended for # browser) @@ -65,15 +67,15 @@ perf-%.js: default # generate texinfo documentation (twice to generate TOC), then remove the extra # files that were generated # -# generates: pdf, HTML (multiple pages), HTML (single page) -doc: doc-pdf doc-texi doc-plain doc-html - -doc-img: $(doc_imgs) +# generates: pdf, info, HTML (multiple pages), HTML (single page) +doc: | doc-pdf doc-info doc-plain doc-html +# doc images doc/img/%.png: doc/img/%.dia dia -e $@ -s 600x $< -doc-pdf: | mkbuild-doc doc-img +# doc pdf +$(PATH_DOC_OUTPUT)/%.pdf: $(doc_src) | mkbuild-doc doc-img TEXINPUTS="$(PATH_DOC):" \ pdftex -output-directory "${PATH_DOC}" "${PATH_MANUAL_TEXI}" && \ TEXINPUTS="$(PATH_DOC):" \ @@ -81,23 +83,37 @@ doc-pdf: | mkbuild-doc doc-img mv -f "${PATH_DOC}"/*.pdf "${PATH_DOC_OUTPUT}" cd "$(PATH_DOC)" && rm -f $(shell cat "$(PATH_DOC)/.gitignore") -doc-texi: | mkbuild-doc - makeinfo -I "$(PATH_DOC)" -o "${PATH_DOC_OUTPUT_INFO}" \ - "${PATH_MANUAL_TEXI}"; +# doc info +$(PATH_DOC_OUTPUT_INFO): $(doc_src) | mkbuild-doc + makeinfo -I "$(PATH_DOC)" -o $@ "$(PATH_MANUAL_TEXI)"; -doc-plain: | mkbuild-doc - makeinfo --plain -I "$(PATH_DOC)" "${PATH_MANUAL_TEXI}" \ - > "${PATH_DOC_OUTPUT_PLAIN}"; +# doc plain text +$(PATH_DOC_OUTPUT_PLAIN): | mkbuild-doc + makeinfo --plain -I "$(PATH_DOC)" "${PATH_MANUAL_TEXI}" > $@ -doc-html: | mkbuild-doc doc-img +# doc html (multiple pages) +$(PATH_DOC_OUTPUT_HTML)/index.html: | $(PATH_DOC_OUTPUT_HTML)/img mkbuild-doc doc-img makeinfo --html --css-include="${PATH_DOC_CSS}" \ - -I "$(PATH_DOC)" -o "${PATH_DOC_OUTPUT_HTML}" "${PATH_MANUAL_TEXI}"; \ + -I "$(PATH_DOC)" -o "${PATH_DOC_OUTPUT_HTML}" "${PATH_MANUAL_TEXI}"; + +# doc html (single page) +$(PATH_DOC_OUTPUT_HTML1): | $(PATH_DOC_OUTPUT)/img mkbuild-doc doc-img makeinfo --no-split --html --css-include="${PATH_DOC_CSS}" \ -I "$(PATH_DOC)" -o "${PATH_DOC_OUTPUT_HTML1}" "${PATH_MANUAL_TEXI}"; - mkdir -p "$(PATH_DOC_OUTPUT_HTML)/img" - cp "$(PATH_DOC_IMG)"/*.png "$(PATH_DOC_OUTPUT_HTML)/img" - ln -s manual/img "$(PATH_DOC_OUTPUT)/img" +# doc images (in build dir) +$(PATH_DOC_OUTPUT)/img: | mkbuild-doc doc-img + 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 $@ + +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) # clean up build dir clean: