Commit b7d6798b authored by Jeroen F.J. Laros's avatar Jeroen F.J. Laros

Added general Makefile and BibTeX database.

parents
# Makefile for LaTeX documents.
#
# LaTeX core binaries.
TEX := latex
BIBTEX := bibtex
GLOSSARY := makeglossaries
# Conversion to other formats.
DVIPS := dvips
PS2PDF := ps2pdf14
LATEX2RTF := latex2rtf
LIBREOFFICE := libreoffice
# Pictures.
DIA := dia
DOT := dot
CONVERT := convert
GNUPLOT := gnuplot
FONTSIZE := 20
# 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 $(foreach I, $(TMP), $(addsuffix .$I, $(SRC))) $(PNG) $(TNP)
distclean: clean
rm -f $(PDF) $(RTF) $(DOC) $(BIB) $(EPS)
release: all clean
# 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) $< $@
%.tnp: %.gnp $(DEP)
echo "set terminal postscript color eps font \"default,$(FONTSIZE)\"" > $@ ;\
cat $< >> $@
%.eps: %.tnp
$(GNUPLOT) < $< > $@
# BibTeX targets (called recursively).
%.blg: %.aux
$(BIBTEX) $(basename $^)
%.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
@
%.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 $@
This diff is collapsed.
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