Как экспортировать переменные из правила makefile? - PullRequest
0 голосов
/ 11 мая 2018

В моем правиле Makefile указано, какая среда установки:

.ONESHELL:
set_db_env:
    export DB_USER=XXX
    export DB_PASS=YYY   

Могу ли я повторно использовать set_db_env цель?

another_rule: set_db_env
    echo ${DB_USER}

Я также нашел .EXPORT_ALL_VARIABLES , но не понимаю, как его использовать.

UPD
Я нашел это работает:

$(shell ${APP} db_env > ${CONF_DIR}/db_env.conf)
include ${CONF_DIR}/db_env.conf

Но я не думаю, что это хороший подход

1 Ответ

0 голосов
/ 12 мая 2018

Как правило, переменные не переходят из одного правила в другое.Но есть способ сделать это с целевыми переменными :

another_rule: DB_USER=XXX
another_rule: DB_PASS=YYY                              

another_rule:
    @echo user is ${DB_USER}
    @echo pass is $(DB_PASS)

Если писать слишком много дополнительных строк для каждого правила слишком утомительно, вы можете заключить их в функцию:

define db_env
$(1): DB_USER=XXX
$(1): DB_PASS=YYY
endef

$(eval $(call db_env,another_rule))
another_rule:
    @echo user is ${DB_USER}
    @echo pass is $(DB_PASS)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...