next up previous
suivant: macro-définitions standard monter: GPImake précédent: GPImake

fichier Makefile

Ce fichier contient une liste de dépendances et d'actions. Les dépendances maintiennent la bonne constitution des programmes. Les actions décrivent les commandes à exécuter. Il est spécifié à la commande make par l'option -f nomDuFichierMakefile. Par défaut, make recherche un fichier nommé Makefile ou makefile.
Dans ce fichier:
# commente tout ce qui suit sur cette ligne,
CC = gcc indique à make de remplacer toutes les expressions $(CC) par gcc,
A.o: définit une référence-cible,
A.o: A.c A.h définit une référence-cible avec deux dépendances.
 
Le fichier cible A.o est valide si les dates de modification des fichiers A.c et A.h ne sont pas postérieures à celle du fichier A.o (all est la cible par défaut de la commande make),
<tab>$(CC) -o A.c est un exemple de commande.
 
Les commandes sont toujours précédées d'une tabulation. Pour associer des commandes à une référence, il suffit de les placer sur les lignes suivant cette référence,
AB.o: A.o B.o impose aux références A.o et B.o invalides d'être reconstruites
 
avant l'exécution des commandes associées à AB.o. Une (ou plusieurs) référence(s) est(sont) évaluée(s) par la commande make ref (ref2 ...) (ici make AB.o et make appli menage ci-dessous).
 
exemple:
CC = gcc
CFLAGS = -g -Wall
obj = A.o B.o
all: appli

appli: $(obj)
tab  $(CC) $(CFLAGS) -o appli $(obj)
tab  mv appli bin/

A.o: A.c A.h
tab  $(CC) $(CFLAGS) -c A.c

B.o: B.c B.h
tab  $(CC) $(CFLAGS) -c B.c

menage:
tab  rm -rf *  $(obj)
 


lien utile: Autres options de la commande make:  
-p affiche la liste des règles par défaut,
-n affiche les commandes à éxecuter sans les éxecuter,
-j 3 tente d'éxecuter simultanéement au plus 3 commandes indépendantes,
-i ignore les codes d'erreur des commandes dans l'éxecution des commandes,
-r ignore toutes les règles de dépendances par défaut,
-d affiche la séquence des traitements testés par la commande make.
 

next up previous
suivant: macro-définitions standard monter: GPImake précédent: GPImake
n 2004-03-21