Page de manuel MSUB

Original: http://www.snake.net/software/imake-stuff/msub.html

Table des matières
NOM
msub substitut rendre variables dans le modèle pour produire le script
CARNET DE BORD
msub [ -e ] [ -f file ] [ +Rstr ] [ -Rstr ] [ variable=value ] [ file … ]
DESCRIPTION
Makefiles contiennent souvent des informations de configuration de projet spécifiées comme rendre variables, et il est souvent souhaitable de faire usage de ces informations dans d’autres fichiers. msub permet aux cibles à produire facilement des modèles qui contiennent des références à ces variables. msub est particulièrement utile dans les projets de logiciels qui utilisent imake, car pratiquement tous les paramètres de configuration sont écrits dans les Makefiles et sont donc disponibles pour la propagation dans d’autres fichiers.
Msub premier lit le fichier Makefile et trouve toutes les lignes de la définition de la variable du formulaire “var = valeur“. Puis msub lit tous les fichiers nommés sur la ligne de commande (ou l’entrée standard si aucun), recherche des références à ces variables et remplace les références avec les valeurs correspondantes des variables. Références aux variables non définies sont remplacées par la chaîne vide. Le résultat est écrit sur la sortie standard.
msub accepte les options suivantes :
-e
Valeurs de variables d’environnement substituent des affectations au sein de Makefiles. Normalement les affectations au sein de Makefiles substituent variables d’environnement.
-f file
Par défaut, les valeurs des variables sont extraites de Makefile (ou makefile s’il manque des Makefile) dans le répertoire courant. Si l’option de fichier -f est donnée, les valeurs des variables sont extrait du fichier à la place. Plusieurs f – options peuvent être spécifiées. (Note : faire reconnaît -f pour signifier le Makefile devrait être lue depuis stdin. msub ne marche pas, parce que le modèle entrée peut-être provenir de stdin.)
+ Rstr
Rstr
Les indicateurs de référence de variable par défaut dans les modèles sont les mêmes que dans des Makefiles, c’est-à-dire, “$(” and “)”, et “${“et “}”. Ceux-ci peuvent être modifiés avec la options + R et -R, ce qui doivent être spécifiées par paires. + R spécifie la chaîne qui initie une référence de variable et -R spécifie la chaîne qui se termine il. Plusieurs paires d’indicateurs de référence peuvent être donnés.
variable=value
Définition de la variable. Cette définition remplace toute définition ordinaire pour la variable spécifiée dans le fichier makefile lui-même ou dans l’environnement.
EXEMPLES
Supposons que vous voulez produire un programme, un fichier d’aide qui indique l’adresse de messagerie locaux auxquels les questions peuvent être adressées. Si cette adresse est spécifiée dans la variable EMAILHELPADDR dans le Makefile, vous pouvez écrire un modèle helpfile.msub comme ceci :
stuff
Veuillez adresser des questions à ${EMAILHELPADDR}.
more stuff
Processus du modèle pour produire le fichier d’aide comme ceci :
msub helpfile.msub > helpfile
Si le Makefile contient les lignes suivantes :
EMAILHELPADDR = [email protected]$(DOMAIN)
DOMAINE = primate.wisc.edu
puis helpfile ressemblera à ceci :
stuff
Veuillez adresser des questions à [email protected].
more stuff
msub peut produire des scripts exécutables, trop. Si le processeur pour lequel vous êtes produisant le script permet des références variables, assurez-vous que vous faites référence pour rendre les variables dans le modèle d’une manière différente que le processeur fait référence à des variables. Par exemple, “${var}” est ambigu dans un modèle de script shell estce une référence à une variable de shell que vous voulez msub de partir seul, ou à une variable de marque dont vous voulez msub de substituer la valeur de la variable ? Pour résoudre l’ambiguïté, vous pouvez faire référence à des variables shell comme “$var” (qui reconnaît la coquille, mais msub ne marche pas), ou vous pouvez utiliser les différents indicateurs que les valeurs par défaut pour désigner pour rendre les variables dans le modèle. Par exemple, vous pouvez utiliser “@<“ et “> @” et se réfèrent à des variables comme “@<var>@”. Supposons que vous ayez un script simple pour imprimer votre chemin d’accès de répertoire. Vous pourriez l’écrire comme ça :
#! @<SHELL>@
echo ${HOME}
Puis vous pouvez traiter le modèle comme ceci (Notez que vous devez citer les arguments parce que “<“ et “>” sont particuliers à l’interpréteur de commandes) :
msub + R “@<“ -R “> @” modèle > script
Le + arguments R/-r causent msub de reconnaître les “@<SHELL>@” mais pas “${HOME}”. Le résultat ressemble à ceci :
#! / bin/sh
echo ${HOME}
OMS-À-BLAME
Paul DuBois, [email protected]
BUGS ET RESTRICTIONS
CC, YACC, etc., ont des valeurs implicites dans font même s’ils ne sont pas définis dans le fichier Makefile, qui n’est pas vrai pour msub. Toutefois, lorsque msub est utilisé avec imake, ce n’est pas normalement un problème puisque les Makefiles générés par imake ont tendance à contenir des définitions explicites pour chaque paramètre dans l’univers connu.
msub est plus restrictif dans les noms de variables il reconnaît et exécute des substitutions sur que faire. marque permet des noms de caractère unique à être référencé en tant que « $c », c est une lettre ; msub ne marche pas. msub ignore également les variables font comme « $* » et [email protected]”.
Références récursives dans Makefile variables ne sont pas étendues. Si un fichier Makefile contient la définition de « X = ${X} “, X ne sera pas être élargi. Indirectement références récursives ne sont pas étendues, non plus.
Si un fichier Makefile contient les définitions “X = {Y} $” et “Y = ${X}”, ni X ni Y sera élargi. (Ce ne sont effectivement pas bugs dans msub, ils ont des problèmes dans le Makefile)
Un commentaire à la fin d’une partie de ligne devenir assignation de variable de la valeur de la variable. Si le Makefile contient la ligne suivante :
SHELL = /bin/shell # default shell
puis msub prend la valeur de coque pour être “/bin/shell # default shell”.

Comments are closed.