Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autotools 自动工具,假的_Autotools_Automake - Fatal编程技术网

Autotools 自动工具,假的

Autotools 自动工具,假的,autotools,automake,Autotools,Automake,我想将目标添加到.PHONY目标列表中。 但是,当我在Makefile.am中重新定义.PHONY时,它会覆盖自动生成的Makefile中的上一个。我只是想扩展它 有没有一种优雅的方法可以做到这一点呢?只要做就行了。 .PHONY是一个目标(而不是一个变量),因此您不会覆盖它,但可以添加到它: 考虑一下简单的Makefile: default: foo bar baz @touch $^ .PHONY: foo foo: @echo "foo" .PHONY: bar bar:

我想将目标添加到
.PHONY
目标列表中。 但是,当我在
Makefile.am
中重新定义
.PHONY
时,它会覆盖自动生成的
Makefile
中的上一个。我只是想扩展它

有没有一种优雅的方法可以做到这一点呢?

只要做就行了。
.PHONY
是一个目标(而不是一个变量),因此您不会覆盖它,但可以添加到它:

考虑一下简单的Makefile:

default: foo bar baz
   @touch $^

.PHONY: foo
foo:
   @echo "foo"
.PHONY: bar
bar:
   @echo "bar"

baz:
   @echo "baz"
如您所见,有两个独立的
.PHONY
定义

在第一次运行时,这将打印出“foo”、“bar”和“baz”,然后触摸(创建)3个这样命名的文件。 在第二次运行时,它只会打印“foo”和“bar”,因为它们是假的,所以即使文件存在,目标也会运行

现在考虑Mag文件。AM:< /P>

bin_PROGRAMS = foonly
foonly_SOURCES = main.c

## an additional phony target:
.PHONY: test
test:
    echo "test"
检查生成的
Makefile
,您将再次看到多个
.PHONY
目标。它们的行为类似于第一个示例:相加,而不是相互覆盖。

只需这样做。
.PHONY
是一个目标(而不是一个变量),因此您不会覆盖它,但可以添加到它:

考虑一下简单的Makefile:

default: foo bar baz
   @touch $^

.PHONY: foo
foo:
   @echo "foo"
.PHONY: bar
bar:
   @echo "bar"

baz:
   @echo "baz"
如您所见,有两个独立的
.PHONY
定义

在第一次运行时,这将打印出“foo”、“bar”和“baz”,然后触摸(创建)3个这样命名的文件。 在第二次运行时,它只会打印“foo”和“bar”,因为它们是假的,所以即使文件存在,目标也会运行

现在考虑Mag文件。AM:< /P>

bin_PROGRAMS = foonly
foonly_SOURCES = main.c

## an additional phony target:
.PHONY: test
test:
    echo "test"
检查生成的
Makefile
,您将再次看到多个
.PHONY
目标。它们的行为类似于第一个示例:相加,而不是相互覆盖