Мой первый вопрос (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
три раза. Я надеюсь, что это имеет смысл. Спасибо за любые предложения или идеи!
Сделать -j
ведет себя именно так, как вы ожидаете в вашем вопросе. Это не делает зависимости несколько раз.
Что делает эта труба ( |
) символ в вашем списке зависимости?