From: "Mike Frysinger" <vapier@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/autotools-wrappers:main commit in: /
Date: Sun, 30 Jan 2022 09:24:21 +0000 (UTC) [thread overview]
Message-ID: <1643530842.a6595b6dee7e193cb008162880abcddc77e3ec5d.vapier@gentoo> (raw)
commit: a6595b6dee7e193cb008162880abcddc77e3ec5d
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 30 08:20:42 2022 +0000
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sun Jan 30 08:20:42 2022 +0000
URL: https://gitweb.gentoo.org/proj/autotools-wrappers.git/commit/?id=a6595b6d
autoconf-wrapper: rework WANT_AUTOCONF parsing to match WANT_AUTOMAKE
Take the WANT_AUTOMAKE approach to parsing to find a matching version.
This simplifies the code a bit, and will allow us to do better dynamic
detection in a follow up.
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>
ac-wrapper.sh | 92 ++++++++++++++++++++++++++---------------------------------
1 file changed, 41 insertions(+), 51 deletions(-)
diff --git a/ac-wrapper.sh b/ac-wrapper.sh
index bd9a8d9..e37f5f3 100755
--- a/ac-wrapper.sh
+++ b/ac-wrapper.sh
@@ -81,55 +81,52 @@ fi
KNOWN_AUTOCONF="2.71 2.70 2.69"
vers="${KNOWN_AUTOCONF} 9999 $(printf '2.%s ' `seq 99 -1 59`) 2.13"
-binary=""
-for v in ${vers} ; do
- if [ -z "${binary}" ] && [ -x "${full_argv0}-${v}" ] ; then
- binary="${full_argv0}-${v}"
- break
- fi
-done
-if [ -z "${binary}" ] ; then
- err "Unable to locate any usuable version of autoconf.\n" \
- "\tI tried these versions: ${vers}\n" \
- "\tWith a base name of '${full_argv0}'."
-fi
+#
+# Helper to scan for a usable program based on version.
+#
+binary=
+all_vers=
+find_binary() {
+ local v
+ all_vers="${all_vers} $*" # For error messages.
+ for v ; do
+ if [ "${v}" = "2.1" ] ; then
+ v="2.13"
+ fi
+ if [ -x "${full_argv0}-${v}" ] ; then
+ binary="${full_argv0}-${v}"
+ binary_ver=${v}
+ return 0
+ fi
+ done
+ return 1
+}
#
# Check the WANT_AUTOCONF setting. We accept a whitespace delimited
# list of autoconf versions.
#
-if [ -n "${WANT_AUTOCONF}" ] ; then
- for v in ${vers} x ; do
- if [ "${v}" = "x" ] ; then
- warn "warning: invalid WANT_AUTOCONF '${WANT_AUTOCONF}'; ignoring."
- unset WANT_AUTOCONF
- break
- fi
+find_latest() {
+ find_binary ${vers}
+}
+for wx in ${WANT_AUTOCONF:-latest} ; do
+ if [ "${wx}" = "latest" ] || [ "${wx}" = "2.5" ] ; then
+ find_latest && break
+ else
+ find_binary ${wx} && break
+ fi
+done
- for wx in ${WANT_AUTOCONF} ; do
- if [ "${wx}" = "latest" ] ; then
- wx="2.5"
- elif [ "${wx}" = "2.1" ] ; then
- wx="2.13"
- fi
- if [ -x "${full_argv0}-${wx}" ] ; then
- binary="${full_argv0}-${wx}"
- v="x"
- break
- elif [ "${wx}" = "2.5" ] ; then
- if [ "${v}" = "2.13" ] ; then
- # The "2.5" alias accepts every version except 2.13.
- continue
- fi
- if [ -x "${full_argv0}-${v}" ] ; then
- binary="${full_argv0}-${v}"
- v="x"
- break
- fi
- fi
- done
- [ "${v}" = "x" ] && break
- done
+if [ -z "${binary}" ] && [ -n "${WANT_AUTOCONF}" ] ; then
+ warn "could not locate installed version for WANT_AUTOCONF='${WANT_AUTOCONF}'; ignoring"
+ unset WANT_AUTOCONF
+ find_latest
+fi
+
+if [ -z "${binary}" ] ; then
+ err "Unable to locate any usuable version of autoconf.\n" \
+ "\tI tried these versions:${all_vers}\n" \
+ "\tWith a base name of '${full_argv0}'."
fi
#
@@ -187,14 +184,7 @@ fi
#
# for further consistency
#
-if [ -z "${WANT_AUTOCONF}" ] ; then
- for v in ${vers} ; do
- if [ "${binary}" = "${full_argv0}-${v}" ] ; then
- export WANT_AUTOCONF="${v}"
- break
- fi
- done
-fi
+export WANT_AUTOCONF="${binary_ver}"
#
# Now try to run the binary
next reply other threads:[~2022-01-30 9:24 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-30 9:24 Mike Frysinger [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-02-27 6:51 [gentoo-commits] proj/autotools-wrappers:main commit in: / Sam James
2024-06-07 13:27 Sam James
2023-12-24 0:55 Sam James
2022-12-07 20:46 Sam James
2022-11-22 21:20 Sam James
2022-11-22 21:20 Sam James
2022-02-08 2:58 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-30 9:24 Mike Frysinger
2022-01-29 20:35 Mike Frysinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1643530842.a6595b6dee7e193cb008162880abcddc77e3ec5d.vapier@gentoo \
--to=vapier@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox