回答您的问题:不,不可能更改构建包的基本顺序。
dh-sequencer 将分阶段运行构建过程,例如(非常简化)
在您当前的设置中,“构建”阶段将运行两个构建(针对您的两种风格),一旦两个构建完成,它将进入下一个阶段,将所有工件打包到 deb 中。
现在,不幸的是,您的第二个构建只会覆盖您的第一个构建(或者它会检测到它已经有二进制文件(不考虑更改的环境变量)并且根本不重新构建)。这主要是上游源的构建系统(即:您的构建系统)的问题,而不是 Debian 软件包工具集的问题。
为了正确构建您的包的多种风格,您的构建系统应该(真正)支持树外构建,您可以在 subdir1/ 中为一种风格构建所有二进制文件,在 subdir2/ 中构建另一种风格的所有二进制文件,所以这两个构建不会干扰。
然后您需要(手动!)指示dh
使用适当的标志调用您的构建系统以使用这些子目录(显然还有不同的配置)。
一个真实的 Debian 软件包示例(免责声明:由我自己维护),它使用相同的源构建多种风格,dh
可以在这里找到。
上游构建系统使用autotools
(它本机支持树外构建),并且风格通过不同的配置标志来区分。
要点是这样的:
#!/usr/bin/make -f
builddir=debian/build/flavor-
FLAVOURS = foo bar
CONFIG_foo = --some-flag
CONFIG_bar = --some-other-flag
%:
dh $@
# this target depends on 'configure_foo' and 'configure_bar'
override_dh_auto_configure: $(patsubst %,configure_%,$(FLAVORS))
# 'configure_%' is expanded to 'configure_foo' and 'configure_bar'
# the '$*' is replaced with the '%' component of the target ('foo', 'bar')
# so there are different builddirs ('debian/build/flavor-foo', 'debian/build/flavor-bar')
# and we call `configure`-script (relative to the builddir) with the appropriate flag
configure_%:
mkdir -p $(builddir)$*
cd $(builddir)$* && ../../../configure $(CONFIG_$*)
# same for the build-stage; this is simpler as we only need to run 'make' in the
# various builddirs
override_dh_auto_build: $(patsubst %,build_%,$(FLAVORS))
build_%:
dh_auto_build --sourcedirectory=$(builddir)$*