1 # =======================================================================
2 # Makefile for generating LaTeX documents
3 # -----------------------------------------------------------------------
5 # This is a simple makefile for generating LaTeX documents. It will
6 # run bibtex, generate eps from xfig figures, and make pdfs. The
7 # makefile supports builds in non-source directories: just make a
8 # build directory, copy the makefile there, and change the srcdir
9 # variable accordingly.
11 # Note that the makefile assumes that the default dvips/ps2pdfwr
12 # commands "do the right thing" for fonts in pdfs. This is true on
13 # Athena/Linux and Fedora Core but is not true for older redhat installs ...
15 # At a minimum you should just change the main variable to be
16 # the basename of your toplevel tex file. If you use a bibliography
17 # then you should set the bibfile variable to be the name of your
18 # .bib file (assumed to be in the source directory).
22 # (none) makes PDFs in output/
23 # clean removed everything except PDFs in output/
24 # clean-all removed everything in output/
26 # Directories relative to the top level:
30 relsrcdir
= ..
/$(srcdir)
32 # What we want to produce:
33 doc_target
= power-spec
35 docs_with_bib
= power-spec
38 srcs
= $(wildcard $(srcdir)/*.
tex)
39 figs
= $(wildcard $(srcdir)/figs
/*)
40 bibs
= $(srcdir)/power-spec.bib
42 #=======================================================================
43 # You shouldn't need to change anything below this
44 #=======================================================================
46 # : needed after ../src/ in TEXINPUTS so that it looks in standard places
47 PDFLATEX
:= TEXINPUTS
=$(relsrcdir
): pdflatex
-interaction
=nonstopmode
-halt-on-error
48 BIBTEX
:= BIBINPUTS
=$(relsrcdir
): bibtex
49 GLOSSARIES
:= makeglossaries
51 default
: $(outdir
) pdf
53 #------------------------------------------------------------
56 pdfs_with_bib
= $(addsuffix .pdf
, $(docs_with_bib
))
57 pdfs_without_bib
= $(addsuffix .pdf
, $(docs_without_bib
))
58 pdfs
= $(pdfs_with_bib
)
60 Makefile
: build
/Makefile
63 pdf
: $(pdfs
) Makefile
72 # This is not nice. To generate the glossary you need a .aux file,
73 # .aux is generated by pdflatex - which complains as there are undefined names
74 # Also if \gls are used in glossary.tex before they are defined - there are
75 # similar problems, so makeglossaries needs to be run twice.
76 $(pdfs_with_bib
): %.pdf
: $(srcdir)/%.
tex $(srcs
) $(figs
) $(bibs
)
77 cd
$(outdir
); $(PDFLATEX
) $(doc_target
)
78 cd
$(outdir
); $(BIBTEX
) $(doc_target
)
79 cd
$(outdir
); $(GLOSSARIES
) $(doc_target
)
80 cd
$(outdir
); $(PDFLATEX
) $(doc_target
)
81 cd
$(outdir
); $(GLOSSARIES
) $(doc_target
)
83 $(pdfs_without_bib
): %.pdf
: $(srcdir)/%.
tex $(srcs
) $(figs
)
84 cd
$(outdir
); $(PDFLATEX
) $* || true
85 cd
$(outdir
); makeglossaries
$* || true
86 cd
$(outdir
); $(PDFLATEX
) $* || true
88 junk
+= *.aux
*.log
*.bbl
*.blg
*.toc
*.out
90 #------------------------------------------------------------
94 rm -rf
$(addprefix $(outdir
)/, $(junk
))
97 rm -rf
$(addprefix $(outdir
)/, $(pdfs
))