Відповіді:
Якщо ви експортували змінну середовища:
export demoPath=/usr/local/demo
ви можете просто посилатися на нього по імені в makefile
( make
імпортує всі змінні середовища, які ви встановили):
DEMOPATH = ${demoPath} # Or $(demoPath) if you prefer.
Якщо ви не експортували змінну оточення, вона недоступна, поки ви не експортуєте її, або якщо явно не передасте її в командному рядку:
make DEMOPATH="${demoPath}" …
Якщо ви використовуєте похідну C оболонки, заміну setenv demoPath /usr/local/demo
для export
команди.
demoPath=/usr/local/demo make
. Ви можете перевірити його і, можливо, оновити свою відповідь. Ура!
для тих, хто хоче, щоб якийсь офіційний документ підтвердив поведінку
Змінні в make можуть надходити з середовища, в якому використовується запуск. Кожна змінна середовище, яка бачить, коли вона запускається, перетворюється на змінну make з тим самим іменем та значенням. Однак явне призначення в makefile або з аргументом команди перекриває середовище. (Якщо вказано прапор '-e', то значення з середовища переосмислюють призначення у makefile.
https://www.gnu.org/software/make/manual/html_node/Environment.html