public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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


             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