summaryrefslogtreecommitdiff
path: root/mk/elftoolchain.tex.mk
diff options
context:
space:
mode:
authorKai Wang <kaiw@FreeBSD.org>2014-01-15 08:43:20 +0000
committerKai Wang <kaiw@FreeBSD.org>2014-01-15 08:43:20 +0000
commit5265ace0e440a23fb522c516f4ee20f43eaed2b3 (patch)
tree13068447bb61372f7540b168e913b8eb88ef7578 /mk/elftoolchain.tex.mk
downloadsrc-test2-18571c04d3049b16145d6d77f3d5c55b42f305e5.tar.gz
src-test2-18571c04d3049b16145d6d77f3d5c55b42f305e5.zip
Diffstat (limited to 'mk/elftoolchain.tex.mk')
-rw-r--r--mk/elftoolchain.tex.mk98
1 files changed, 98 insertions, 0 deletions
diff --git a/mk/elftoolchain.tex.mk b/mk/elftoolchain.tex.mk
new file mode 100644
index 000000000000..4aeb993850c0
--- /dev/null
+++ b/mk/elftoolchain.tex.mk
@@ -0,0 +1,98 @@
+#
+# Rules to build LateX documentation.
+#
+# $Id: elftoolchain.tex.mk 2552 2012-08-28 03:39:09Z jkoshy $
+#
+
+.include "${TOP}/mk/elftoolchain.os.mk"
+
+.if defined(MKTEX) && ${MKTEX} == "yes" && exists(${MPOST}) && exists(${PDFLATEX})
+
+TEXINPUTS= `kpsepath tex`:${.CURDIR}
+_TEX= TEXINPUTS=${TEXINPUTS} ${PDFLATEX} -file-line-error \
+ -halt-on-error
+
+DOCSUBDIR= elftoolchain # Destination directory.
+
+.MAIN: all
+
+all: ${DOC}.pdf .PHONY
+
+# Build an index.
+#
+# First, we need to remove the existing ".ind" file and run `latex` once
+# to generate it afresh. This generates the appropriate ".idx" files used
+# by `makeindex`.
+# Next, `makeindex` is used to create the ".ind" file.
+# Then another set of `latex` runs serves to typeset the index.
+index: .PHONY
+ rm -f ${DOC}.ind
+ ${_TEX} ${DOC}.tex
+ ${MAKEINDEX} ${DOC}.idx
+ ${_TEX} ${DOC}.tex
+ @if grep 'Rerun to get' ${DOC}.log > /dev/null; then \
+ ${_TEX} ${DOC}.tex; \
+ fi
+
+# Recognize additional suffixes.
+.SUFFIXES: .mp .eps .tex .pdf
+
+# Rules to build MetaPost figures.
+.mp.eps:
+ @if [ "${.OBJDIR}" != "${.CURDIR}" ]; then cp ${.CURDIR}/${.IMPSRC:T} ${.OBJDIR}/; fi
+ TEX=${MPOSTTEX} ${MPOST} -halt-on-error ${.IMPSRC:T} || (rm ${.IMPSRC:T:R}.1; false)
+ mv ${.IMPSRC:T:R}.1 ${.TARGET}
+.eps.pdf:
+ ${EPSTOPDF} ${.IMPSRC} > ${.TARGET} || (rm ${.TARGET}; false)
+
+.for f in ${IMAGES_MP}
+${f:R}.eps: ${.CURDIR}/${f}
+CLEANFILES+= ${f:R}.eps ${f:R}.log ${f:R}.pdf ${f:R}.mpx
+.endfor
+
+CLEANFILES+= mpxerr.tex mpxerr.log makempx.log missfont.log
+
+${DOC}.pdf: ${SRCS} ${IMAGES_MP:S/.mp$/.pdf/g}
+ ${_TEX} ${.CURDIR}/${DOC}.tex > /dev/null || \
+ (cat ${DOC}.log; rm -f ${.TARGET}; exit 1)
+ @if grep 'undefined references' ${DOC}.log > /dev/null; then \
+ ${_TEX} ${.CURDIR}/${DOC}.tex > /dev/null; \
+ fi
+ @if grep 'Rerun to get' ${DOC}.log > /dev/null; then \
+ ${_TEX} ${.CURDIR}/${DOC}.tex > /dev/null; \
+ fi
+
+.for f in aux log out pdf toc ind idx ilg
+CLEANFILES+= ${DOC}.${f}
+.endfor
+
+# Do something sensible for the `depend` and `cleandepend` targets.
+depend: .depend
+ @true
+.depend:
+ @echo ${DOC}.pdf: ${SRCS} ${IMAGES_MP:S/.mp$/.pdf/g} > ${.TARGET}
+cleandepend: .PHONY
+ rm -f .depend
+
+clean clobber: .PHONY
+ rm -f ${CLEANFILES}
+
+install: all
+ @mkdir -p ${DESTDIR}/${DOCDIR}/${DOCSUBDIR}
+ ${INSTALL} -g ${DOCGRP} -o ${DOCOWN} ${DOC}.pdf \
+ ${DESTDIR}/${DOCDIR}/${DOCSUBDIR}
+
+# Include rules for `make obj`
+.include <bsd.obj.mk>
+
+.else
+
+all clean clobber depend install obj: .PHONY .SILENT
+ echo -n WARNING: make \"${.TARGET}\" in \"${.CURDIR:T}\" skipped:
+.if defined(MKTEX) && ${MKTEX} == "yes"
+ echo " missing tools."
+.else
+ echo " builds of TeX documentation are disabled."
+.endif
+ true
+.endif