[PATCH] Add a script for regenerating all newlib autotools files

Jon Turney jon.turney@dronecode.org.uk
Thu Dec 9 21:47:20 GMT 2021

Add a script for regenerating all newlib autotools files, applying the
instructions in the 'Regenerating Configuration Files' section of the
README everywhere.

Running this script produces loads of errors about 'no AC_LANG_SOURCE
call detected in body' from libtool.m4.  This is because that file is

The versions of autotools in use on newlib seem to have backslid since
the README was last updated (for newlib 2.1.0 in 2013), so bring those
into alignment.  I don't know why.  I'm a little skeptical that automake
1.13 was used, since that doesn't permit '--cygnus', which we use.
 newlib/README     |  4 ++--
 newlib/autogen.sh | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 2 deletions(-)
 create mode 100755 newlib/autogen.sh

diff --git a/newlib/README b/newlib/README
index 1c0541284..d47cccbcb 100644
--- a/newlib/README
+++ b/newlib/README
@@ -609,8 +609,8 @@ After creating a new configure.in and Makefile.am file, you would issue:
 from newlib/libc/machine/XXXX
 It is strongly advised that you use an adequate version of autotools.
-For this latest release, the following were used: autoconf 2.69, aclocal 1.13.4, and 
-automake 1.13.4.
+For this latest release, the following were used: autoconf 2.68, aclocal 1.11.6, and 
+automake 1.11.6.
 Reporting Bugs
diff --git a/newlib/autogen.sh b/newlib/autogen.sh
new file mode 100755
index 000000000..001d297d8
--- /dev/null
+++ b/newlib/autogen.sh
@@ -0,0 +1,35 @@
+#!/bin/bash -e
+# If you're changing this script, you probably want to also be changing the
+# 'Regenerating Configuration Files' section in the README.
+basedir=$(dirname $(realpath $0))
+cd ${basedir}
+# aclocal -I${relative_path_to_toplevel_newlib_dir} -I${relative_path_to_toplevel_src_dir}
+find -name aclocal.m4 | while read f
+  (cd $(dirname $f) ; aclocal-1.11 -I $(realpath --relative-to . ${basedir}) -I $(realpath --relative-to . ${basedir}/..))
+# autoconf
+find -name configure.ac | while read f
+  (cd $(dirname $f) ; autoconf-2.68)
+# automake
+find -name configure.ac | while read f
+  # Exclude directories containing a configure.ac and below, so that Makefile.in
+  # files are generated from the nearest directory up the tree which contains a
+  # configure.ac file.
+  (cd $(dirname $f) ; find -type d -execdir test -e {}/configure.ac ';' -a -not -path '.' -prune -o -name Makefile.am -printf '%P\n' | while read m
+   do
+    automake-1.11 -ac ${m%.*}
+  done)
+rm -rf autom4te.cache

More information about the Newlib mailing list