makefile: передача препроцессора через makefile в g ++ - PullRequest
1 голос
/ 27 марта 2012

Я видел предыдущие SO сообщения 1 , 2 и т. Д. Я хочу передать директиву препроцессора во время компиляции. С помощью scons я мог бы сделать:

num_times = ARGUMENTS.get('c', 1)
env.Append(CCFLAGS = '-DNUM_TIMES=%d' % int(num_times))

Надеюсь, это также возможно сделать с помощью make. Я хочу выдать

make c=4

или что-то в этом роде. Может кто-нибудь предложить метод. Я собираю папку, в которой есть подпапки со своими собственными make-файлами. Заранее спасибо.

1 Ответ

1 голос
/ 27 марта 2012

Один простой подход заключается в следующем:

CFLAGS += -DNUM_TIMES=$(c)
export CFLAGS

all:
    $(MAKE) -C your_subfolder

вызов с make c=2, а не касаться CFLAGS в make-файлах подпапок.

Другой способ - иметьMakefile часть в вашей корневой папке со всеми общими настройками, которые вы include используете в своих подкаталогах makefiles (с include).($(MAKE) гарантирует, что аргументы командной строки, которые вы передали make, также будут переданы подкомпонентам.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...