# GNUmakefile,  2002 Djalil Chafa.

# Adaptez ces variables  votre configuration

BIBTEX=bibtex
PS2PDF=ps2pdf
DVIPS=dvips -P600dpi -t a4
BZ=bz2
BZIP=bzip2 -9f
LATEX=latex
PDFLATEX=pdflatex
PGP=gpg -a -s --detach-sign -o
RM=rm
SIGNEXT=sign
TAR=tar chf
THUMBPDF=thumbpdf

# Ce qui suit ne devrait pas ncessiter de modification 

COPYRIGHT=$(shell cat COPYRIGHT)
VER:=$(shell cat VERSION)
DATE:=$(shell cat DATE)
NOM=agregation
NOML="Manuel de modlisation stochastique pour l\'agrgation de mathmatiques"
MAKEFILENAME=GNUmakefile
OUTPUTS=dvi ps pdf
INTERMED=log out aux toc ind bbl blg lol lof lot ilg idx inc rel brf tpt
CODESDIR=./pgm
FIGSDIR=./fig
TXTSDIR=./textes
TEXINPUTS:=$(CODESDIR)//:$(FIGSDIR)//:$(TXTSDIR):$(TEXINPUTS)
export TEXINPUTS
INC_VERDATE:=\
'\newcommand{\COPYRIGHT}{'"$(shell cat COPYRIGHT)"'}'\
'\newcommand{\DATE}{\texttt{'"$(shell cat DATE)"'}}'\
'\newcommand{\VERSION}{\textsc{'"$(shell cat VERSION)"'}}'\
'\newcommand{\VERDATE}{\textsc{'"$(shell cat VERSION)"'}-'"$(shell cat DATE)"'}'\


# Variables concernant les sources statiques

#TEX=$(wildcard *.tex) $(shell kpsewhich frenchb.cfg macros.tex) 
TEX=frenchb.cfg agregation.bib $(wildcard *.tex)
CODE=$(wildcard $(CODESDIR)/*) 
IMG_EPS=$(wildcard $(FIGSDIR)/eps/*.eps)
IMG_PDF=$(wildcard $(FIGSDIR)/pdf/*.pdf)
MISC1= $(shell kpsewhich smfalpha.bst)
MISC2= AFAIRE COPYRIGHT LISEZMOI VERSION DATE GFDL ERREURS \
       $(wildcard $(FIGSDIR)/*) $(MAKEFILENAME)
SRC=$(IMG_PS) $(IMG_PDF) $(MISC1) $(MISC2) $(TEX) $(CODE)

# Dpendances des rgles

DEP_PS=$(IMG_EPS) $(MAKEFILENAME) $(MISC1) $(TEX) $(CODE)
DEP_PDF=$(IMG_PDF) $(MAKEFILENAME) $(MISC1) $(TEX) $(CODE)
DEP_ARCH=$(SRC) $(NOM).ps $(NOM).pdf
DEP_SIGN=$(NOM)_$(VER).tar.$(BZ).$(SIGNEXT)


# Variables spciales

.PHONY= arch $(OUTPUTS) sign help clean cleanall
.PHONY: $(.PHONY)
.SUFFIXES:
.INTERMEDIATE: $(INTERMDED:%=$(NOM).%)

# Rgles phoniques

help:
	@echo
	@echo " Rgles GNU make : $(.PHONY)."
	@echo 
	@echo " $(NOML)."
	@echo " Version $(VER), rendue publique le $(DATE)." 
	@echo " $(COPYRIGHT)."
	@cat LISEZMOI

dvi: $(NOM).dvi
ps: $(NOM).ps
pdf: $(NOM).pdf
arch: $(NOM)_$(VER).tar.$(BZ) 
sign: $(DEP_SIGN)

clean:
	@$(RM) -f $(INTERMED:%=$(NOM).%) thb*.png *~ *.aux *.inc
	@$(RM) -f $(CODESDIR)/*~ $(FIGSDIR)/*~ 
	@$(RM) -rf auto

cleanall: clean
	@$(RM) -f *.{$(GZ),tar,$(SIGNEXT),dvi,ps,pdf} 

# Rgles gnriques avec motifs

%.$(SIGNEXT): %
	@$(PGP) $@ $<

%.$(BZ): %
	@$(BZIP) $<

# Rgles bases sur des fichiers cibles

$(NOM)_$(VER).tar: $(DEP_ARCH)
	@$(TAR) $@ $?

$(NOM).ps: $(NOM).dvi
	@$(DVIPS) $(NOM).dvi -o $(NOM).ps

$(NOM).dvi: $(DEP_PS)
	@echo $(INC_VERDATE) > VERDATE.inc
	@$(LATEX) $(NOM)
	-@$(BIBTEX) $(NOM)
	@$(LATEX) $(NOM)
	@$(LATEX) $(NOM)
	@$(LATEX) $(NOM)
	@$(LATEX) $(NOM)
	@$(DVIPS) $(NOM).dvi -o $(NOM).ps 2>/dev/null

$(NOM).pdf: $(DEP_PDF)
	@echo $(INC_VERDATE) > VERDATE.inc
	@$(PDFLATEX) $(NOM)
	-@$(BIBTEX) $(NOM)
	@$(PDFLATEX) $(NOM)
	@$(PDFLATEX) $(NOM)
	@$(PDFLATEX) $(NOM)
	@$(THUMBPDF) $(NOM).pdf
	@$(PDFLATEX) $(NOM)

# Vieux truc inutile.
#$(NOM).pdf: $(NOM).ps
#	@$(PS2PDF) $<

# Fin du fichier.

