Les fichiers Makefile
sont structurés grâce aux règles. Ce sont elles qui
définissent ce qui doit être exécuté ou non, et qui permettent de
compiler un programme de différentes façons.
Une règle est une suite d'instructions qui seront exécutées pour construire une cible, mais uniquement si des dépendances sont plus récentes.
La syntaxe d'une règle est la suivante:
cible: dependances commandes ...
La cible est généralement le nom d'un fichier qui va être généré par
les commandes qui vont suivre, ou une action gérée par ces mêmes
commandes, par exemple clean
ou install
(Voir
chapitre IX [Cibles] pour plus de détails sur les conventions
utilisées dans l'attribution d'un nom à une règle).
Les dépendances sont les fichiers ou les règles nécessaires à la création de la cible. Par exemple un fichier en-tête ou un fichier source dans le cas d'une compilation C. Dans le cas d'un fichier, la cible n'est construite que si ce fichier est plus récent que la cible.
C'est une suite de commandes shell qui seront exécutées au moment de la création
de la cible. Une étrangeté de la syntaxe des fichiers Makefile
oblige
l'utilisateur de make à insérer une tabulation au début de
chaque ligne, faute de quoi make affichera une erreur au
moment de son exécution.
La syntaxe de make oblige aussi l'utilisateur à ajouter une
caractère "backslash" ('\'
) à la
fin de chaque ligne dès que les commandes à
exécuter dépassent une ligne de texte.