Dans Shell quand j'entre
echo $demoPath
ça imprime
/usr/local/demo
Comment puis-je obtenir la valeur de cette variable $demoPath
dans un fichier makefile?
Si vous avez exporté la variable d'environnement:
export demoPath=/usr/local/demo
vous pouvez simplement y faire référence par nom dans la variable 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, celle-ci n'est accessible que si vous l'exportez ou si vous ne la transmettez pas explicitement à la ligne de commande:
make DEMOPATH="${demoPath}" …
Si vous utilisez un dérivé du shell C, remplacez setenv demoPath /usr/local/demo
par la commande export
.
all:
echo ${PATH}
Ou changez PATH pour une seule commande:
all:
PATH=/my/path:${PATH} cmd
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 en sorte de voir quand elle démarre est transformé en une variable make avec le même nom et la même valeur . Cependant, une affectation explicite dans le makefile ou avec une commande argument, remplace l'environnement. (Si l’option -e est spécifiée, , Les valeurs de l’environnement remplacent les affectations du fichier makefile.
https://www.gnu.org/software/make/manual/html_node/Environment.html