Как я могу использовать Target-speci c Variable Values ​​и вызывать другие правила при параллельном выполнении? - PullRequest
0 голосов
/ 15 января 2020

У меня есть make-файл со следующими строками:

debug: CFLAGS += $(DEBUGFLAGS)
debug: clean all

Я хочу запустить 'clean' и 'all' со значениями Target Specifi c Variable. Это работает нормально и, как и ожидалось.

Но если бы я запустил это при параллельном выполнении, 'clean' мог уничтожить создаваемые файлы с помощью 'all'.

Так что если я сделаю что-то вроде следующего:

debug: CFLAGS += $(DEBUGFLAGS)
debug:
    $(MAKE) clean
    $(MAKE) all

Это обеспечит соблюдение порядка правил. Но переменные Target Specifi c не будут учитываться при новых вызовах make.

Поэтому мне было интересно, как я могу использовать как переменные Target Specifi c, так и параллельное выполнение.

1 Ответ

0 голосов
/ 15 января 2020

Почему бы просто не пройти через значения?

debug: CFLAGS += $(DEBUGFLAGS)
debug:
        $(MAKE) clean CFLAGS='$(CFLAGS)'
        $(MAKE) all CFLAGS='$(CFLAGS)'
...