LINUX.ORG.RU

Ответ на: комментарий от programmer-it2015

Не знаю, как экспортировать переменные в родительский шел. make сам запускает оболочки, родительский шел о них ничего не знает.

А внутри можно делать так:

.PHONY: tst

tst:
	@(export X=$$X:123; echo X=$$X)

i-rinat ★★★★★
()

Советую не смешивать шелл с make, по мере усложнения понятность кода будет стремительно приближаться к брейнфаку

annulen ★★★★★
()
Ответ на: комментарий от programmer-it2015

Потому что мейк это программа и шелл это программа. Было бы странно, если какая-то программа меняла переменные в парент-процессе без его участия, даже если он шелл. Ты видимо хочешь это:

$ `make environment`

К доп.сведению, каждая command-строчка в мейкфайле выполняется в отдельном шелле, так что если хочешь менять эти внутренние шеллы, то пиши в одну строку/стейтмент или экранируй переводы строк.

sample:
        export A=B; echo $$A # B
        echo $$A # пусто

Алсо лорчую последнего советчика, дебажить серии эскейпов в мейке то еще удовольствие.

anonymous
()
Ответ на: комментарий от anonymous

Теперь ясно почему переменные окружения поднимаются отдельно.

programmer-it2015
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.