summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/automake.in20
-rw-r--r--lib/am/depend.am7
-rw-r--r--t/pr224.sh4
3 files changed, 16 insertions, 15 deletions
diff --git a/bin/automake.in b/bin/automake.in
index d8ecca514..21cccbe9e 100644
--- a/bin/automake.in
+++ b/bin/automake.in
@@ -1242,14 +1242,16 @@ sub handle_languages ()
INTERNAL);
define_variable ('am__maybe_remake_depfiles', 'depfiles', INTERNAL);
define_variable ('am__depfiles_remade', "@dep_files", INTERNAL);
- # Generate each 'include' directive individually. Several make
- # implementations (IRIX 6, Solaris 10, FreeBSD 8) will fail to
- # properly include several files resulting from a variable
- # expansion. Just Generating many separate includes seems thus
- # safest.
$output_rules .= "\n";
+ my @dist_rms;
foreach my $depfile (@dep_files)
{
+ push @dist_rms, "\t-rm -f $depfile";
+ # Generate each 'include' directive individually. Several
+ # make implementations (IRIX 6, Solaris 10, FreeBSD 8) will
+ # fail to properly include several files resulting from a
+ # variable expansion. Just Generating many separate includes
+ # seems thus safest.
$output_rules .= subst ('AMDEP_TRUE') .
subst ('am__include') .
" " .
@@ -1262,11 +1264,9 @@ sub handle_languages ()
require_conf_file ("$am_file.am", FOREIGN, 'depcomp');
- # Compute the set of directories to remove in distclean-depend.
- my @dep_dirs = uniq (map { dirname ($_) } @dep_files);
- $output_rules .= file_contents ('depend',
- new Automake::Location,
- DEPDIRS => "@dep_dirs");
+ $output_rules .= file_contents (
+ 'depend', new Automake::Location,
+ 'DISTRMS' => join ("\n", @dist_rms));
}
}
else
diff --git a/lib/am/depend.am b/lib/am/depend.am
index 0b226b6ba..3813996ec 100644
--- a/lib/am/depend.am
+++ b/lib/am/depend.am
@@ -27,8 +27,9 @@ am--depfiles: $(am__depfiles_remade)
## erase them in -am or -recursive rules; that would prevent any other
## rules from being recursive (for instance multilib clean rules are
## recursive).
+if %?DISTRMS%
distclean:
- -rm -rf %DEPDIRS%
-
+ %DISTRMS%
maintainer-clean:
- -rm -rf %DEPDIRS%
+ %DISTRMS%
+endif
diff --git a/t/pr224.sh b/t/pr224.sh
index fcea14865..1961786b1 100644
--- a/t/pr224.sh
+++ b/t/pr224.sh
@@ -56,8 +56,8 @@ cd build
../configure
$MAKE
-test -d foo/.deps
+test -f foo/.deps/main.Po
$MAKE distclean
-test -d foo/.deps && exit 1
+test ! -e foo/.deps/main.Po
: