将默认值全部更改为makefile中的其他内容

时间:2013-02-07 16:10:41

标签: linux makefile

在makefile中构建多个目标的情况下,当我说'make'时默认情况下会生成所有目标。是否可以将所有的默认值更改为其他内容?

all : target1 target2 

现在,当我发出'make'命令时,我只想构建target1。

3 个答案:

答案 0 :(得分:4)

与Carl提到的一样,你可以从行中删除target2。

但是如果你仍然希望所有人都制作target1和target2,那么有一些选择......

你没有说你正在使用哪种,这些细节取决于版本,但我将详细介绍它如何适用于GNU make。

在GNU make中,第一个目标成为默认目标。所以如果你有一个像Makefile这样的Makefile:

next:
        @echo "next"

all:
        @echo "All"

它将打印:

$ make
next

您还可以更改默认目标:

.DEFAULT_GOAL=other

next:
        @echo "next"


all:
        @echo "All"

other:
        @echo "other"

它会显示:

$ make
other

这是:

$ make --version
GNU Make 3.81

答案 1 :(得分:0)

当然,只需从该行删除target2

答案 2 :(得分:0)

只需添加以下行:

target1:
在定义all的规则之前

。名称all并不特殊:它因为是列出的第一个规则而成为默认值。通过在该行之前添加target1:target1成为默认值。请注意,允许多个规则定义不是标准行为(这基本上是一个伪规则,其行为稍后在Makefile中定义),但这适用于gnu make。如果它不起作用,只需在target1的定义之前移动all的实际定义。