首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >autotools扩展.PHONY

autotools扩展.PHONY
EN

Stack Overflow用户
提问于 2013-07-15 18:53:54
回答 1查看 979关注 0票数 0

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 15:52:03

简单地去做吧。.PHONY是一个目标(而不是变量),因此您不会覆盖它,但您可以向其添加:

考虑一下简单的Makefile:

代码语言:javascript
复制
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",因为它们是假的,所以即使文件存在,目标也会运行。

现在考虑Makefile.am`:

代码语言:javascript
复制
bin_PROGRAMS = foonly
foonly_SOURCES = main.c

## an additional phony target:
.PHONY: test
test:
    echo "test"

检查生成的Makefile,您将再次看到多个.PHONY目标。它们的行为与第一个示例中的行为类似:相加,而不是互相覆盖。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17652545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档