>From c3d51adb53400fc8bf65c0e003d810b2e7166d0d Mon Sep 17 00:00:00 2001 From: Michael Haubenwallner Date: Wed, 16 Aug 2017 18:16:12 +0200 Subject: [PATCH] automake: Depend on LIBOBJDIR for LIBOBJS. This change fixes automake bug#27781. * bin/automake.in: Add Makefile dependency on LIBOBJDIR/dirstamp for each LIBOBJS/ALLOCA variable used. --- bin/automake.in | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bin/automake.in b/bin/automake.in index 9c4cb86..b82e8c5 100644 --- a/bin/automake.in +++ b/bin/automake.in @@ -2153,10 +2153,19 @@ sub handle_LIBOBJS_or_ALLOCA $dir = backname ($relative_dir) . "/$dir" if $relative_dir ne '.'; define_variable ('LIBOBJDIR', "$dir", INTERNAL); + my $dirstamp = ''; + # Abusing $clean_files{"$(VAR)"} as indicator for whether + # we have added the "$(VAR): $dirstamp" dependency already. + $dirstamp = require_build_directory ($dir) + if ! defined $clean_files{"\$($var)"}; $clean_files{"\$($var)"} = MOSTLY_CLEAN; + $output_rules .= "\$($var): $dirstamp\n" if ($dirstamp); # If LTLIBOBJS is used, we must also clear LIBOBJS (which might # be created by libtool as a side-effect of creating LTLIBOBJS). - $clean_files{"\$($var)"} = MOSTLY_CLEAN if $var =~ s/^LT//; + if ($var =~ s/^LT//) { + $clean_files{"\$($var)"} = MOSTLY_CLEAN; + $output_rules .= "\$($var): $dirstamp\n" if ($dirstamp); + } } return $dir; -- 2.10.2