Makefile.am:如何为新扩展添加规则?

时间:2014-01-13 17:52:10

标签: c++ makefile automake resource-files

我正在尝试修改现有的makefile.am以包含将* .rc扩展名转换为资源文件的规则。这是我目前所能得到的。

mytarget_SOURCES += ico.rc

.rc.o:
    windres -i $< $@

如下所述:http://www.gnu.org/software/automake/manual/html_node/Suffixes.html 在生成的makefile中,ico.rc被添加到源代码中,ico.o被添加到对象中(这样我觉得很好)。

在makefile的末尾,这个.rc.o规则被字面上粘贴了,但我怀疑应该是这样,对吧? .rc.o应该是一个自动规则,但它不是创建ico.o文件的好规则,是吗?

当make运行时,它会重新生成makefile,然后继续抱怨没有规则来制作ico.o. windres,或者我放在那里的任何东西(例如回声)都不会运行。我试过谷歌搜索,但信息很少,而且我能找到的大多数都是我上面给出的链接的副本。我做错了什么?

1 个答案:

答案 0 :(得分:2)

Automake只是简单地将生成的Makefile复制到生成的Makefile中。因此,只要您编写的是有效的makefile语法,就可以了。

你所拥有的是make中有效的隐式后缀规则的 part 。但是,您缺少需要将.rc定义为有效后缀(.o是内置后缀列表的一部分,因此您不必添加它,除非您只是想要完成)。

将它添加到Makefile.am中:

.SUFFIXES: .rc

有关详细信息,请参阅http://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html