Makefile to install it all into debian/tmp, and then use dh_install to copy
directories and files from there into the proper package build directories.
+From debhelper compatability level 7 on, if --sourcedir is not specified,
+dh_install will install files from debian/tmp if the directory contains the
+files. Otherwise, it will install files from the current directory.
+
=head1 OPTIONS
=over 4
if (! defined $dh{AUTODEST} && @$set > 1) {
$dest=pop @$set;
}
+
+ my @filelist;
+ foreach my $glob (@$set) {
+ my @found = glob "$srcdir/$glob";
+ if (! compat(6)) {
+ # Fall back to looking in debian/tmp.
+ if (! @found || ! -e $found[0]) {
+ @found = glob "debian/tmp/$glob";
+ }
+ }
+ push @filelist, @found;
+ }
+
if (! compat(4)) { # check added in v5
# glob now, relative to srcdir
- if (! map { glob "$srcdir/$_" } @$set) {
- error("missing files (@$set), aborting");
+ if (! @filelist) {
+ error("$package missing files (@$set), aborting");
}
}
- foreach my $src (map { glob "$srcdir/$_" } @$set) {
+ foreach my $src (@filelist) {
next if excludefile($src);
if (! defined $dest) {
}
if (-d $src && $exclude) {
- my ($dir_basename) = basename($src);
- # Pity there's no cp --exclude ..
+ my $basename = basename($src);
+ my $dir = ($basename eq '.') ? $src : "$src/..";
my $pwd=`pwd`;
chomp $pwd;
- complex_doit("cd $src/.. && find $dir_basename $exclude \\( -type f -or -type l \\) -exec cp --parents -dp {} $pwd/$tmp/$dest/ \\;");
+ complex_doit("cd '$dir' && find '$basename' $exclude \\( -type f -or -type l \\) -exec cp --parents -dp {} $pwd/$tmp/$dest/ \\;");
# cp is annoying so I need a separate pass
# just for empty directories
- complex_doit("cd $src/.. && find $dir_basename $exclude \\( -type d -and -empty \\) -exec cp --parents -a {} $pwd/$tmp/$dest/ \\;");
+ complex_doit("cd '$dir' && find '$basename' $exclude \\( -type d -and -empty \\) -exec cp --parents -a {} $pwd/$tmp/$dest/ \\;");
}
else {
doit("cp", "-a", $src, "$tmp/$dest/");
}
}, $srcdir);
if (@missing) {
- warning "$_ exists in debian/tmp but is not installed to anywhere" foreach @missing;
+ warning "$_ exists in $srcdir but is not installed to anywhere" foreach @missing;
if ($dh{FAIL_MISSING}) {
error("missing files, aborting");
}