1 |
commit: a6595b6dee7e193cb008162880abcddc77e3ec5d |
2 |
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Jan 30 08:20:42 2022 +0000 |
4 |
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Jan 30 08:20:42 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/autotools-wrappers.git/commit/?id=a6595b6d |
7 |
|
8 |
autoconf-wrapper: rework WANT_AUTOCONF parsing to match WANT_AUTOMAKE |
9 |
|
10 |
Take the WANT_AUTOMAKE approach to parsing to find a matching version. |
11 |
This simplifies the code a bit, and will allow us to do better dynamic |
12 |
detection in a follow up. |
13 |
|
14 |
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org> |
15 |
|
16 |
ac-wrapper.sh | 92 ++++++++++++++++++++++++++--------------------------------- |
17 |
1 file changed, 41 insertions(+), 51 deletions(-) |
18 |
|
19 |
diff --git a/ac-wrapper.sh b/ac-wrapper.sh |
20 |
index bd9a8d9..e37f5f3 100755 |
21 |
--- a/ac-wrapper.sh |
22 |
+++ b/ac-wrapper.sh |
23 |
@@ -81,55 +81,52 @@ fi |
24 |
KNOWN_AUTOCONF="2.71 2.70 2.69" |
25 |
vers="${KNOWN_AUTOCONF} 9999 $(printf '2.%s ' `seq 99 -1 59`) 2.13" |
26 |
|
27 |
-binary="" |
28 |
-for v in ${vers} ; do |
29 |
- if [ -z "${binary}" ] && [ -x "${full_argv0}-${v}" ] ; then |
30 |
- binary="${full_argv0}-${v}" |
31 |
- break |
32 |
- fi |
33 |
-done |
34 |
-if [ -z "${binary}" ] ; then |
35 |
- err "Unable to locate any usuable version of autoconf.\n" \ |
36 |
- "\tI tried these versions: ${vers}\n" \ |
37 |
- "\tWith a base name of '${full_argv0}'." |
38 |
-fi |
39 |
+# |
40 |
+# Helper to scan for a usable program based on version. |
41 |
+# |
42 |
+binary= |
43 |
+all_vers= |
44 |
+find_binary() { |
45 |
+ local v |
46 |
+ all_vers="${all_vers} $*" # For error messages. |
47 |
+ for v ; do |
48 |
+ if [ "${v}" = "2.1" ] ; then |
49 |
+ v="2.13" |
50 |
+ fi |
51 |
+ if [ -x "${full_argv0}-${v}" ] ; then |
52 |
+ binary="${full_argv0}-${v}" |
53 |
+ binary_ver=${v} |
54 |
+ return 0 |
55 |
+ fi |
56 |
+ done |
57 |
+ return 1 |
58 |
+} |
59 |
|
60 |
# |
61 |
# Check the WANT_AUTOCONF setting. We accept a whitespace delimited |
62 |
# list of autoconf versions. |
63 |
# |
64 |
-if [ -n "${WANT_AUTOCONF}" ] ; then |
65 |
- for v in ${vers} x ; do |
66 |
- if [ "${v}" = "x" ] ; then |
67 |
- warn "warning: invalid WANT_AUTOCONF '${WANT_AUTOCONF}'; ignoring." |
68 |
- unset WANT_AUTOCONF |
69 |
- break |
70 |
- fi |
71 |
+find_latest() { |
72 |
+ find_binary ${vers} |
73 |
+} |
74 |
+for wx in ${WANT_AUTOCONF:-latest} ; do |
75 |
+ if [ "${wx}" = "latest" ] || [ "${wx}" = "2.5" ] ; then |
76 |
+ find_latest && break |
77 |
+ else |
78 |
+ find_binary ${wx} && break |
79 |
+ fi |
80 |
+done |
81 |
|
82 |
- for wx in ${WANT_AUTOCONF} ; do |
83 |
- if [ "${wx}" = "latest" ] ; then |
84 |
- wx="2.5" |
85 |
- elif [ "${wx}" = "2.1" ] ; then |
86 |
- wx="2.13" |
87 |
- fi |
88 |
- if [ -x "${full_argv0}-${wx}" ] ; then |
89 |
- binary="${full_argv0}-${wx}" |
90 |
- v="x" |
91 |
- break |
92 |
- elif [ "${wx}" = "2.5" ] ; then |
93 |
- if [ "${v}" = "2.13" ] ; then |
94 |
- # The "2.5" alias accepts every version except 2.13. |
95 |
- continue |
96 |
- fi |
97 |
- if [ -x "${full_argv0}-${v}" ] ; then |
98 |
- binary="${full_argv0}-${v}" |
99 |
- v="x" |
100 |
- break |
101 |
- fi |
102 |
- fi |
103 |
- done |
104 |
- [ "${v}" = "x" ] && break |
105 |
- done |
106 |
+if [ -z "${binary}" ] && [ -n "${WANT_AUTOCONF}" ] ; then |
107 |
+ warn "could not locate installed version for WANT_AUTOCONF='${WANT_AUTOCONF}'; ignoring" |
108 |
+ unset WANT_AUTOCONF |
109 |
+ find_latest |
110 |
+fi |
111 |
+ |
112 |
+if [ -z "${binary}" ] ; then |
113 |
+ err "Unable to locate any usuable version of autoconf.\n" \ |
114 |
+ "\tI tried these versions:${all_vers}\n" \ |
115 |
+ "\tWith a base name of '${full_argv0}'." |
116 |
fi |
117 |
|
118 |
# |
119 |
@@ -187,14 +184,7 @@ fi |
120 |
# |
121 |
# for further consistency |
122 |
# |
123 |
-if [ -z "${WANT_AUTOCONF}" ] ; then |
124 |
- for v in ${vers} ; do |
125 |
- if [ "${binary}" = "${full_argv0}-${v}" ] ; then |
126 |
- export WANT_AUTOCONF="${v}" |
127 |
- break |
128 |
- fi |
129 |
- done |
130 |
-fi |
131 |
+export WANT_AUTOCONF="${binary_ver}" |
132 |
|
133 |
# |
134 |
# Now try to run the binary |