path: root/dh_auto_install
diff options
authorModestas Vainius <>2009-08-26 16:49:39 -0400
committerJoey Hess <>2009-08-26 16:49:39 -0400
commit1cc05631c07ec51f77b76d886ba035d6c7739fb3 (patch)
tree6c2df2608e0d96c66a1d50b5855cff3ab329a581 /dh_auto_install
parenta384f4d5349b7828f6f92382a873285f4ca520dd (diff)
Support --destdir option in dh_auto_install
This patch adds --destdir option to dh_auto_install which allows to override destdir auto-selection. This basically closes #538201 since the same requested behaviour can be achieved but in a more clean way. Signed-off-by: Modestas Vainius <>
Diffstat (limited to 'dh_auto_install')
1 files changed, 27 insertions, 13 deletions
diff --git a/dh_auto_install b/dh_auto_install
index b57db83..b4a355f 100755
--- a/dh_auto_install
+++ b/dh_auto_install
@@ -9,6 +9,7 @@ dh_auto_install - automatically runs make install or similar
use strict;
use Debian::Debhelper::Dh_Lib;
use Debian::Debhelper::Dh_Buildsystems;
+use File::Spec;
use Cwd;
@@ -25,10 +26,11 @@ if the environment variable is set). If there is a or Build.PL,
it is used. Note that the Ant build system does not support installation,
so dh_auto_install will not install files built using Ant.
-The files are installed into debian/<package>/ if there is only one binary
-package. In the multiple binary package case, the files are instead
-installed into debian/tmp/, and should be moved from there to the
-appropriate package build directory using L<dh_install(1)>.
+Unless --destdir option is specified, the files are installed into
+debian/<package>/ if there is only one binary package. In the multiple binary
+package case, the files are instead installed into debian/tmp/, and should be
+moved from there to the appropriate package build directory using
DESTDIR is used to tell make where to install the files.
If the Makefile was generated by MakeMaker from a Makefile.PL, it will
@@ -45,6 +47,12 @@ system selection and control options.
=over 4
+=item B<--destdir=>I<directory>
+Install files into the specified I<directory>. If this option is not specified,
+destination directory is determined automatically as described in the
+L</DESCRIPTION> section.
=item B<--> I<params>
Pass "params" to the program that is run. These can be used to supplement
@@ -54,17 +62,23 @@ or override the any standard parameters that dh_auto_install passes.
my $destdir;
-my @allpackages=getpackages();
-if (@allpackages > 1) {
- $destdir="debian/tmp";
-else {
- $destdir=tmpdir($dh{MAINPACKAGE});
+buildsystems_init(options => {
+ "destdir=s" => \$destdir,
+# If destdir is not specified, determine it automatically
+if (!$destdir) {
+ my @allpackages=getpackages();
+ if (@allpackages > 1) {
+ $destdir="debian/tmp";
+ }
+ else {
+ $destdir=tmpdir($dh{MAINPACKAGE});
+ }
+$destdir = File::Spec->rel2abs($destdir, Cwd::cwd());
buildsystems_do("install", $destdir);