- Installed 'aclocal' m4 macros can now accept installation directories
containing '@' characters (automake bug#20903)
+ - When combining AC_LIBOBJ or AC_FUNC_ALLOCA with the
+ "--disable-dependency-tracking" configure option in an out of source
+ build, the build sub-directory defined by AC_CONFIG_LIBOBJ_DIR is now
+ properly created. (automake bug#27781)
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
New in 1.15.1:
return $seen_libobjs;
}
-# handle_LIBOBJS_or_ALLOCA ($VAR)
-# -------------------------------
+# handle_LIBOBJS_or_ALLOCA ($VAR, $BASE)
+# --------------------------------------
# Definitions common to LIBOBJS and ALLOCA.
# VAR should be one of LIBOBJS, LTLIBOBJS, ALLOCA, or LTALLOCA.
+# BASE should be one base file name from AC_LIBSOURCE, or alloca.
sub handle_LIBOBJS_or_ALLOCA
{
- my ($var) = @_;
+ my ($var, $base) = @_;
my $dir = '';
$dir = backname ($relative_dir) . "/$dir"
if $relative_dir ne '.';
define_variable ('LIBOBJDIR', "$dir", INTERNAL);
- $clean_files{"\$($var)"} = MOSTLY_CLEAN;
- # libtool might create LIBOBJS or ALLOCA as a side-effect of using
+ if ($dir && !defined $clean_files{"$dir$base.\$(OBJEXT)"})
+ {
+ my $dirstamp = require_build_directory ($dir);
+ $output_rules .= "$dir$base.\$(OBJEXT): $dirstamp\n";
+ $output_rules .= "$dir$base.lo: $dirstamp\n"
+ if ($var =~ /^LT/);
+ }
+ # libtool might create .$(OBJEXT) as a side-effect of using
# LTLIBOBJS or LTALLOCA.
- $clean_files{"\$($var)"} = MOSTLY_CLEAN if $var =~ s/^LT//;
+ $clean_files{"$dir$base.\$(OBJEXT)"} = MOSTLY_CLEAN;
+ $clean_files{"$dir$base.lo"} = MOSTLY_CLEAN
+ if ($var =~ /^LT/);
}
else
{
$var->requires_variables ("\@${lt}LIBOBJS\@ used", $lt . 'LIBOBJS')
if ! keys %libsources;
- my $dir = handle_LIBOBJS_or_ALLOCA "${lt}LIBOBJS";
-
foreach my $iter (keys %libsources)
{
- if ($iter =~ /\.[cly]$/)
+ my $dir = '';
+ if ($iter =~ /^(.*)(\.[cly])$/)
{
- saw_extension ($&);
+ saw_extension ($2);
saw_extension ('.c');
+ $dir = handle_LIBOBJS_or_ALLOCA ("${lt}LIBOBJS", $1);
}
if ($iter =~ /\.h$/)
my ($var, $cond, $lt) = @_;
my $myobjext = $lt ? 'lo' : 'o';
$lt ||= '';
- my $dir = handle_LIBOBJS_or_ALLOCA "${lt}ALLOCA";
+ my $dir = handle_LIBOBJS_or_ALLOCA ("${lt}ALLOCA", "alloca");
$dir eq '' and $dir = './';
$var->requires_variables ("\@${lt}ALLOCA\@ used", $lt . 'ALLOCA');