Определение значений по умолчанию в make файле

В моем файле makefile есть строка

   CFLAGS = -c -g -D OPT1 -D OPT2

Я хочу передать эти аргументы через командную строку, подобную этой

 make ARG1= OPT1 ARG2 =OPT2    

Если я не передаю эти аргументы через командную строку, я хочу, чтобы makefile использовал значения по умолчанию, определенные в make файле. Как это сделать?

Ответ 1

Просто сделайте что-то подобное в make файле:

OPT1 = MY_OPT_1 # defaults
OPT2 = MY_OPT_2

CFLAGS = -c -g -D $(OPT1) -D $(OPT2)

Затем в командной строке:

$ make -e OPT1=SOME_OTHER_OPT1 OPT2=SOME_OTHER_OPT2

Когда вы укажете значения для OPT1 и/или OPT2 в командной строке, они переопределяют значения по умолчанию в make файле.

Обратите внимание, что вы, вероятно, скорее всего хотите, чтобы параметр -e с make в большинстве случаев заставлял все быть перестроенным с новыми значениями OPT1, OPT2.