Параллельное здание с gnumake и предпосылками

Мой первый вопрос (yay!) о gnumake, и параллель строит. Вот быстрый файл в качестве примера:

.PHONY: tool_1 tool_2 tool_3 tool_4 all tools

all: | tools

tools: | tool_2 tool_3 tool_4

tool_1:
    # commands for tool 1

tool_2: | tool_1
    # commands for tool 2

tool_3: | tool_1
    # commands for tool 3

tool_4: | tool_1
    # commands for tool 4

Если я делаю make -j на этом парне, то, что я имею здесь правильный, чтобы гарантировать что команды для tool_1 выполнены точно однажды, и прежде make попытки построить любой из tool_[234]?

То, что я ищу, должно иметь make -j причина tool_1 быть построенным сначала, тогда tool_[234] быть построенным параллельно, но не выполняя команды за tool_1 три раза. Я надеюсь, что это имеет смысл. Спасибо за любые предложения или идеи!

10
задан Carl Norum 23 January 2010 в 01:13
поделиться

1 ответ

Сделать -j ведет себя именно так, как вы ожидаете в вашем вопросе. Это не делает зависимости несколько раз.

Что делает эта труба ( | ) символ в вашем списке зависимости?

8
ответ дан 4 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

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