configure.ac, doc/Makefile.am: Overhaul LaTeX building.
[sod] / doc / Makefile.am
index 882f01b..6647f48 100644 (file)
@@ -7,7 +7,7 @@
 
 ###----- Licensing notice ---------------------------------------------------
 ###
-### This file is part of the Sensble Object Design, an object system for C.
+### This file is part of the Sensible Object Design, an object system for C.
 ###
 ### SOD is free software; you can redistribute it and/or modify
 ### it under the terms of the GNU General Public License as published by
@@ -28,9 +28,31 @@ include $(top_srcdir)/vars.am
 doc_DATA                =
 TEX_FILES               =
 
-CLEANFILES             += *.aux *.out *.log *.toc
+CLEANFILES             += *.aux *.out *.log *.toc *.ind *.idx *.ilg
 EXTRA_DIST             += $(TEX_FILES)
 
+TEXFLAGS                = --interaction=batchmode \
+                               --output-directory=$(abs_builddir)
+BIBTEXFLAGS             = --terse
+MAKEINDEXFLAGS          = -q
+
+V_LATEX = $(V_LATEX_@AM_V@)
+V_LATEX_ = $(V_LATEX_@AM_DEFAULT_V@)
+V_LATEX_0 = @echo "  LATEX    $@";
+
+V_BIBTEX = $(V_BIBTEX_@AM_V@)
+V_BIBTEX_ = $(V_BIBTEX_@AM_DEFAULT_V@)
+V_BIBTEX_0 = @echo "  BIBTEX   $@";
+
+V_MAKEINDEX = $(V_MAKEINDEX_@AM_V@)
+V_MAKEINDEX_ = $(V_MAKEINDEX_@AM_DEFAULT_V@)
+V_MAKEINDEX_0 = @echo "  MAKEIDX  $@";
+
+run_pdflatex            = $(V_LATEX)cd $(srcdir) && \
+       $(PDFLATEX) $(TEXFLAGS) \
+               --jobname=$(basename $1) \
+               '\def\pkgversion{$(VERSION)}\input{$1}'
+
 ###--------------------------------------------------------------------------
 ### The manual.
 
@@ -40,10 +62,14 @@ TEX_FILES           += sod.tex
 ## Main document styling and definitions.
 TEX_FILES              += sod.sty
 
+## The introduction.
+TEX_FILES              += intro.tex
+
 ## Tutorial.
 TEX_FILES              += tutorial.tex
 
 ## Reference.
+TEX_FILES              += refintro.tex
 TEX_FILES              += concepts.tex
 ##TEX_FILES            += cmdline.tex
 TEX_FILES              += syntax.tex
@@ -55,20 +81,26 @@ TEX_FILES           += lispintro.tex
 TEX_FILES              += misc.tex
 TEX_FILES              += parsing.tex
 TEX_FILES              += clang.tex
-##TEX_FILES            += meta.tex
-##TEX_FILES            += layout.tex
-##TEX_FILES            += module.tex
-##TEX_FILES            += ouptut.tex
+TEX_FILES              += meta.tex
+TEX_FILES              += layout.tex
+TEX_FILES              += module.tex
+TEX_FILES              += output.tex
 
 ## Other hacks.
 TEX_FILES              += cutting-room-floor.tex
 
 ## Building the output documents.
 MAINTAINERCLEANFILES   += sod.pdf
-EXTRA_DIST             += sod.pdf
+
+if HAVE_LATEX
 doc_DATA               += sod.pdf
+EXTRA_DIST             += sod.pdf
 sod.pdf: $(TEX_FILES)
-       cd $(srcdir) && pdflatex --output-directory=$(abs_builddir) sod.tex
-       cd $(srcdir) && pdflatex --output-directory=$(abs_builddir) sod.tex
+       $(call run_pdflatex,sod.tex)
+       $(V_BIBTEX)$(BIBTEX) $(BIBTEXFLAGS) sod.aux
+       $(call run_pdflatex,sod.tex)
+       $(V_MAKEINDEX)$(MAKEINDEX) $(MAKEINDEXFLAGS) sod.idx
+       $(call run_pdflatex,sod.tex)
+endif
 
 ###----- That's all, folks --------------------------------------------------