Make
Un livre de Wikibooks.
Cette page est considérée comme une ébauche à compléter. Si vous possédez quelques connaissances sur le sujet, vous pouvez les partager en éditant dès à présent cette page (en cliquant sur le lien « modifier »).
Ressources suggérées : Aucune (vous pouvez indiquer les ressources que vous suggérez qui pourraient aider d'autres personnes à compléter cette page dans le paramètre « ressources » du modèle? engendrant ce cadre)
En programmation, make est, entre autres, un outil pour compiler de grandes applications. C'est un moteur de production principalement pour travailler en C et C++ sous environnement Unix.
En langage C, l'utilisation basique est :
make exo7
cela remplace :
cc exo7.c -o exo7
Son principal avantage et ce pourquoi il fut imaginé est de simplifier grandement le travail du programmeur. Lorsque l'on compile un programme utilisant de nombreuses bibliothèques comme pour l'utilisation d'interfaces graphiques par exemple :
gcc -o exo5 exo5.c -L/usr/X11R6/lib -lglut -lGLU -lGL -lX11 -lXmu -lXext -lXi -lm
On aura besoin de directives indiquant que l'on compilera avec cette longue ligne de bibliothèques, ces directives sont enregistrés dans un fichier texte toujours nommé Makefile.
La commande make et fichier ASCII Makefile (M majuscule) vont toujours de pair. Makefile se trouvant dans le répertoire ou l'on exécute make.
Sections |
[modifier] Structure du Makefile
# Les lignes de commentaires commencent par dièse
cible: dépendances
<TABULATION>commande 1
commande 2
.
.
.
commande n
[modifier] Exemple de Makefile
Un Makefile commun est :
all: helloworld helloworld: helloworld.c cc -o helloworld helloworld.c clean: rm -f helloworld
En exécutant make en ligne de commande dans le répertoire où se trouve le Makefile nous avons :
$ ls helloworld.c Makefile $ make cc -o helloworld helloworld.c $ ls helloworld helloworld.c Makefile $ make clean rm -f helloworld $ ls helloworld.c Makefile $ make all cc -o helloworld helloworld.c $
[modifier] Variables magiques
Il existe des variables magiques comme :
- $@ : le nom de la cible courante.
- $< : le fichier source de la dépendance
Le précédent Makefile se simplifie en :
all: helloworld helloworld: helloworld.c cc -o $@ $< clean: rm -f helloworld

