automake:从" dist"中排除中间源文件。 tar包

时间:2014-11-29 10:00:58

标签: autotools automake

我有一个中间源文件foobar.c,它是通过sed脚本从foobar.c.in自动生成的。通过autotools创建的dist目标在生成的tarball中包含foobar.c。我该怎么做Makefile.amconfigure.ac来排除foobar.c

2 个答案:

答案 0 :(得分:3)

解决方案实际上很简单

nodist_foobar_SOURCES = foobar.c
BUILT_SOURCES = foobar.c

这样,automake知道foobar.c是在构建时生成的,因为它在nodist_中,所以不会重新分发。

虽然取决于你所讨论的字符串类型,解决它的常用方法是使用预处理器宏并将其作为CPPFLAGS传递

foobar_CPPFLAGS = "-DSOMESTRING=\"$(somevariable)\""

然后在代码中使用SOMESTRING并让预处理器处理它。

答案 1 :(得分:0)

我通过更改使用sed脚本修改foobar.c.in到让configure确定所需的字符串并将其粘贴到config.h中来解决我的问题,foobar.c包含在非中介中版本config.h。 tar包中不包含{{1}}。

然而,似乎应该有一些方法告诉autotools从dist tarball中排除某些文件。