Risposte:
Se hai esportato la variabile d'ambiente:
export demoPath=/usr/local/demo
puoi semplicemente fare riferimento ad esso per nome nel makefile
( make
importa tutte le variabili d'ambiente che hai impostato):
DEMOPATH = ${demoPath} # Or $(demoPath) if you prefer.
Se non hai esportato la variabile di ambiente, non è accessibile fino a quando non la esporti o a meno che non la passi esplicitamente sulla riga di comando:
make DEMOPATH="${demoPath}" …
Se stai usando una derivata della shell C, sostituisci setenv demoPath /usr/local/demo
il export
comando.
demoPath=/usr/local/demo make
. Potresti testarlo e magari aggiornare la tua risposta. Saluti!
per chi vuole qualche documento ufficiale per confermare il comportamento
Le variabili in make possono provenire dall'ambiente in cui viene eseguito make. Ogni variabile d'ambiente che make vede quando si avvia viene trasformata in una variabile make con lo stesso nome e valore. Tuttavia, un'assegnazione esplicita nel makefile, o con un argomento di comando, sovrascrive l'ambiente. (Se viene specificato il flag "-e", i valori dell'ambiente sovrascrivono le assegnazioni nel makefile.
https://www.gnu.org/software/make/manual/html_node/Environment.html