next up previous contents Next: Bibliothèques partagées. Up: Les projets en C Previous:  Compléter notre exemple par   Table des matières  


23.4.2  Combiner le tout.

En fait, les fichiers Makefile peuvent avoir leurs règles placées dans un ordre arbitraire, mais il est astucieux d'établir les règles les plus évidentes au début pour des raisons de lisibilité.

Il existe aussi une règle qui devrait toujours valoir dès le début:

all:   libsimple_math.a mon_test 


La cible all: constitue la règle à laquelle make essaie de satisfaire quand il est lancé sans arguments en ligne de commande. Cela signifie juste que libsimple_ 
math.a et mon_test sont les deux derniers fichiers à être construits. Ils sont donc au sommet de la série des dépendances.

Les Makefiles ont aussi leur propre forme de variables d'environnements, à l'instar des scripts de shells. Vous pouvez constater que nous avons utilisé le texte simple_math dans trois de nos règles. Il est donc pertinent de définir une macro.

Notre Makefile final est donc:

# Comments start with a # (hash) character like shell scripts. 
# Makefile to build libsimple_math.a and mon_test program. 
# Paul Sheer <psheer@icon.co.za> Sun Mar 19 15:56:08 2000 
 
OBJS    = simple_math_sqrt.o simple_math_pow.o 
LIBNAME = simple_math 
CFLAGS  = -Wall 
 
all:    lib$(LIBNAME).a mon_test 
 
mon_test:   lib$(LIBNAME).a mon_test.o 
         gcc $(CFLAGS) -o $@ mon_test.o -L. -l${LIBNAME} 
 
lib$(LIBNAME).a: $(OBJS) 
        rm -f $@ 
        ar rc $@ $(OBJS) 
 
        ranlib $@ 
 
.c.o: 
       gcc $(CFLAGS) -c -o $*.o *< 
 
clean: 
       rm -f *.o *.a mon_test 


A présent nous pouvons taper:

make 


dans le répertoire courant pour lancer la construction des différents fichiers.

Vous pouvez voir que nous avons ajouter une autre cible appelée clean:. Les cibles peuvent être exécutées explicitement en ligne de commande comme suit:

make clean 


ce qui supprimera tous les fichiers construits.

Les fichiers Makefile ont bien d'autres usages que la construction de programmes C. Tout ce qui doit être construit à partir de sources peut s'appuyer sur un Makefile pour faciliter la mise en place. [NdT: notons qu'il existe un excellent tutoriel complémentaire à l'information présente. On le trouve à l'adresse: http://gl.developpez.com/makefile].


next up previous contents Next: Bibliothèques partagées. Up: Les projets en C Previous:  Compléter notre exemple par   Table des matières  
1-01-2006