Make

Un livre de Wikibooks.

Ébauche

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

[modifier] Voir aussi

Récupérée de « http://fr.wikibooks.org/wiki/Make »
Créer une compilation
Autres langues