我正在C项目中使用autoconf和automake。我想创建一个.deb包,所以我有以下control.in
文件:
Source: myproject
Section: misc
Priority: optional
Maintainer: Paul Walker <[email protected]>
Build-Depends: debhelper (>=9), autotools-dev@MORE_DEPENDENCIES@
Standards-Version: 1.0.0
Homepage: https://www.my-website.it/
...
我想使用autoconf配置此文件,因为根据我设置的某些配置时间标记,可能会有MORE_DEPENDENCIES
。
此control.in
文件位于stubs/
文件夹中,替换了MORE_DEPENDENCIES
变量后,我还要将生成的control
文件复制到最终目标文件夹debian/
中,以创建.deb包。
所以本质上,我试图让autoconf执行以下操作:
{srcdir}/stubs/
作为输入文件夹,以便替换坐在那里的.in
文件中的宏{srcdir}/stubs/control.in
,替换其中的任何宏,并使用替换的宏生成文件{srcdir}/stubs/control
{srcdir}/stubs/control
复制到最终目标文件夹{srcdir}/debian/control
我一直在寻找示例或在官方文档中,但仍然找不到如何在根源文件夹之外配置.in
文件。
关于'如何将最终文件复制到debian /文件夹',我想我可以使用a symlink?有没有更好的方法?
这是最重要的食物链问题。
Debian打包工具被设计为构建Debian软件包的顶级工具,并且控制文件在整个软件包构建过程中都应该保持不变。如果您只希望构建二进制软件包,则可能会绕开它,但是修改构建依赖项将毫无意义,因为它们是较早评估的。
正常的构建过程将distclean
构建树,以便记录源包中的更改,然后重新运行configure
并进行构建。如果此时更新debian / control,则结果不确定。
如果必须以编程方式更新debian / control,请使用常规软件包构建中无法使用的单独机制。如果您有常规发行版,而不是从开发版本中删减软件包,则将软件包视为分开可能更有意义。