这可能不是一个伟大的工作dh
。通常,它实际上只是为了从debian/rules
makefile 中使用。--until
即使它没有被弃用,这种方法可能对你来说也很成问题。
但是,您可以通过执行您自己的脚本中的所有步骤来拆分构建过程dpkg-buildpackage
(手册页顶部的摘要应该告诉您所需的一切)。
但即便如此,也不一定能让您拆分流程的configure
各个build
部分。不需要debian/rules
文件来分隔这些步骤或使用户可以轻松地执行此操作。许多人会,有些人不会。
我的建议是dpkg-buildpackage
在每个阶段都尽可能多地去做,以避免在构建环境、依赖检查、树准备、fakeroot 调用或其他东西上弄乱一些微妙的东西。只需-nc
在第一个阶段之后传递阶段,以避免清理树并重新开始。dh
足够聪明,当阶段重叠(如build*
和binary*
)时,可以跳过您已经完成的部分。
您可以通过以下方式为大多数软件包获得正确的配置/构建分离:
set -e
# check build deps, clean tree, make source debs
dpkg-buildpackage -S -us -uc
if grep '^configure:' debian/rules; then
debian/rules configure
elif grep '^override_dh_auto_configure:' debian/rules; then
debian/rules override_dh_auto_configure
elif grep '^%:' debian/rules; then
dh_auto_configure
else
: # oh well, it'll get done during the build phase if necessary
fi
# prepare environment, perform build
dpkg-buildpackage -nc -T build
# install stuff into temp dir, tar it up, make the deb file
dpkg-buildpackage -nc -b -us -uc
# remake the changes file, if you care, since right now it only
# includes the binaries
dpkg-genchanges > ../$whatever.changes
至少,这应该总是正确的包。