Я ничего не нашел об этом, и я пытаюсь написать это правило в своем Makefile.Print Makefile variable как текст
setenv:
@echo "export DYLD_LIBRARY_PATH=."
@echo "export DYLD_INSERT_LIBRARIES=$(NAME).so"
@echo "export DYLD_FORCE_FLAT_NAMESPACE=1"
@echo "# Run eval $$(make setenv)"
Так, запустив eval $(make setenv)
в моем терминале, переменная окружения будет установлена.
Но он начинает бесконечный цикл.
Я также попробовать с:
\$(make setenv)
но ничего не работа ... Что такое правильный синтаксис для этого?
EDIT:
\$$(make setenv)
ли трюк!
Что вы пытаетесь достичь? Почему команды экспорта повторяются? '$$ (...)' будет расширяться до '$ (...)', что является заменой оболочки. –
В последней строке написано, что команда запускает их с помощью 'eval'. Я обнаружил, что более чистый, чем '$ (shell export ...)' –
Если вы просто используете Makefile для установки окружения vars для чего-то другого, сценарий оболочки подойдет вам лучше. Если вам нужны эти варны для других рецептов, см. Мой ответ. –