Commit 5fa6bb8d authored by Jeroen F.J. Laros's avatar Jeroen F.J. Laros

Switched to general Makefile.

parent f4cff59e
# Makefile
# Makefile for LaTeX documents.
#
LATEX = latex
BIBTEX = bibtex
DVIPS = dvips
PS2PDF = ps2pdf14
# LaTeX core binaries.
TEX := latex
BIBTEX := bibtex
GLOSSARY := makeglossaries
PDF = $(addsuffix .pdf, $(basename $(shell grep -l '\\begin{document' *.tex)))
BIB = $(addsuffix .bbl, $(basename $(shell grep -l '\\nocite{\|\\cite{' *.tex)))
# Conversion to other formats.
DVIPS := dvips
PS2PDF := ps2pdf14
LATEX2RTF := latex2rtf
LIBREOFFICE := libreoffice
# Pictures.
DIA := dia
DOT := dot
CONVERT := convert
GNUPLOT := gnuplot
FONTSIZE := 20
all: $(BIB) $(PDF)
# Load the configuration file.
-include config.mkc
# Find the input files.
SRC := $(basename $(shell grep -l '\\begin{document}' *.tex))
DIA_PIC := $(basename $(shell ls *.dia))
GNP := $(basename $(shell ls *.gnp))
PIC_EXT := dot gif jpg png ppm svg xcf
PIC := $(foreach I, $(PIC_EXT), $(basename $(shell ls *.$I)))
#PIC_EPS := $(addsuffix .eps, $(PIC))
# Output.
PDF := $(addsuffix .pdf, $(SRC))
RTF := $(addsuffix .rtf, $(SRC))
DOC := $(addsuffix .docx, $(SRC))
# Temporary files.
TMP := blg log nav out snm toc dvi aux idx vrb ps glg glo ist
PNG := $(addsuffix .png, $(DIA_PIC))
TNP := $(addsuffix .tnp, $(GNP))
# Semi-permanent files.
BIB := $(addsuffix .bbl, $(SRC))
GLS := $(addsuffix .gls, $(GLS))
EPS := $(addsuffix .eps, $(DIA_PIC) $(GNP) $(PIC))
# Do not delete the semi-permanent files automatically.
.PRECIOUS: $(BIB) $(GLS) $(EPS)
# Disable built-in rules.
.SUFFIXES:
# Targets that are not associated with files.
.PHONY: all rtf doc clean distclean release
# Main targets
all: $(PDF)
rtf: $(RTF)
doc: $(DOC)
clean:
rm -f *.blg *.log *.nav *.out *.snm *.toc *.dvi *.aux
rm -f $(foreach I, $(TMP), $(addsuffix .$I, $(SRC))) $(PNG) $(TNP)
distclean: clean
rm -f $(PDF) $(RTF) $(DOC) $(BIB) $(EPS)
release: all clean
distclean: clean
rm -f $(BIB) $(PDF)
%.aux: %.tex
$(LATEX) $^
rm $(addsuffix .dvi, $(basename $^))
# Picture targets.
%.png: %.dia
$(DIA) -e $@ -t png-libart $<
%.eps: %.png
$(CONVERT) $< $@
%.eps: %.dot
$(DOT) -Teps -o $@ $<
%.eps: %.gif
$(CONVERT) $< $@
%.eps: %.jpg
$(CONVERT) $< $@
%.eps: %.ppm
$(CONVERT) $< $@
%.eps: %.svg
$(CONVERT) $< $@
%.eps: %.xcf
$(CONVERT) $< $@
%.bbl: %.aux
%.tnp: %.gnp $(DEP)
echo "set terminal postscript color eps font \"default,$(FONTSIZE)\"" > $@ ;\
cat $< >> $@
%.eps: %.tnp
$(GNUPLOT) < $< > $@
# BibTeX targets (called recursively).
%.blg: %.aux
$(BIBTEX) $(basename $^)
%.dvi: %.tex
$(LATEX) $^
$(LATEX) $^
$(LATEX) $^
%.bbl: %.blg
@
# Glossary targets (called recursively).
%.glg: %.aux
$(GLOSSARY) $*
%.glo: %.glg
@
%.ist: %.glg
@
%.gls: %.aux %.glg %.glo %.ist
@
# LaTeX build targets.
%.aux: %.tex $(EPS)
$(TEX) $< ;\
if (grep -s "LaTeX Warning: Citation" $*.log); then \
$(MAKE) $*.bbl ;\
$(TEX) $< ;\
fi ;\
if (grep -s "No file $*.gls" $*.log); then \
$(MAKE) $*.gls ;\
fi ;\
while (grep -s "Rerun to get cross-references right." $*.log); do \
$(TEX) $< ;\
done ;\
while (grep -s "LaTeX Warning: There were undefined references" $*.log); do \
$(TEX) $< ;\
done ;\
while (grep -s "Package rerunfilecheck Warning: File" $*.log); do \
$(TEX) $< ;\
done
%.log: %.aux
@
%.ps: %.dvi
$(DVIPS) $^ -o $@
%.dvi: %.aux
@
%.idx: %.aux
@
%.nav: %.aux
@
%.out: %.aux
@
%.snm: %.aux
@
%.toc: %.aux
@
%.vrb: %.aux
@
%.ps: %.dvi %.log %.aux %.idx %.nav %.out %.snm %.toc %.vrb
$(DVIPS) $< -o $@
# Output targets.
%.pdf: %.ps
$(PS2PDF) $^
%.rtf: %.tex %.dvi %.log %.aux %.idx %.nav %.out %.snm %.toc %.vrb
$(LATEX2RTF) -o $@ $<
%.docx: %.rtf
$(LIBREOFFICE) --headless --invisible --convert-to docx $< -o $@
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment