Le but de l'utilitaire
make
est de déterminer automatiquement quelles sont les parties d'un gros
programme qu'il faut recompiler, et d'exécuter les commandes appropriées.
Le manuel décrit l'implémentation GNU de
make,
qui a été écrite par Richard Stallman et Roland McGrath. Nos exemples
représentent des programmes C, puisqu'ils sont les plus courants, mais vous
pouvez utiliser
make
avec n'importe quel langage de programmation dont le compilateur peut être
lancé en ligne de commandes. En fait,
make
n'est pas limité aux seuls programmes. Vous pouvez l'utiliser pour décrire
n'importe quelle tâche dans laquelle certains fichiers doivent être mis à
jour automatiquement à partir d'autres fichiers quand ces derniers sont
modifiés.
Avant d'utiliser
make,
vous devez écrire un fichier appelé
makefile
qui décrit les relations entre les fichiers de votre programme, et qui
fournit les commandes nécessaires à la mise à jour de chacun d'entre eux.
Dans un programme, le fichier exécutable sera typiquement mis à jour à
partir de fichiers objets, qui sont eux-mêmes créés en compilant des
fichiers sources.
Quand un fichier makefile adéquat existe, chaque fois que vous modifierez
certains fichiers sources, cette simple commande shell :
-
make
suffira pour effectuer toutes les recompilations nécessaires. Le programme
make
utilise la base de données du makefile et les dates de dernière
modification des fichiers pour décider quels fichiers doivent être mis à
jour. Pour chacun de ces fichiers, il exécute les commandes enregistrées
dans la base de données.
make
exécute les commandes du
makefile
pour mettre à jour un ou plusieurs
noms
de cibles, où
nom
est typiquement un programme. Si aucune option
-f
n'est présente,
make
recherchera les makefiles
GNUmakefile,
makefile
et
Makefile,
dans cet ordre.
Normalement, vous devriez appeler votre makefile soit
makefile
soit
Makefile.
(Nous recommandons
Makefile
car il apparaît de façon bien visible près du début du listage d'un
répertoire, juste à côté d'autres fichiers importants comme
README.)
Le premier nom recherché,
GNUmakefile,
n'est pas recommandé pour la plupart des makefiles. Vous ne devriez
utiliser ce nom que si vous avez un makefile qui est spécifique au
make
GNU, et qui ne sera pas compris par d'autres versions de
make.
Si
makefile
est « - », l'entrée standard est lue.
make
met à jour une cible si elle dépend de fichiers prérequis qui ont été
modifiés depuis la dernière modification de la cible, ou si la cible
n'existe pas.