Salut Léo et bonjour à tous,
justement je me demandais si Make accordait une réelle importance à
l'indentation. J'ai configuré mon Vim pour insérer 4 espaces au lieu
d'une tab (plus standard), mais peut être que j'ai mal fait... si
quelqu'un a plus de précisions sur le sujet :)
Tout à fait : l'outil make accorde la plus grande importance à
l'écriture du Makefile au niveau de ce que tu appelles l'indentation :
je dirais plus au niveau "rubrique".
- Si une ligne ne commence pas par une tabulation il s'agit de
déclaration de variables (ou constantes) et/ou d'une cible dans le Makefile.
- Si une ligne commence par une tabulation (attention j'ai bien dit une
tabulation et pas plusieurs espaces) il s'agit d'une ligne d'exécution
d'une commande (en générale dans une cible).
Petit test entre geek :) :
gvim (trés bon éditeur, n'en déplaise a certains "puristes") sait
d'ailleurs très bien faire la différence : faites le test : écrire un
Makefile dans gvim avec une cible (.o:.c par exemple) et à la ligne
suivante écrivez votre ligne de commande (par exemple un "@cat
/etc/issue") essayer en mettant en début de ligne des espaces puis
essayer avec une seule tabulation : gvim effectue une coloration
syntaxique différente ! le Makefile avec des espace en début d'une ligne
de commande ne fonctionnera pas.
En règle général une cible d'un Makefile s'écrit :
cible: dépendances
[TAB]Ligne de commande
Un très bon tutoriel (en français en plus) que je conseil vivement :
http://gl.developpez.com/tutoriel/outil/makefile/Makefile.pdf
Attention également au variable dans un Makefile : en général $(variable).
Si on écrit en shell par exemple un :
for i in `find /tmp | grep txt` ; do echo $i ; done
on écrira dans un Makefile cette commande de la manière suivante :
for i in `find /tmp | grep txt` ; do echo $$i ; done
Je suis amené régulièrement à écrire des Makefile parfois assez
complexes et me fait souvent piégé avec ce genre d'écriture...
Si vous le souhaitais je serais prêt à organiser un Atelier Makefile
pour Linux-Azur (peut-être courant octobre) : avis aux amateurs ( ?? )
A+ et à vous lire,
Vincent
Diffusez cette liste aupres de vos relations :-)
Linux Azur : http://www.linux-azur.org
Vous etes responsable de vos propos.
*** Merci de rediger sans SMS, ni HTML ni PJ ***