Экспорт переменных среды в оболочку Makefile

Я хочу выполнить немедленное раскрытие команды оболочки в 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-скрипт для редактирования переменных), но принцип тот же.

Будем признательны за любую помощь.

10
задан John 7 March 2012 в 19:23
поделиться