Partager via


Définir une macro NMAKE

Une macro NMAKE est définie à l’aide de cette syntaxe :

macro_name=string

La macro_name est une combinaison sensible à la casse de lettres, de chiffres et de traits de soulignement (_) jusqu’à 1 024 caractères. La macro_name peut contenir une macro appelée. Si macro_name se compose entièrement d’une macro appelée, la macro appelée ne peut pas être null ou non définie.

La chaîne peut être n’importe quelle séquence de zéro ou plusieurs caractères. Une chaîne Null contient zéro caractère ou uniquement des espaces ou des onglets. La chaîne peut contenir un appel de macro.

Caractères spéciaux dans les macros

Signe numérique (#) après une définition spécifiant un commentaire. Pour spécifier une connexion de numéro littéral dans une macro, utilisez un point de passe (^) pour l’échapper, comme dans ^#.

Un signe dollar ($) spécifie un appel de macro. Pour spécifier un littéral $, utilisez $$.

Pour étendre une définition à une nouvelle ligne, terminez la ligne par une barre oblique inverse (\). Lorsque la macro est appelée, la barre oblique inverse et le caractère de ligne suivant sont remplacés par un espace. Pour spécifier une barre oblique inverse littérale à la fin de la ligne, faites-la précéder d’une séquence d’échappement (^) ou suivez-la avec un spécificateur de commentaire (#).

Pour spécifier un caractère de saut de ligne littéral, terminez la ligne avec une séquence d’échappement (^) en forme de point, comme dans cet exemple :

CMDS = cls^
dir

Macros null et non définies

Les macros null et non définies se développent sur des chaînes Null, mais une macro définie comme une chaîne null est considérée comme définie dans les expressions de prétraitement. Pour définir une macro en tant que chaîne Null, spécifiez aucun caractère à l’exception des espaces ou des onglets après le signe égal (=) dans une ligne de commande ou un fichier de commandes, puis placez la chaîne ou la définition Null entre guillemets doubles (" "). Pour annuler la définition d’une macro, utilisez !UNDEF. Pour plus d’informations, consultez les directives de prétraitement Makefile.

Où définir des macros

Définissez des macros dans une ligne de commande, un fichier de commande, un makefile ou le Tools.ini fichier.

Dans un makefile ou le Tools.ini fichier, chaque définition de macro doit apparaître sur une ligne distincte et ne peut pas commencer par un espace ou un onglet. Les espaces ou les onglets autour du signe égal sont ignorés. Tous les caractères de chaîne sont littérals, y compris les guillemets environnants et les espaces incorporés.

Dans une ligne de commande ou un fichier de commandes, les espaces et les onglets délimitent les arguments et ne peuvent pas entourer le signe égal. Si la chaîne comporte des espaces ou des onglets incorporés, placez la chaîne elle-même ou la macro entière entre guillemets doubles (" ").

Priorité dans les définitions de macros

Si une macro a plusieurs définitions, NMAKE utilise la définition de priorité la plus élevée. La liste suivante montre l’ordre de priorité, du plus élevé au plus bas :

  1. Macro définie sur la ligne de commande

  2. Macro définie dans un fichier makefile ou include

  3. Macro de variable d’environnement héritée

  4. Macro définie dans le Tools.ini fichier

  5. Une macro prédéfinie, telle que CC et AS

Permet /E de faire en sorte que les macros héritées des variables d’environnement remplacent les macros makefile avec le même nom. Permet !UNDEF de remplacer une ligne de commande.

Voir aussi

NMAKE et les macros