# copyright Rene Liebscher # adopted by Georg Martius FILES = dipl BIBFILES = literature.bib LATEX = echo "q" | latex -interaction=errorstopmode DVIPS = dvips -D 600 PDFLATEX = echo "x" | pdflatex -interaction=errorstopmode BIBTEX = bibtex PLOT = gnuplot FIG2EPS = fig2dev -L eps FIG2PDF = fig2dev -L pdf FIG2PNG = fig2dev -L png PS2EPS = ps2epsi GROFF = groff GEQN = eqn GPIC = pic OBJ2EPS = tgif -print -eps -color EPS2PDF = epstopdf PNG2EPS = convert TIFF2PNM = tifftopnm PNM2PNG = pnmtopng -verbose .SUFFIXES: .dem .plt .fig .pic .tif .pnm .png .dvi .ps .epsi .obj .eps .tex .idx .ind .aux .bbl .pdf .PRECIOUS: *.aux *.bbl *.ind *.idx .plt.pdf: echo "set terminal pdf enhanced" >helper.plt echo "set output '$*.pdf'">>helper.plt $(PLOT) helper.plt $*.plt .plt.eps: echo "set terminal postscript color" >helper.plt echo "set output '$*.eps'">>helper.plt $(PLOT) helper.plt $*.plt .fig.eps: $(FIG2EPS) $*.fig $*.eps .fig.pdf: $(FIG2PDF) $*.fig $*.pdf .fig.png: $(FIG2PNG) $*.fig $*.png .png.eps: $(PNG2EPS) $*.png $*.eps #.plt.pic: # echo "set terminal postscript eps color" >helper.plt # echo "set output '$*.pic'">>helper.plt # $(PLOT) helper.plt $*.plt .pic.ps: cat $*.pic | $(GPIC) | $(GEQN) -d '$$$$' -Tps | $(GROFF) -Tps >$*.ps # line $*.pic | hline | $(GPIC) | $(GEQN) -d '$$$$' -Tps | $(GROFF) -Tps >$*.ps .ps.epsi: $(PS2EPS) $*.ps $*.epsi .epsi.eps: cat $*.epsi >$*.eps #remove_preview $*.epsi >$*.eps ; touch dummy #.plt.eps: #($(PLOT) $*.plt;line $*.pic | hline | $(GPIC) | $(GEQN) -d '$$$$' -Tps | \ #$(GROFF) -Tps >$*.ps ; rm $*.pic ; $(PS2EPS) $*.ps $*.epsi ; rm $*.ps ; \ #remove_preview $*.epsi >$*.eps ; rm $*.epsi ) >/dev/null & .obj.eps: $(OBJ2EPS) $*.obj .eps.pdf: $(EPS2PDF) $*.eps .tif.pnm: $(TIFF2PNM) $*.tif >$*.pnm .pnm.png: $(PNM2PNG) -force $*.pnm >$*.png .aux.bbl: $(BIBTEX) $* || true .tex.pdf: $*.bbl $*.gls.bbl ${TEXFILES} $(PDFLATEX) $* && $(PDFLATEX) $* && $(PDFLATEX) $* .tex.aux: @make latexerrors.pl $(LATEX) $* | latexerrors.pl @echo .tex.dvi: @make latexerrors.pl $(LATEX) $* | latexerrors.pl @echo .dvi.ps: $(DVIPS) -o $*.ps $*.dvi .idx.ind: makeindex $*.idx .tex.idx: ( $(LATEX) $* || true ) TEXFILES = $(shell [[ -f TEXFILES ]] && cat TEXFILES) PSGRAPHICS = $(shell [[ -f PSGRAPHICS ]] && cat PSGRAPHICS) PDFGRAPHICS = $(shell [[ -f PDFGRAPHICS ]] && cat PDFGRAPHICS) MAINFILES = $(addsuffix .tex, $(FILES)) PSFILES = $(addsuffix .ps, $(FILES)) DVIFILES = $(addsuffix .dvi, $(FILES)) PDFFILES = $(addsuffix .pdf, $(FILES)) BBLFILES = $(addsuffix .bbl, $(FILES)) all: make update make ps complete: make update @touch $(MAINFILES) make ps @touch $(MAINFILES) make ps @touch $(MAINFILES) make $(BBLFILES) make pdf @touch $(MAINFILES) make pdf ps: TEXFILES PSGRAPHICS ${PSFILES} pdf: TEXFILES PDFGRAPHICS $(BBLFILES) ${PDFFILES} clean: rm -f $(addsuffix .dvi, $(FILES)) rm -f $(addsuffix .log, $(FILES)) rm -f "TEXFILES" rm -f "PSGRAPHICS" rm -f "PDFGRAPHICS" update: rm -f "TEXFILES" rm -f "PSGRAPHICS" rm -f "PDFGRAPHICS" @make TEXFILES PSGRAPHICS PDFGRAPHICS @make $(BBLFILES) ${PSFILES}: ${DVIFILES} ${DVIFILES}: $(BIBFILES) ${PSGRAPHICS} ${TEXFILES} ${PDFFILES}: $(BIBFILES) ${PDFGRAPHICS} ${TEXFILES} #bibtex.tex: literature.bib # grep '@' < $< | sed -e 's/@[^\{]*/\\cite/' | tr ',' '}' > bibtex.tex #glosstex.tex: glossar.bib # grep '@' glosstex.tex TEXFILES: Makefile @echo "Update TEXFILES" @find . -name '*.tex' | tr '\n' ' ' | cat > TEXFILES PSGRAPHICS: Makefile @echo "Update PSGRAPHICS" @grep '\\includegraphics[:space:]*{.*}' ${TEXFILES} | sed -e 's/.*\\includegraphics[:space:]*{\([^}]*\)}.*/{\1}/' | sort | uniq | sed -e 's/{\([^.]*\)}/\1.eps/' | tr '{}\n' ' ' | cat > PSGRAPHICS PDFGRAPHICS: Makefile @echo "Update PDFGRAPHICS" @grep '\\includegraphics[:space:]*{.*}' ${TEXFILES} | sed -e 's/.*\\includegraphics[:space:]*{\([^}]*\)}.*/{\1}/' | sort | uniq | sed -e 's/{\([^.]*\)}/\1.pdf/' | tr '{}\n' ' ' | cat > PDFGRAPHICS ##!'todo' scans all tex files for todos todo: grep -in "^[^%]*\\Todo{" ${TEXFILES} latexerrors.pl: Makefile @echo "Create latexerrors.pl from Makefile" @grep "^#>.*" Makefile | sed -e "s/^#>\(.*\)/\1/" > latexerrors.pl @chmod u+x latexerrors.pl ## perl -e 'foreach $f (<>){ print "#>" . $f;}' < latexerrors.pl #>#!/usr/bin/perl #>$rv=0; #>@LINES=<>; #>@stack; # to hold the parenthese and the files since we are parsing a tree ((a.tex ...(b.tex ...) ... )) #> #>foreach my $l(@LINES){ #> $firstopen=1; #> foreach my $p (split('\(',$l)){ #> if(!$firstopen){ #> push @stack, '#'; #> } #> $firstclose=1; #> foreach my $q (split('\)',$p)){ #> if(!$firstclose){ #> $top = pop @stack; # pop the '(' and a file if there #> if(!($top eq '#')){ #> # print "Close: $top\n"; #> pop @stack; # assume to read '#' #> } #> } #> #> if( $q =~ /.tex/){ #> my @WORDS=split(' ',$l); #> foreach my $m (@WORDS){ #> if($m =~ /\(([^\(]+?\.tex)/ ){ #> $f = $1; #> chomp $f; #> push @stack, $f; #> print "$f\n"; #> } #> } #> } #> if( $q =~ /^LaTeX Warning: (.*)/){ print "Warning: $1\n"; } #> $error=$1 if( $l =~ /^! (.*)/); #> if( $q =~ /^l.(\d+)(.*)/){ #> $line=$1; #> $error=$error . "\n " . $2; #> $errorfound=1; #> $rv++; #> } elsif ($errorfound){ #> if($q =~ /^\s+(.*)/ ) { #> $error=$error . "\n" . $q; #> }else{ #> $file = lastfile(@stack); #> print "$file:$line: $error\n"; #> $errorfound = 0; #> } #> } #> $firstclose=0 if($firstclose); #> #> } #> $firstopen=0 if($firstopen); #> } #> # print $l; #>} #> #>sub lastfile{ #> do{ #> $top = pop @_; #> } while($top eq '#'); #> return $top; #>} #>exit $rv;