1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
#
# Makefile for LaTeX projects
# Author: Stanislav Kruchinin <stanislav.kruchinin@gmail.com>
#
TARGET ?= thesis
BIBFILE ?= thesis.bib
ARCH ?= 7z
BIBTEX ?= bibtex8
DVIPS ?= dvips
L2H ?= latex2html
L2RTF ?= latex2rtf
LATEX ?= latex
PDFLATEX ?= pdflatex
PS2PDF ?= gs
PSBOOK ?= psbook
PSNUP ?= psnup
ARCHEXT ?= zip
ARCHFLAGS ?= a -t$(ARCHEXT)
ARCHIVE := $(TARGET).$(ARCHEXT)
BIBTEXFLAGS ?= -H -c cp1251
DVIPSFLAGS ?= -P pdf -t A4 -z
L2HFLAGS ?= -dir html -iso_language RU.RU -split 3 -short_index \
-numbered_footnotes -white -antialias -html_version 4.0
L2RTFFLAGS ?= -F -M12 -i russian
LATEXFLAGS ?= --src-specials
PS2PDFFLAGS ?= -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -g4960x7016 -r600 \
-dCompatibilityLevel=1.2
PSNUPFLAGS ?= -2 -pA4
PDFLATEXFLAGS ?= --shell-escape --synctex=1
CLEXT ?= *.aux *.toc *.idx *.ind *.ilg *.log *.out *.lof *.lot *.lol \
*.bbl *.blg *.bak *.dvi *.ps *.pdf *.synctex *.synctex.gz *.run.xml *.bcf
CLFILES ?= $(CLEXT) $(ARCHIVE)
SRCFILES ?= *
pdf: $(TARGET).pdf
pdf_2on1: $(TARGET)_2on1.pdf
pdf_book: $(TARGET)_book.pdf
dvi: $(TARGET).dvi
clean:
-rm -f $(CLFILES)
.help:
@echo " dvi build DVI" ;\
echo " figclean clean output files in figures directory" ;\
echo " html convert DVI to HTML" ;\
echo " pdf (default) build PDF" ;\
echo " pdf_2on1 build PDF with two A5 pages on one A4 ordered by number" ;\
echo " pdf_book build PDF booklet (two A5 on A4)" ;\
echo " ps build PS" ;\
echo " ps_2on1 build PS with two A5 pages on one A4 ordered by number" ;\
echo " ps_book build PS booklet (two A5 on A4)" ;\
echo " rtf convert DVI to RTF" ;\
echo " srcdist build source distribution" ;\
$(MAKE) -s -C fig help
html: $(TARGET).dvi
$(L2H) $(L2HFLAGS) $(TARGET).tex
ps: $(TARGET).ps
ps_2on1: $(TARGET)_2on1.ps
ps_book: $(TARGET)_book.ps
rtf: $(TARGET).rtf
srcdist: clean figclean
$(ARCH) $(ARCHFLAGS) $(ARCHIVE) $(SRCFILES)
$(TARGET).dvi: *.tex *.bib
@$(LATEX) $(TEXFLAGS) $(TARGET).tex ;\
if [ -f $(BIBFILE) ] ; then \
for f in *.aux; do $(BIBTEX) $(BIBTEXFLAGS) $${f%.*} ; done ;\
else \
echo Warning: Bibliography file does not exist ;\
fi ;\
$(LATEX) $(TEXFLAGS) $(TARGET).tex ;\
$(LATEX) $(TEXFLAGS) $(TARGET).tex
$(TARGET).ps: $(TARGET).dvi
$(DVIPS) $(DVIPSFLAGS) $^
$(TARGET)_2on1.ps: $(TARGET).ps
$(PSNUP) $(PSNUPFLAGS) $^ > $@
$(TARGET)_book.ps: $(TARGET).ps
$(PSNUP) $(PSNUPFLAGS) $^ > $@ ;\
$(PSBOOK) $^ | $(PSNUP) -2 > $@
$(TARGET).pdf: *.tex *.bib
@$(PDFLATEX) $(PDFLATEXFLAGS) $(TARGET).tex ;\
if [ -f $(BIBFILE) ] ; then \
for f in *.aux ; do $(BIBTEX) $(BIBTEXFLAGS) $${f%.*} ; done ;\
else \
echo "Warning: Bibliography file does not exist" ;\
fi ;\
$(PDFLATEX) $(PDFLATEXFLAGS) $(TARGET).tex ;\
$(PDFLATEX) $(PDFLATEXFLAGS) $(TARGET).tex
$(TARGET)_2on1.pdf: $(TARGET)_2on1.ps
$(PS2PDF) $(PS2PDFFLAGS) -sOutputFile=$@ -c save pop -f $^
$(TARGET)_book.pdf: $(TARGET)_book.ps
$(PS2PDF) $(PS2PDFFLAGS) -sOutputFile=$@ -c save pop -f $^
$(TARGET).rtf: $(TARGET).dvi
$(L2RTF) $(L2RTFFLAGS) -a $(TARGET).aux -b $(TARGET).bbl $(TARGET).tex
bmtoeps epstoeps epstopdf fixbb optimize pdftopng256 pdftotiffg4:
@$(MAKE) -C fig $@
figclean:
@$(MAKE) -C fig clean
|