Index: /trunk/Makefile
===================================================================
--- /trunk/Makefile	(revision 2)
+++ /trunk/Makefile	(revision 2)
@@ -0,0 +1,407 @@
+####################################################################
+###                                                              ###
+###             Makefile pour  LaTeX                             ###
+###                                                              ###
+####################################################################
+#
+# Copyright 2000-2011 Gabriel Moreau / Vincent Morra
+
+# Il y a encore pas mal de bug dans ce makefile
+# génération du these.ps -> des merdouilles au niveau
+# des figures. Solution: aller sous tmp/ et dvips à la main
+
+QUIX := A.linux
+
+DOCUMENT := these
+
+ARBO_TEX := ./
+
+ARBO_FIG := $(ARBO_TEX)
+
+################################################################
+
+DIR_PROJET := $(shell pwd | perl -p -e 's!/src/?.*$!!!' )
+DIR_TMP    := $(DIR_PROJET)/tmp
+DIR_DOC    := $(DIR_PROJET)/doc
+DIR_PS     := $(DIR_DOC)/ps
+DIR_PDF    := $(DIR_DOC)/pdf
+DIR_HTML   := $(DIR_DOC)/html
+
+################################################################
+
+LATEX  := latex
+BIBTEX := bibtex
+L2H    := latex2html
+PDFTEXPRE := export TEXMFOUTPUT="$(DIR_TMP)";
+PDFTEXPRE += export TEXINPUTS="$(DIR_PROJET)/src:toto:$(DIR_TMP):";
+PDFTEXPRE += export LANG="C";
+PDFTEX := pdflatex
+DVIPS  := dvips 
+RM     := rm -f
+BIN_PROTECT   := chmod u-w .
+BIN_UNPROTECT := chmod u+w .
+
+# NE PAS TOUCHER A PARTIR D'ICI
+################################################################
+
+SRC_FIG     := $(notdir $(foreach dir,$(ARBO_FIG),$(wildcard $(dir)/*.fig)))
+SRC_TEX     := $(notdir $(foreach dir,$(ARBO_TEX),$(wildcard $(dir)/*.tex)))
+SRC_BIB     := biblio.bib
+
+#OBJ_PSTEX   := $(patsubst %.fig,$(DIR_TMP)/%.pstex,  $(SRC_FIG))
+#OBJ_PDFTEX   := $(patsubst %.fig,$(DIR_TMP)/%.pdftex,   $(SRC_FIG))
+OBJ_EPS      := $(patsubst %.fig,$(DIR_TMP)/%.eps,      $(SRC_FIG))
+OBJ_PSTEX_T  := $(patsubst %.fig,$(DIR_TMP)/%.pstex_t,  $(SRC_FIG))
+OBJ_PDF      := $(patsubst %.fig,$(DIR_TMP)/%.pdf,      $(SRC_FIG))
+OBJ_PDFTEX_T := $(patsubst %.fig,$(DIR_TMP)/%.pdftex_t, $(SRC_FIG))
+
+OBJ_BASE    := $(DIR_TMP)/$(DOCUMENT)
+
+
+RERUNTEX := "(There were undefined references|Rerun to get (cross-references|the bars) right)"
+RERUNBIB := "No file.*\.bbl|Citation.*undefined" 
+
+COPYTOC := if test -r $(OBJ_BASE).toc; then cp $(OBJ_BASE).toc $(OBJ_BASE).toc.bak; fi 
+
+vpath %.fig       $(ARBO_FIG)
+vpath %.pstex     $(DIR_TMP)
+vpath %.pstex_t   $(DIR_TMP)
+vpath %.pdftex    $(DIR_TMP)
+vpath %.pdftex_t  $(DIR_TMP)
+vpath %.pdf     . $(DIR_TMP)
+vpath %.eps     . $(DIR_TMP)
+
+.PHONY: all dossier
+.PHONY: doc docps docpdf
+.PHONY: html
+.PHONY: xpdf xdvi gv
+.PHONY: echo clean miniclean help
+.PHONY: figure bibtex
+.PHONY: pdflatex pdf  
+.PHONY: latex    dvi
+.PHONY: protect unprotect
+.PHONY: warning review
+.SUFFIXES:
+
+#--------------------------------------------------------------#
+
+all: dossier doc
+
+dossier: $(DIR_HTML) $(DIR_PS) $(DIR_PDF) $(DIR_TMP)
+	@echo '############################################################'
+	@echo '### Fin de la gestion des dossiers'
+	@echo '############################################################'
+
+#--------------------------------------------------------------#
+
+xpdf: $(DIR_TMP)/$(DOCUMENT).pdf
+	xpdf $(DIR_TMP)/$(DOCUMENT).pdf &
+	@echo '############################################################'
+	@echo '####  Visualisation de $(DOCUMENT)'
+	@echo '############################################################'
+
+xdvi: $(DIR_TMP)/$(DOCUMENT).dvi
+	export XEDITOR="nedit-nc -line %l %f"; \
+	xdvi -bg grey95 $(DIR_TMP)/$(DOCUMENT) &
+	@echo '############################################################'
+	@echo '####  Visualisation de $(DOCUMENT)'
+	@echo '############################################################'
+#	xdvi -hl white $(DIR_TMP)/$(DOCUMENT) &
+
+gv:$(DIR_PS)/$(DOCUMENT).ps 
+	gv $(DIR_PS)/$(DOCUMENT).ps &
+	@echo '############################################################'
+	@echo '####  Visualisation de $(DOCUMENT)'
+	@echo '############################################################'
+
+#--------------------------------------------------------------#
+
+doc: docpdf docps
+	@echo '############################################################'
+	@echo '### Fin de la compilation '
+	@echo '############################################################'
+
+docpdf: $(DIR_PDF)/$(DOCUMENT).pdf
+	@echo '############################################################'
+	@echo '### Fin de la doc pdf'
+	@echo '############################################################'
+
+docps: $(DIR_PS)/$(DOCUMENT).ps 
+	@echo '############################################################'
+	@echo '### Fin de la doc postscript'
+	@echo '############################################################'
+
+html: $(DIR_HTML)
+	latex2html -split 3 -local_icons -no_math -white \
+        -tmp /tmp -dir $(DIR_HTML) -prefix $(DOCUMENT) -antialias $(DOCUMENT).tex
+
+#--------------------------------------------------------------#
+
+warning:
+	@echo '############################################################'
+	@echo '### Liste des warnings dans le documents'
+	@echo '############################################################'
+#	@touch -r $(DOCUMENT).tex $(DIR_TMP)/warning.log
+	@touch -r$(DIR_TMP)/warning.log
+	@touch $(DOCUMENT).tex
+#	@make simple | grep Warning | grep -v Marginpar
+#	@touch  -r $(DIR_TMP)/warning.log $(DOCUMENT).tex
+	@touch  -r $(DIR_TMP)/warning.log 
+
+review:
+	@echo '############################################################'
+	@echo "### Liste des `grep -HnE '\\rev(add|del|mark|par|forget)' -r . | grep -E '^*/.*\.tex\:' | grep -v macro_review.tex | wc -l` reviews dans le documents"
+	@echo '############################################################'
+	@grep -HnE '\\rev(add|del|mark|par|forget)' -r . | grep -E '^*/.*\.tex\:' | grep -v macro_review.tex
+
+#--------------------------------------------------------------#
+
+echo: 
+	@echo '############################################################'
+	@echo '### Liste des variables '
+	@echo '############################################################'
+	@echo SRC_FIG       $(SRC_FIG)
+	@echo SRC_TEX       $(SRC_TEX)
+	@echo OBJ_PSTEX     $(OBJ_PSTEX)
+	@echo OBJ_PSTEX_T   $(OBJ_PSTEX_T)
+	@echo OBJ_PDF       $(OBJ_PDF)
+
+clean: 
+	@echo '############################################################'
+	@echo '####  Nettoyage'
+	@echo '############################################################'
+	$(RM) $(DOCUMENT).aux \
+        $(DOCUMENT).log \
+        $(DOCUMENT).bbl \
+        $(DOCUMENT).blg \
+        $(DOCUMENT).brf \
+        $(DOCUMENT).cb  \
+        $(DOCUMENT).ind \
+        $(DOCUMENT).idx \
+        $(DOCUMENT).ilg \
+        $(DOCUMENT).dvi \
+        $(DOCUMENT).inx \
+        $(DOCUMENT).toc \
+        $(DOCUMENT).out \
+        $(DOCUMENT).lof \
+        $(DOCUMENT).lot \
+        $(DOCUMENT).pdf \
+        $(OBJ_PSTEX) \
+        $(OBJ_PSTEX_T) \
+        $(OBJ_PDF) \
+        $(DIR_PDF)/$(DOCUMENT).pdf \
+        $(DIR_TMP)/*
+
+miniclean: 
+	@echo '############################################################'
+	@echo '####  Nettoyage tres partiel'
+	@echo '############################################################'
+	$(RM)   $(DIR_TMP)/$(DOCUMENT).aux \
+	        $(DIR_TMP)/$(DOCUMENT).toc \
+	        $(DIR_TMP)/$(DOCUMENT).lof
+
+#--------------------------------------------------------------#
+
+figure: $(OBJ_PDF) $(OBJ_PDFTEX_T) $(OBJ_EPS) $(OBJ_PSTEX_T)
+	@echo '############################################################'
+	@echo '####  Fin des figures'
+	@echo '############################################################'
+
+#--------------------------------------------------------------#
+
+protect:
+	$(BIN_PROTECT)
+	@echo '############################################################'
+	@echo '#### Mise en place de la protection du dossier source'
+	@echo '############################################################'
+
+unprotect:
+	$(BIN_UNPROTECT)
+	@echo '############################################################'
+	@echo '#### Suppression de la protection du dossier source'
+	@echo '############################################################'
+
+#--------------------------------------------------------------#
+
+pdflatex: figure
+	@echo '############################################################'
+	@echo '####  Debut du formateur pdflatex'
+	@echo '############################################################'
+	$(BIN_PROTECT)
+	$(PDFTEXPRE) $(PDFTEX) $(DOCUMENT).tex; true
+	$(BIN_UNPROTECT)
+	@echo '############################################################'
+	@echo '####  Fin du formateur pdflatex'
+	@echo '############################################################'
+
+latex: figure
+	@echo '############################################################'
+	@echo '####  Debut du formateur latex'
+	@echo '############################################################'
+	$(BIN_PROTECT)
+	$(PDFTEXPRE) $(LATEX) -src $(DOCUMENT).tex; true
+	$(BIN_UNPROTECT)
+	@echo '############################################################'
+	@echo '####  Fin du formateur latex'
+	@echo '############################################################'
+
+bibtex:
+	@echo '############################################################'
+	@echo '####  Debut de la bibliographie'
+	@echo '############################################################'
+	$(BIBTEX) $(OBJ_BASE)
+	@echo '############################################################'
+	@echo '####  Fin de la bibliographie'
+	@echo '############################################################'
+
+#--------------------------------------------------------------#
+
+help:
+	@echo '############################################################'
+	@echo '# all       -> compilation complete'
+	@echo '# dossier   -> création des dossiers du projet'
+	@echo '# clean     -> nettoyage partiel'
+	@echo '# pdf       -> compilation simple avec dependance -> pdf'
+	@echo '# dvi       -> compilation simple avec dependance -> dvi'
+	@echo '# xpdf      -> visualisation du resultat pdf'
+	@echo '# xdvi      -> visualisation du resultat dvi'
+	@echo '# gv        -> visualisation du resultat ps'
+	@echo '# warning   -> liste de tous les warnings'
+	@echo '# review    -> liste de toutes les remarques'
+	@echo '# pdflatex  -> compilation du source tex -> pdf'
+	@echo '# latex     -> compilation du source tex -> dvi'
+	@echo '# bibtex    -> compilation du source bibtex'
+	@echo '# protect   -> protection du dossier source'
+	@echo '# unprotect -> suppression de la protection'
+	@echo '############################################################'
+
+#--------------------------------------------------------------#
+
+pdf: $(DIR_TMP)/pdf.ok
+
+dvi: $(DIR_TMP)/dvi.ok
+
+$(DIR_TMP)/pdf.ok: $(DOCUMENT).tex $(SRC_TEX) $(OBJ_PDF) $(OBJ_PDFTEX_T)
+	make pdflatex
+	touch $<
+
+$(DIR_TMP)/dvi.ok: $(DOCUMENT).tex $(SRC_TEX) $(OBJ_EPS) $(OBJ_PSTEX_T)
+	make latex
+	touch $<
+
+################################################################
+
+$(DIR_TMP)/$(DOCUMENT).pdf: $(DOCUMENT).tex $(SRC_BIB) $(SRC_TEX) $(OBJ_PDF) $(OBJ_PSTEX_T)
+	$(COPYTOC)
+	make pdflatex
+	egrep -c $(RERUNBIB) $(OBJ_BASE).log && (make bibtex;$(COPYTOC); make pdflatex); true
+	egrep $(RERUNTEX) $(OBJ_BASE).log    && ($(COPYTOC); make pdflatex); true
+	egrep $(RERUNTEX) $(OBJ_BASE).log    && ($(COPYTOC); make pdflatex); true
+	if cmp -s $(OBJ_BASE).toc $(OBJ_BASE).toc.bak; then echo 'end'; else make pdflatex; fi
+	$(RM) $(OBJ_BASE).toc.bak
+#	egrep -i "(Reference|Citation).*undefined" $(OBJ_BASE).log; true
+# Display relevant warnings
+
+################################################################
+
+################################################################
+
+$(DIR_TMP)/$(DOCUMENT).dvi: $(DOCUMENT).tex $(SRC_BIB) $(SRC_TEX) $(OBJ_EPS) $(OBJ_PSTEX_T)
+	$(COPYTOC)
+	make latex
+	egrep -c $(RERUNBIB) $(OBJ_BASE).log && (make bibtex;$(COPYTOC); make latex); true
+	egrep $(RERUNTEX) $(OBJ_BASE).log    && ($(COPYTOC); make latex); true
+	egrep $(RERUNTEX) $(OBJ_BASE).log    && ($(COPYTOC); make latex); true
+	if cmp -s $(OBJ_BASE).toc $(OBJ_BASE).toc.bak; then echo 'end'; else make latex; fi
+	$(RM) $(OBJ_BASE).toc.bak
+#	egrep -i "(Reference|Citation).*undefined" $(OBJ_BASE).log; true
+# Display relevant warnings
+
+################################################################
+
+#$(DIR_PS)/%.ps: $(DIR_PDF)/%.pdf
+#	pdftops $< $@
+
+
+$(DIR_PS)/%.ps: $(DIR_TMP)/%.dvi 
+	$(PDFTEXPRE) 
+	dvips $< -o $@
+
+$(DIR_PDF)/%.pdf: $(DIR_TMP)/%.pdf
+	echo ---
+	rm -f $@
+	echo ---
+	cp $< $@
+#	ln -f $< $@
+#       je sais pas pourquoi mais le lien ne marche pas bien avec le make
+
+################################################################
+# figure
+
+#$(DIR_TMP)/%.pdf: $(DIR_TMP)/%.pstex $(DIR_TMP)/%.pstex_t
+#	ps2pdf  $<  $@
+#	cd $(DIR_TMP); \
+#	sed 's/\.pstex/.pdf/' $*.pstex_t > $*.tmp; \
+#	mv $*.tmp $*.pstex_t; \
+#	sed 's/\\epsfig{file=/\\includegraphics{/' $*.pstex_t > $*.tmp; \
+#	mv $*.tmp $*.pstex_t  
+
+$(DIR_TMP)/%.pstex: %.fig
+	fig2dev -L pstex $< $@
+
+$(DIR_TMP)/%.eps: %.fig
+	fig2dev -L pstex $< $@
+
+$(DIR_TMP)/%.pstex_t: %.fig $(DIR_TMP)/%.pstex
+	fig2dev -L pstex_t -p $* $< $@
+#	fig2dev -L pstex_t -E 1 -p $* $< $@
+
+#$(DIR_TMP)/%.pstex_t: $(DIR_TMP)/%.pstex %.fig 
+#	fig2dev -L pstex_t -p $^ $@
+
+ifeq "$(QUIX)" "A.linux"
+$(DIR_TMP)/%.pdftex: %.fig
+	fig2dev -L pdftex $< $@
+endif
+ifeq "$(QUIX)" "A.darwin"
+$(DIR_TMP)/%.pdftex: %.fig
+	fig2dev -L pstex $< $(patsubst %.pdftex,%.pstex,$@)
+	ps2pdf $(patsubst %.pdftex,%.pstex,$@)  $@
+endif
+
+ifeq "$(QUIX)" "A.linux"
+$(DIR_TMP)/%.pdf: %.fig
+	fig2dev -L pdftex $< $@
+endif
+ifeq "$(QUIX)" "A.darwin"
+$(DIR_TMP)/%.pdf: %.fig
+	fig2dev -L pstex $< $(patsubst %.pdf,%.eps,$@)
+	ps2pdf $(patsubst %.pdf,%.eps,$@)  $@
+endif
+
+$(DIR_TMP)/%.pdftex_t: %.fig $(DIR_TMP)/%.pdftex
+	fig2dev -L pdftex_t -p $* $< $@
+#	fig2dev -L pdftex_t -E 1 -p $* $< $@
+
+################################################################
+# dossier
+
+$(DIR_DOC):
+	mkdir -p $@
+	chmod ugo+rx $@
+
+$(DIR_TMP):
+	mkdir -p $@
+	chmod ugo+rwx $@
+
+$(DIR_PS): $(DIR_DOC)
+	mkdir -p $@
+	chmod ugo+rx $@
+
+$(DIR_PDF): $(DIR_DOC)
+	mkdir -p $@
+	chmod ugo+rx $@
+
+$(DIR_HTML): $(DIR_DOC)
+	mkdir -p $@
+	chmod ugo+rx $@
