En coquille quand j'entre
echo $demoPath
il imprime
/usr/local/demo
Comment puis-je obtenir la valeur de cette variable $demoPath
dans un makefile?
Réponses:
Si vous avez exporté la variable d'environnement:
export demoPath=/usr/local/demo
vous pouvez simplement y faire référence par son nom dans le makefile
( make
importe toutes les variables d'environnement que vous avez définies):
DEMOPATH = ${demoPath} # Or $(demoPath) if you prefer.
Si vous n'avez pas exporté la variable d'environnement, elle n'est pas accessible tant que vous ne l'avez pas exportée ou que vous ne la transmettez pas explicitement sur la ligne de commande:
make DEMOPATH="${demoPath}" …
Si vous utilisez un dérivé du shell C, remplacez setenv demoPath /usr/local/demo
la export
commande.
demoPath=/usr/local/demo make
. Vous voudrez peut-être le tester et peut-être mettre à jour votre réponse. À votre santé!
pour ceux qui veulent un document officiel pour confirmer le comportement
Les variables de make peuvent provenir de l'environnement dans lequel make est exécuté. Chaque variable d'environnement qui fait voit quand il démarre est transformée en une variable make avec le même nom et la même valeur. Cependant, une affectation explicite dans le makefile, ou avec un argument de commande, remplace l'environnement. (Si l'indicateur '-e' est spécifié, les valeurs de l'environnement remplacent les affectations dans le fichier Make.
https://www.gnu.org/software/make/manual/html_node/Environment.html