Règles internes pour le programme make

Les règles internes de la commande make se trouvent dans un fichier qui ressemble à un fichier de description.

Lorsque l'indicateur -r est indiqué, la commande make n'utilise pas le fichier de règles internes. Vous devez fournir les règles pour créer les fichiers dans votre fichier de description. Le fichier de règles internes contient une liste de suffixes de nom de fichier (tels que .o ou .a) que la commande make comprend et des règles qui indiquent à la commande make comment créer un fichier avec un suffixe à partir d'un fichier avec un autre suffixe. Si vous ne modifiez pas la liste, la commande make comprend les suffixes suivants:

Suffixe Descriptif
.a Bibliothèque d'archivage
:C Fichier source C++
:C\ ~ Fichier SCCS (Source Code Control System) contenant le fichier source C++
.c Fichier source C
.c ~ Fichier SCCS contenant le fichier source C
.f Fichier source FORTRAN
.f ~ Fichier SCCS contenant le fichier source FORTRAN
.h Fichier d'en-tête de langage C.
.h ~ Fichier SCCS contenant le fichier d'en-tête en langage C
.l Grammaire source lex
.l ~ Fichier SCCS contenant la grammaire source lex .
.o Fichier objet.
.s Fichier source assembleur.
.s ~ Fichier SCCS contenant le fichier source assembleur.
.sh Fichier source de commandes shell.
.sh ~ Fichier SCCS contenant le fichier source shell-command.
.y Grammaire source yacc-c .
.y ~ Fichier SCCS contenant la grammaire source yacc-c .

La liste des suffixes est similaire à une liste de dépendances dans un fichier de description et suit le faux nom cible .SUFFIXES. Etant donné que la commande make examine la liste des suffixes dans l'ordre de gauche à droite, l'ordre des entrées est important.

La commande make utilise la première entrée de la liste qui répond aux exigences suivantes:

  • L'entrée correspond aux exigences de suffixe d'entrée et de sortie pour les fichiers cible et de dépendance en cours.
  • Une règle est affectée à l'entrée.

La commande make crée le nom de la règle à partir des deux suffixes des fichiers définis par la règle. Par exemple, le nom de la règle permettant de transformer un fichier .c en fichier .o est .c.o.

Pour ajouter d'autres suffixes à la liste, ajoutez une entrée pour le faux nom de cible .SUFFIXES dans le fichier de description. Pour une ligne .SUFFIXES sans suffixe après le nom de la cible dans le fichier de description, la commande make efface la liste en cours. Pour modifier l'ordre des noms dans la liste, effacez la liste en cours, puis affectez un nouvel ensemble de valeurs à .SUFFIXES.