Commandes dans un makefile
Un bloc de description ou une règle d’inférence spécifie un bloc de commandes à exécuter si la dépendance est obsolète. NMAKE affiche chaque commande avant de l’exécuter, sauf si /S
, .SILENT
, !CMDSWITCHES
ou @
est utilisé. NMAKE recherche une règle d’inférence correspondante si un bloc de description n’est pas suivi d’un bloc de commandes.
Un bloc de commandes contient une ou plusieurs commandes, chacune sur sa propre ligne. Aucune ligne vide ne peut apparaître entre la dépendance ou la règle et le bloc de commandes. Toutefois, une ligne contenant uniquement des espaces ou des onglets peut apparaître ; cette ligne est interprétée comme une commande Null et aucune erreur ne se produit. Les lignes vides sont autorisées entre les lignes de commande.
Une ligne de commande commence par un ou plusieurs espaces ou onglets. Une barre oblique inverse (\
) suivie d’un caractère de nouvelle ligne est interprétée comme un espace dans la commande. Utilisez une barre oblique inverse à la fin d’une ligne pour continuer une commande sur la ligne suivante. NMAKE interprète littéralement la barre oblique inverse si un autre caractère, y compris un espace ou un onglet, suit la barre oblique inverse.
Une commande précédée d’un point-virgule (;
) peut apparaître sur une ligne de dépendance ou une règle d’inférence, qu’un bloc de commandes suit ou non :
project.obj : project.c project.h ; cl /c project.c
Modificateurs de commandes
Vous pouvez spécifier un ou plusieurs modificateurs de commandes précédant une commande, éventuellement séparés par des espaces ou des onglets. Comme pour les commandes, les modificateurs doivent être mis en retrait.
Modificateur | Objectif |
---|---|
@ commande |
Empêche l’affichage de la commande. L’affichage par commandes n’est pas supprimé. Par défaut, NMAKE fait écho à toutes les commandes exécutées. Permet /S de supprimer l’affichage de l’intégralité du makefile ; utilisez .SILENT cette option pour supprimer l’affichage pour une partie du makefile. |
- Commande [number] |
Désactive la vérification des erreurs pour la commande. Par défaut, NMAKE s’arrête lorsqu’une commande retourne un code de sortie différent de zéro. Si -number est utilisé, NMAKE s’arrête si le code de sortie dépasse le nombre. Les espaces ou les onglets ne peuvent pas apparaître entre le tiret et le nombre. Au moins un espace ou un onglet doit apparaître entre nombre et commande. Permet /I de désactiver la vérification des erreurs pour l’intégralité du fichier makefile ; utilisez .IGNORE cette option pour désactiver la vérification des erreurs pour une partie du makefile. |
! commander |
Exécute la commande pour chaque fichier dépendant si la commande utilise $** (tous les fichiers dépendants dans la dépendance) ou $? (tous les fichiers dépendants de la dépendance avec un horodatage ultérieur de la cible). |
Syntaxe des parties de nom de fichier
La syntaxe des parties de nom de fichier dans les commandes représente les composants du premier nom de fichier dépendant (qui peut être un dépendant implicite). Les composants de nom de fichier sont le lecteur, le chemin d’accès, le nom de base et l’extension spécifiés, et non pas comme il existe sur le disque. Permet %s
de représenter le nom de fichier complet. Utilisez %|
[parties]F
(un caractère de barre verticale suit le symbole de pourcentage) pour représenter des parties du nom de fichier, où les parties peuvent être égales à zéro ou plusieurs des lettres suivantes, dans n’importe quel ordre.
Lettre | Description |
---|---|
Aucune lettre | Nom complet (identique à %s ) |
d |
Drive |
p |
Chemin d’accès |
f |
Nom de la base de fichiers |
e |
Extension de fichier |
Par exemple, si le nom de fichier est c:\prog.exe
:
%s
devientc:\prog.exe
%|F
devientc:\prog.exe
%|dF
devientc
%|pF
devientc:\
%|fF
devientprog
%|eF
devientexe
Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?
Fichiers inline dans un makefile