My first question (yay!) is about gnumake and parallel builds. Here's a quick example file:
.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
If I do make -j
on this guy, is what I have here correct to ensure that the commands for tool_1
are executed exactly once, and before make
tries to build any of tool_[234]
?
What I'm looking for is to have make -j
cause tool_1
to be built first, then tool_[234]
to be built in parallel, but without executing the commands for tool_1
three times. I hope that makes sense. Thanks for any suggestions or ideas!
make -j
behaves exactly as you expect in your question. It does not make dependencies multiple times.
What does that pipe (|
) character do in your dependency list?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With