多个二进制包的示例

多个二进制包的示例

我正在尝试在 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

相关内容