|
Page personnelle :
|
Christophe Genolini - Memo Makefile
Exemple :Toto.ps : Toto.dvi
dvips Toto.dvi -o Toto.ps
Toto.dvi : Toto.tex Toto.toc \
dessin.eps dessin2.eps
latex Toto.tex
CommentairesLeToto.ps de la première ligne est le fichier but, celui qui doit être contruit.Après le : de la première ligne se trouve la liste des fichiers necéssaires à la construction du fichier
but. La deuxième ligne et les suivantes éventuelles donnent la procédure à utiliser pour construire le fichier but. Attention, elles doivent toujours commencer par une tabulation. S'il y a beaucoup de fichiers après les :, on peut les mettre sur deux lignes, avec un \ à la fin de la première ligne.
all : permet d'en construire plusieurs :all : these.ps thesis.psSi on a besoin que le makefile du répertoire
./../chapitre1 soit exécuté, on utilise :makeRepertoire :
make -C ./../chapitre1
Exemple :NOM=$(wildcard *.tex)
all : $(NOM:.tex=.eps)
%.dvi : %.tex
latex $<
rm $(@:.dvi=.aux)
rm $(@:.dvi=.log)
%.eps : %.dvi
dvips $< -o $@
Commentaires :Dans cet exemple,NOM est une variable. Elle correspond a *.tex(* se dit wildcard).$(NOM:.tex=.eps) signifie : variable NOM dans
laquelle .tex est remplacé par .eps.Donc, la ligne all : $(NOM:.tex=.eps) signifie :
make doit construire un fichiers .eps pour chaque fichier
.tex existant.%.dvi : %.tex donne la méthode générique pour construire
les .dvi à partir des .tex.Dans dvips $< -o $@, $< indique le nom du fichier
situé après les : (dans notre exemple, .dvi). Si plusieurs fichiers sont présents, $<désigne le premier d'entre eux.
$@ est le nom du fichier situé avant les :(dans notre exemple, .eps)
|