自动生成:从"dist"压缩包中排除中间源文件



我有一个中间源文件foobar.c它通过 sed 脚本从foobar.c.in自动生成。 通过自动工具创建dist目标包括生成的压缩包中的foobar.c。 在Makefile.amconfigure.ac中我该怎么做才能排除foobar.c

解决方案实际上非常简单

nodist_foobar_SOURCES = foobar.c
BUILT_SOURCES = foobar.c

这样,automake 知道foobar.c是在构建时生成的,并且由于它是nodist_因此不会被重新分发。

尽管根据您谈论的字符串类型,解决它的常见方法是使用预处理器宏并将其作为CPPFLAGS传递

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

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

我通过将我的问题从使用 sed 脚本修改foobar.c.in更改为让configure确定所需的字符串并将它们粘贴到 config.h 中,这包含在 foobar.c 的非中间版本中。 config.h不包括在压缩包中。

但是,似乎仍然应该有一些方法告诉自动工具从dist tarball中排除某些文件。

最新更新