Créer un fichier Makefile contenant une règle bonjour, qui affiche sur la sortie standard Bonjour, comment ca va?
make bonjour: @echo "Bonjour, comment ca va?" > L'utilisation du
@ devant
echo rend la commande "silencieuse", elle > n'apparaît pas sur la sortie standard.
Ajouter une règle bye qui affiche A bientot!.
make bye: @echo "A bientot!"
Créer une règle qui crée un fichier modif.txt dont le contenu vient du fichier original.txt (que vous pouvez enregistrer grâce au bouton de droite) et qui remplace (grâce à sed) les apparitions de ILIB par DILIB.
make modif.txt: original.txt sed -e 's/ILIB/DILIB/g' < original.txt > modif.txt Le fichier
modif.txt depend du contenu du fichier
original.txt, c'est pourquoi ce dernier apparaît à droite de
:.
Créer une règle qui crée un fichier modif2.txt à partir de original.txt et table.txt, en utilisant la table fournie pour modifier le fichier original.
make modif2.txt: original.txt table.txt sed -f table.txt < original.txt > modif2.txt Le fichier
modif2.txt dépend des contenus des fichiers
original.txt et
table.txt (si l'un des deux est modifié, la commande
sed sera exécutée). >
Remarque: l'extension du fichier n'est pas importante, le nom du fichier > de commandes sed appelé ici
table.txt aurait pu être
table.sed.
Ajouter une ligne à table.txt pour remplacer CNRS par Centre National de la Recherche Scientifique.
Puis relancer make modif2.txt pour vérifier que la commande a bien été exécutée.
Ajouter une règle qui crée un fichier compte.txt contenant le nombre de lignes du fichier modif2.txt.
make compte.txt: modif2.txt wc -l < modif2.txt > compte.txt Le fichier
compte.txt dépend du fichier
modif2.txt (donc de sa règle, qui dépend de
original.txt et de
table.txt).
table.txt et qu'on tape
make compte.txt, ou toute autre règle qui dépend directement ou indirectement de
table.txt, cette règle sera exécutée.
Créer une règle clean qui supprime les fichiers dont le nom se termine par ~.
make clean: rm -f *~ > Si vous utilisez un lecteur Samba (probable à l'INIST), vous risquez une > désynchronisation entre les fichiers enregistrés par le lecteur Samba et la > date de lancement de
make (il est arrivé que les fichiers aient une à deux > minutes d'avance).
touch, qui > remet un fichier à l'heure courante du shell, mais seulement sur les fichiers > qui viennent d'être modifiés/créés! > On utilise l'option
-f de
rm pour éviter une erreur lorsqu'aucun fichier > finissant par
~ n'existe.
~ au > nom du fichier modifié.
Créer une règle all qui dépende de bonjour, compte.txt, clean, et bye, mais qui ne contient aucune commande (on peut quand même y mettre un echo -- Make all: exécuté --).
Remarques :
touch, qui change la date de modification du fichier qu'elle prend en paramètre), les commandes de chacune de ces règles sont exécutées (voir le comportement de make all après avoir tapé touch original.txt, ou après avoir ajouté du texte à original.txt).make all: bonjour compte.txt clean bye @echo --- Make all: exécuté --- > On peut généraliser le
@echo --- Make <règle> exécuté --- à toutes les > règles, cela permet de mieux se rendre compte de ce que le
make a effectué.
Pour ceux qui ne l'ont pas fait : modifier le fichier original.txt, et relancer la règle all.