#
# Makefile pour les documents LaTeX.
#
# Copyright (C) 2004 Nicolas Schodet
#
# Libre à vous d'utiliser ces fichier. Ces fichier sont distribués
# dans l'espoir d'être utiles, mais SANS AUCUNE GARANTIE, pas même celle de
# correspondre à un usage particulier.
#
# Contact :
#     E-Mail: <contact at ni.fr.eu.org>
#

# Ici, on ne compile rien, alors on évite les bétises.
CC = echo
CXX = echo

# Le nom du document.
DOC = modele

# Le répertoire des sources, et celui des images.
SRCDIR = src
IMGDIR = img

# Par default, on crée le fichier ps.
all: ps

# Ici, la liste des fichier qui seront inclus dans le document. Par exemple
# des sources C++. SRCFILES contients des fichier dans SCRDIR, DEPFILES
# contient des fichiers dans le répertoire courant.
SRCFILES = hello.c
DEPFILES =

# Ici, des fichier inclus dans le document mais généré par ce Makefile. Par
# exemple la sorti d'un programme.
GENFILES = hello.out

# Ici les règles pour générer les GENFILES.
$(SRCDIR)/hello:
	echo "Aller dans le répertoire $(SRCDIR) pour compiler hello."
	false

hello.out: $(SRCDIR)/hello
	$< > $@

# Pour les images. LaTeX ne connais que le eps, mais c'est pas grave, on vas
# convertir automatiquement.
IMGFILES = tux

# Fichiers xfig en sortie combinée PS/LaTeX ou PDF/LaTeX.
FIGFILES = triangle

# Voici la règle de conversion des images, notez la dernière qui utilise un
# programme pour produire des images.
%.eps: $(IMGDIR)/%.jpeg
	convert $< eps:$@

%.eps: $(IMGDIR)/%.jpg
	convert $< eps:$@

%.eps: $(IMGDIR)/%.png
	convert $< eps:$@

%.eps: $(IMGDIR)/%.bmp
	convert $< eps:$@

%.eps: $(IMGDIR)/%.fig
	fig2dev -L eps $< $@

%.pstex: $(IMGDIR)/%.fig
	fig2dev -L pstex $< $@

%.pstex_t: $(IMGDIR)/%.fig
	fig2dev -L pstex_t -p $(@:%.pstex_t=%.pstex) $< $@

%.pdf: $(IMGDIR)/%.fig
	fig2dev -L pdftex $< $@

%.pdf_t: $(IMGDIR)/%.fig
	fig2dev -L pdftex_t -p $(@:%.pdf_t=%.pdf) $< $@

#%.cont.eps: $(IMGDIR)/%.bmp $(SRCDIR)/proj_contours
#	$(SRCDIR)/proj_contours $< $(@:%.cont.eps=%.cont.bmp) && \
#	convert $(@:%.cont.eps=%.cont.bmp) eps:$@ && \
#	rm $(@:%.cont.eps=%.cont.bmp)


##################

dvi: $(DOC).dvi
ps: $(DOC).ps
pdf: $(DOC).pdf

EPSFILES = $(IMGFILES:%=%.eps)
PSTEXFILES = $(FIGFILES:%=%.pstex) $(FIGFILES:%=%.pstex_t)

PNGFILES = $(IMGFILES:%=$(IMGDIR)/%.png)
PDFTEXFILES = $(FIGFILES:%=%.pdf) $(FIGFILES:%=%.pdf_t)

PSDEP = $(SRCFILES:%=$(SRCDIR)/%) $(DEPFILES) $(GENFILES) $(EPSFILES) $(PSTEXFILES)
PDFDEP = $(SRCFILES:%=$(SRCDIR)/%) $(DEPFILES) $(GENFILES) $(PNGFILES) $(PDFTEXFILES)
RMDEP = $(GENFILES) $(EPSFILES) $(PSTEXFILES) $(PDFTEXFILES)
	
%.ps: %.dvi
	dvips -o $@ $<

# This is taken from Doxygen :
$(DOC).dvi: $(DOC).tex $(PSDEP)
	echo "Running latex..."
	latex $<
	echo "Rerunning latex..."
	latex $<
	latex_cnt=5 ;\
	while egrep -s 'Rerun (LaTeX|to get cross-ref)' ${<:%.tex=%.log} && \
		[ $$latex_cnt -gt 0 ] ;\
	do \
		echo "Rerunning latex...." ;\
		latex $< ;\
		latex_cnt=`expr $$latex_cnt - 1` ;\
	done

$(DOC).pdf: $(DOC).tex $(PDFDEP)
	echo "Running pdflatex..."
	pdflatex $<
	echo "Rerunning pdflatex..."
	pdflatex $<
	latex_cnt=5 ;\
	while egrep -s 'Rerun (LaTeX|to get cross-ref)' ${<:%.tex=%.log} && \
		[ $$latex_cnt -gt 0 ] ;\
	do \
		echo "Rerunning pdflatex...." ;\
		pdflatex $< ;\
		latex_cnt=`expr $$latex_cnt - 1` ;\
	done

clean:
	rm -f $(DOC).aux $(DOC).log $(DOC).toc $(DOC).out $(DOC).dvi $(DOC).ps \
	$(DOC).pdf $(RMDEP)
