L'essentiel de ce document est une synthèse du document en anglais que l'on peut trouver à l'adresse http://www.gnu.org/manual/make/html_mono/make.html sur le site officiel de GNU (http://www.gnu.org/).
Tous les makes ne sont pas des GNU make. Au département d'informatique de l'ULP, tous les PC ont seulement GNU make. Par contre, plusieurs makes sont installés sur le serveur ada :
L'objectif premier de l'outil make est de permettre de construire des fichiers, éventuellement à partir d'autres fichiers, par des commandes shell, et de manière automatique. Exemples :
Évidemment, l'outil make ne sait pas, à l'avance, distinguer les fichiers que vous considérez comme inutiles de ceux que vous voulez conserver. Il ne sait pas non plus quels fichiers il faut construire, à partir de quels autres fichiers, ni dans quelles conditions et avec quelles commandes il faut mettre à jour ces fichiers. C'est l'utilisateur qui doit indiquer tout cela en éditant un fichier qui contiendra toutes les informations nécessaires. Par exemple pour construire le fichier scanline à partir des informations contenues dans le fichier scanline.mk, il faut taper : « make scanline -f scanline.mk ». Il est également possible de taper simplement « make scanline » Mais alors les informations qui permettent de construire le fichier scanline doivent être contenues dans un fichier qui s'appelle Makefile (ou makefile). Ainsi la commande précédente sera l'exact équivalent de : « make scanline -f Makefile » Dans les sections suivantes, les fichiers contenant ces informations seront tous appelés des makefiles. Nous allons voir comment écrire un fichier de type makefile et comment l'utiliser.
Les makefiles sont, en grande partie, constitués d'une suite de règles. Une règle (rule en anglais) est constituée de :