Я хочу выполнить немедленное раскрытие команды оболочки в Makefile, но я хочу, чтобы команда оболочки имела доступ к переменным окружения в Makefile. Если я использую $(shell...), он сразу расширяется, но доступа к переменным нет. Если я использую обратные кавычки, расширение происходит не сразу, и это вызывает у меня проблемы позже в Makefile. Мне интересно, есть ли способ немедленно расширить обратные кавычки или передать текущую среду команде $(shell).
Например, следующий make-файл:
SOME_VAR := some_val
export SOME_VAR
VAR1 := `echo $$SOME_VAR`
export VAR1
VAR2 := `echo $$VAR1`
all:
@echo VAR1=$(VAR1)
@echo VAR2=$(VAR2)
Выведет:
~/tmp/t2> make
VAR1=some_val
VAR2=`echo $SOME_VAR`
Там, где я хочу напечатать "VAR2=some_val". Реальный пример немного сложнее (переменные среды наследуются от родительских make-файлов, и я пытаюсь использовать perl-скрипт для редактирования переменных), но принцип тот же.
Будем признательны за любую помощь.