next up previous contents index
Next: Les petites FAQ Up: Comment programmer? Previous: La librairie mathématique

Make

    Lorqu'un programme a été écrit dans un quelconque langage évolué, pour pouvoir l'exécuter, il faut passer par trois étapes, que nous avons déja vues, qui sont: la compilation, l'édition de lien et le chargement. Les deux premières étapes peuvent être simplifiées grâce à un fichier makefile qui, s'il est bien rédigé, va tout enchainer à votre place.

make est donc un outil de maintenance de fichiers. Le programme make travaille à partir d'une description d'un ensemble de fichiers et de leurs relations les uns par rapport aux autres. Lorsqu'on l'appelle, make est capable de générer ou de regénérer les fichiers nécessaires en se basant sur cette description et sur les dates de dernière modification des fichiers existants.

Cet outil est particulièrement intéressant pour développer, maintenir et installer des logiciels mettant en uvre plusieurs fichiers (sources, librairies, exécutables, doc, ...)

Ainsi, lors de la création de programmes, des fichiers objets dépendent souvent des fichiers sources correspondants. Un programme totalement indépendant au niveau de son exécution est malgré tout lié aux fichiers objets et aux bibliothèques. Dès qu'un fichier source est modifié, le fichier objet doit être reconstruit et réinséré dans le nouveau programme. À partir d'un nombre conséquent de fichiers sources, cela devient vite ingérable et nécesssite un outil performant.

  La description des fichiers à maintenir doit être stockée dans un fichier ascii nommé makefile ou Makefile. Cette description est faite selon une syntaxe particulière qui constitue un mini-langage.

 
Figure: Squelette d'un programme exécutable

# makefile pour le programme prog

prog : p1.o p2.o
	cc p1.o p2.o -o prog
p1.o : p1.c p1.h
	cc -c p1.c
p2.o : p2.c
	cc -c p2.c

Ce makefile indique sur la première ligne que le fichier prog dépend des deux fichiers p1.o et p2.o, sur la troisième ligne que p1.o dépend de p1.c et de p1.h et sur la cinquième ligne que p2.o dépend uniquement de p2.c.

prog dépend de p1.o et de p2.o signifie que si la date de dernière modification du fichier prog est postérieure aux deux dates de dernière modification de p1.o et p2.o, tout est correct.

Dans le cas contraire, si l'un des deux fichiers a été modifié, prog n'est plus correct. La ligne suivante indique la commande shell à lancer pour remettre à jour le fichier prog.

Dans ce cas il faut linker une nouvelle fois les deux objets p1.o et p2.o pour générer un nouvel exécutable prog. Il suffit pour cela de taper make sur votre ligne de commande qui va lire le fichier makefile contenant votre séquence de commande et générer la sortie désirée.



next up previous contents index
Next: Les petites FAQ Up: Comment programmer? Previous: La librairie mathématique




Wed Jun 25 13:24:35 MET DST 1997