我正在尝试在 Inkscape 中包含新的实验性 Gtk+ 3 版本的预览我们的 PPA... 我想要使用不同的编译时选项编译上游源代码以生成两个不同的二进制包:“inkscape-trunk”(普通每日构建)和“inkscape-trunk-gtk3”(实验性的 Gtk+ 3 构建)。
下面,我展示了如何使用上游源手动执行此操作,但我需要知道如何使用 Debian 打包工具执行此操作。
我已经找到了麥克和vimUbuntu 源包,它们都使用不同的编译时配置创建多个二进制文件。但是,它们都使用旧的 debhelper 语法,并且规则文件都相当复杂。
我的问题:有人能推荐一个合适的示例包吗?其中使用新的优雅的“dh”debhelper 语法执行多个二进制构建?这是否可行,还是我必须手动编写规则文件。
# Building two different configurations of the same package...
# Make subfolders for building the two different configurations
src_dir=`pwd`
build_default_dir=${src_dir}/build-default
build_gtk3_dir=${src_dir}/build-gtk3
mkdir -p $build_default_dir
mkdir -p $build_gtk3_dir
# Generate build files
./autogen.sh
# Configure and build the default version
cd $build_default_dir
../configure --prefix=/usr/
make
# Configure and build the gtk+ 3 version
cd $build_gtk3_dir
../configure --prefix=/usr/ --enable-gtk3-experimental
make
答案1
看看qbittorrent包,它会使用新语法从同一源构建包的两个版本dh
。以下是您的案例中可能的样子(未经测试):
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_configure:
mkdir -p build-nox && cd build-default && ../configure --prefix=/usr
mkdir -p build-gtk3 && cd build-gtk3 && ../configure --prefix=/usr --enable-gtk3-experimental
override_dh_auto_build:
dh_auto_build --builddirectory build-default
dh_auto_build --builddirectory build-gtk3
override_dh_auto_install:
dh_auto_install --builddirectory build-default --destdir debian/inkscape-trunk
dh_auto_install --builddirectory build-gtk3 --destdir debian/inkscape-trunk-gtk3
override_dh_auto_clean:
dh_auto_clean --builddirectory build-default
dh_auto_clean --builddirectory build-gtk3