Измените значение переменной Make-файла в целевом теле

Существует ли способ повторно присвоить значение переменной Make-файла в целевом теле?

Что я пытаюсь сделать, должны добавить некоторые дополнительные флаги для компиляции отладки:

%.erl: %.beam
    $(ERLC) $(ERLFLAGS) -o ebin $<

test: clean debug_compile_flag compile compile_test

debug_compile:
    $(ERLCFLAGS) += -DTEST

Таким образом, если бы я вызываю тестовую цель, я хотел бы очистить свою среду, добавить некоторые новые флаги (как-DTEST к существующим), скомпилировать целый код еще раз (первые источники, затем протестировать модули).

Я не хочу к скопировать/вставить коду для компиляции с некоторым новым набором флагов, так как существует большая логика, помещенная тут и там.

Там некоторый простой способ состоит в том, чтобы переопределить значение переменной, таким образом, я могу снова использовать существующий код?

52
задан Ciro Santilli 新疆改造中心法轮功六四事件 14 April 2015 в 21:24
поделиться

2 ответа

Изменить : Как объяснил Бета в другом ответе , это возможно.


Нет. В Makefile это невозможно сделать. Однако вы можете изменить значение переменной в командной строке make . Если вы переписываете свой Makefile следующим образом:

ERLCFLAGS += $(ERLCFLAGSADDED)

%.erl: %.beam
    $(ERLC) $(ERLCFLAGS) -o ebin $<

test: clean compile compile_test

Затем вы можете вызвать make для выполнения ваших тестов, используя:

make ERLCFLAGSADDED=-DTEST test
-8
ответ дан 7 November 2019 в 09:15
поделиться

Да, есть простой способ сделать это без повторного запуска Make. Используйте значение целевой переменной :

test: clean debug_compile

debug_compile: ERLCFLAGS += -DTEST
debug_compile: compile compile_test;
76
ответ дан 7 November 2019 в 09:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: