与gnumake和先决条件的并行建筑

时间:2010-01-23 01:07:45

标签: makefile parallel-processing gnu-make

我的第一个问题(耶!)是关于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尝试构建任何{{}}之前{1}}?

我正在寻找的是让tool_[234]首先构建make -j,然后tool_1并行构建,但不执行{{1}的命令三次。我希望这是有道理的。感谢您的任何建议或想法!

1 个答案:

答案 0 :(得分:8)

make -j的行为与您在问题中的预期完全一致。它不会多次依赖。

管道(|)字符在依赖项列表中的作用是什么?