The following command line options are supported by all of the
dh_auto_
* debhelper programs. These programs support a variety of
build systems, and normally heuristically determine which to use,
and how to use them. You can use these command line options to
override the default behavior. Typically these are passed to
dh(1), which then passes them to all the dh_auto_
* programs.
-S
buildsystem, --buildsystem=
buildsystem
Force use of the specified buildsystem, instead of trying to
auto-select one which might be applicable for the package.
Pass none
as buildsystem to disable auto-selection.
-D
directory, --sourcedir=
directory, --sourcedirectory=
directory
Assume that the original package source tree is at the
specified directory rather than the top level directory of
the Debian source package tree.
Warning
: The --sourcedir
variant matches a similar named
option in dh_install
and dh_missing
(etc.) for historical
reasons. While they have a similar name, they have very
distinct purposes and in some cases it can cause errors when
this variant is passed to dh
(when then passes it on to all
tools).
-B
[directory], --builddir
[=directory],
--builddirectory
[=directory]
Enable out of source building and use the specified directory
as the build directory. If directory parameter is omitted, a
default build directory will be chosen.
If this option is not specified, building will be done in
source by default unless the build system requires or prefers
out of source tree building. In such a case, the default
build directory will be used even if --builddirectory
is not
specified.
If the build system prefers out of source tree building but
still allows in source building, the latter can be re-enabled
by passing a build directory path that is the same as the
source directory path.
--parallel
, --no-parallel
Control whether parallel builds should be used if underlying
build system supports them. The number of parallel jobs is
controlled by the DEB_BUILD_OPTIONS
environment variable
("Debian Policy, section 4.9.1") at build time. It might also
be subject to a build system specific limit.
If neither option is specified, debhelper currently defaults
to --parallel
in compat 10 (or later) and --no-parallel
otherwise.
As an optimization, dh
will try to avoid passing these
options to subprocesses, if they are unnecessary and the only
options passed. Notably this happens when DEB_BUILD_OPTIONS
does not have a parallel parameter (or its value is 1).
--max-parallel=
maximum
This option implies --parallel
and allows further limiting
the number of jobs that can be used in a parallel build. If
the package build is known to only work with certain levels
of concurrency, you can set this to the maximum level that is
known to work, or that you wish to support.
Notably, setting the maximum to 1 is effectively the same as
using --no-parallel
.
--reload-all-buildenv-variables
By default, dh(1) will compute several environment (e.g. by
using dpkg-buildflags(1)) and cache them to avoid having all
dh_auto_*
tool recompute them.
When passing this option, the concrete dh_auto_*
tool will
ignore the cache from dh(1) and retrigger a rebuild of these
variables. This is useful in the very rare case where the
package need to do multiple builds but with different
...FLAGS
options. A concrete example would be needing to
change the -O
parameter in CFLAGS
in the second build:
export DEB_CFLAGS_MAINT_APPEND=-O3
%:
dh $@
override_dh_auto_configure:
dh_auto_configure -Bbuild-deb ...
DEB_CFLAGS_MAINT_APPEND=-Os dh_auto_configure \
--reload-all-buildenv-variables -Bbuild-udeb ...
Without --reload-all-buildenv-variables
in the second call to
dh_auto_configure(1), the change in DEB_CFLAGS_MAINT_APPEND
would be ignored as dh_auto_configure(1) would use the cached
value of CFLAGS
set by dh(1).
This option is only available with debhelper (>= 12.7~)
when
the package uses compatibility level 9 or later.
--list
, -l
List all build systems supported by debhelper on this system.
The list includes both default and third party build systems
(marked as such). Also shows which build system would be
automatically selected, or which one is manually specified
with the --buildsystem
option.