Latest additions
[libresoc-isa-manual.git] / powerpc-add / build / Makefile
1 # =======================================================================
2 # Makefile for generating LaTeX documents
3 # -----------------------------------------------------------------------
4 #
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.
10 #
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 ...
14 #
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).
19 #
20
21 # Targets:
22 # (none) makes PDFs in output/
23 # clean removed everything except PDFs in output/
24 # clean-all removed everything in output/
25
26 # Directories relative to the top level:
27 outdir = output
28 srcdir = src
29 # Relative to output:
30 relsrcdir = ../$(srcdir)
31
32 # What we want to produce:
33 doc_target = power-spec
34
35 docs_with_bib = power-spec
36 docs_without_bib =
37
38 srcs = $(wildcard $(srcdir)/*.tex)
39 figs = $(wildcard $(srcdir)/figs/*)
40 bibs = $(srcdir)/power-spec.bib
41
42 #=======================================================================
43 # You shouldn't need to change anything below this
44 #=======================================================================
45
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
50
51 default : $(outdir) pdf
52
53 #------------------------------------------------------------
54 # PDF
55
56 pdfs_with_bib = $(addsuffix .pdf, $(docs_with_bib))
57 pdfs_without_bib = $(addsuffix .pdf, $(docs_without_bib))
58 pdfs = $(pdfs_with_bib)
59
60 Makefile: build/Makefile
61 ln -s $^ .
62
63 pdf : $(pdfs) Makefile
64 .PHONY: pdf open
65
66 $(outdir):
67 mkdir $@
68
69 open: $(pdfs)
70 open $(pdfs)
71
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)
82
83 $(pdfs_without_bib): %.pdf: $(srcdir)/%.tex $(srcs) $(figs)
84 cd $(outdir); $(PDFLATEX) $* || true
85 cd $(outdir); makeglossaries $* || true
86 cd $(outdir); $(PDFLATEX) $* || true
87
88 junk += *.aux *.log *.bbl *.blg *.toc *.out
89
90 #------------------------------------------------------------
91 # Other Targets
92
93 clean :
94 rm -rf $(addprefix $(outdir)/, $(junk))
95
96 clean-all: clean
97 rm -rf $(addprefix $(outdir)/, $(pdfs))