我在C项目中使用autoconf和automake。我想创建一个.deb包,所以我有以下control.in文件:
Source: myproject
Section: misc
Priority: optional
Maintainer: Paul Walker <pwalk@test.it>
Build-Depends: debhelper (>=9), autotools-dev@MORE_DEPENDENCIES@
Standards-Version: 1.0.0
Homepage: https://www.my-website.it/
... 我想使用autoconf配置此文件,因为可能会MORE_DEPENDENCIES根据我设置的一些configure-time标志。
该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 /文件夹”,我想我可以使用符号链接?有什么更好的办法吗?
这是最重要的食物链问题。
Debian打包工具被设计为构建Debian软件包的顶级工具,并且控制文件在整个软件包构建过程中应该保持不变。如果只希望构建二进制软件包,则可能会绕开它,但是修改构建依赖关系没有意义,因为它们是较早评估的。
正常的构建过程将distclean构建树,以便记录源包中的更改,然后重新运行configure并进行构建。如果此时更新debian / control,则结果是不确定的。
如果必须以编程方式更新debian / control,请使用常规软件包构建中无法使用的单独机制。如果您有常规发行版,而不是从开发版本中删减软件包,则将软件包视为分开可能更有意义。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。