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
|
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 |
make
|
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
|
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].