1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
https://savannah.gnu.org/support/?111273
https://file.savannah.gnu.org/file/0001-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch?file_id=57364
From d75171fdf8d03d2e070fcc3dbb5afb942dbd7828 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sat, 5 Jul 2025 17:20:11 +0200
Subject: [PATCH] autoreconf: Adapt to the on-disk situation after autopoint
has run.
Reported in <https://savannah.gnu.org/support/?111273>.
* bin/autoreconf.in (autoreconf_current_directory): After invoking autopoint,
rerun aclocal. When doing so, pass extra options "-I m4" if the configure.ac
does not specify a macro dir.
---
bin/autoreconf.in | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index 3f6a74fe..eb0d96a9 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -489,6 +489,7 @@ sub autoreconf_current_directory ($)
# Actually, it is even more restrictive, as it greps for
# '^AM_GNU_GETTEXT_(REQUIRE_)?VERSION('. We did this above, while
# scanning configure.ac.
+ my $invoked_autopoint;
if (!$uses_liblink && !$uses_iconv && !$uses_gettext)
{
verb "$configure_ac: not using Gettext";
@@ -514,6 +515,7 @@ sub autoreconf_current_directory ($)
xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
$autopoint);
}
+ $invoked_autopoint = 1;
}
@@ -593,6 +595,7 @@ sub autoreconf_current_directory ($)
# from the final autoconf invocation.
my $aux_dir;
my @aux_files;
+ my @macro_dirs;
my $uses_liblink_via_traces;
my $uses_iconv_via_traces;
my $uses_gettext_via_traces;
@@ -616,6 +619,8 @@ sub autoreconf_current_directory ($)
'AC_CONFIG_AUX_DIR',
'AC_CONFIG_HEADERS',
'AC_CONFIG_SUBDIRS',
+ 'AC_CONFIG_MACRO_DIR_TRACE',
+ 'AC_CONFIG_MACRO_DIR',
'AC_INIT',
'AC_REQUIRE_AUX_FILE',
'AC_PROG_LIBTOOL',
@@ -640,6 +645,8 @@ sub autoreconf_current_directory ($)
my ($macro, @args) = split (/::/);
$aux_dir = $args[0] if $macro eq "AC_CONFIG_AUX_DIR";
push @aux_files, $args[0] if $macro eq "AC_REQUIRE_AUX_FILE";
+ push @macro_dirs, $args[0] if $macro eq "AC_CONFIG_MACRO_DIR_TRACE"
+ || $macro eq "AC_CONFIG_MACRO_DIR";
$uses_autoconf = 1 if $macro eq "AC_INIT";
# Here we need to explicitly test for GUILE_FLAGS, because in the
# typical situation where configure.ac invokes GUILE_FLAGS,
@@ -679,6 +686,15 @@ sub autoreconf_current_directory ($)
}
}
+ # When configure.ac does not specify a macro dir, autopoint has
+ # created a directory named 'm4' and copied its *.m4 files into it.
+ # In this case, we need to rerun 'aclocal', in order to pass it the
+ # options "-I m4" this time.
+ if ($invoked_autopoint && !@macro_dirs)
+ {
+ $rerun_aclocal = 1;
+ }
+
# Gettext consistency checks.
# Some projects intentionally don't call AM_GNU_GETTEXT_(REQUIRE_)VERSION
# because they have all of the gettext infrastructure checked into version
@@ -807,6 +823,8 @@ sub autoreconf_current_directory ($)
xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
$autopoint);
}
+ $invoked_autopoint = 1;
+ $rerun_aclocal = 1;
}
@@ -824,6 +842,12 @@ sub autoreconf_current_directory ($)
}
else
{
+ # When configure.ac does not specify a macro dir, autopoint has
+ # created a directory named 'm4' and copied its *.m4 files into it.
+ if ($invoked_autopoint && !@macro_dirs)
+ {
+ $aclocal_flags .= " -I m4";
+ }
xsystem ("$aclocal $aclocal_flags");
}
}
--
2.43.0
|