| | | | |
| Offset 0, 0 lines modified | Offset 1, 215 lines modified |
| | 1 | #!·/bin/sh |
| | 2 | #·Common·wrapper·for·a·few·potentially·missing·GNU·programs. |
| | |
| | 3 | scriptversion=2018-03-07.03;·#·UTC |
| | |
| | 4 | #·Copyright·(C)·1996-2021·Free·Software·Foundation,·Inc. |
| | 5 | #·Originally·written·by·Fran,cois·Pinard·<pinard@iro.umontreal.ca>,·1996. |
| | |
| | 6 | #·This·program·is·free·software;·you·can·redistribute·it·and/or·modify |
| | 7 | #·it·under·the·terms·of·the·GNU·General·Public·License·as·published·by |
| | 8 | #·the·Free·Software·Foundation;·either·version·2,·or·(at·your·option) |
| | 9 | #·any·later·version. |
| | |
| | 10 | #·This·program·is·distributed·in·the·hope·that·it·will·be·useful, |
| | 11 | #·but·WITHOUT·ANY·WARRANTY;·without·even·the·implied·warranty·of |
| | 12 | #·MERCHANTABILITY·or·FITNESS·FOR·A·PARTICULAR·PURPOSE.··See·the |
| | 13 | #·GNU·General·Public·License·for·more·details. |
| | |
| | 14 | #·You·should·have·received·a·copy·of·the·GNU·General·Public·License |
| | 15 | #·along·with·this·program.··If·not,·see·<https://www.gnu.org/licenses/>. |
| | |
| | 16 | #·As·a·special·exception·to·the·GNU·General·Public·License,·if·you |
| | 17 | #·distribute·this·file·as·part·of·a·program·that·contains·a |
| | 18 | #·configuration·script·generated·by·Autoconf,·you·may·include·it·under |
| | 19 | #·the·same·distribution·terms·that·you·use·for·the·rest·of·that·program. |
| | |
| | 20 | if·test·$#·-eq·0;·then |
| | 21 | ··echo·1>&2·"Try·'$0·--help'·for·more·information" |
| | 22 | ··exit·1 |
| | 23 | fi |
| | |
| | 24 | case·$1·in |
| | |
| | 25 | ··--is-lightweight) |
| | 26 | ····#·Used·by·our·autoconf·macros·to·check·whether·the·available·missing |
| | 27 | ····#·script·is·modern·enough. |
| | 28 | ····exit·0 |
| | 29 | ····;; |
| | |
| | 30 | ··--run) |
| | 31 | ····#·Back-compat·with·the·calling·convention·used·by·older·automake. |
| | 32 | ····shift |
| | 33 | ····;; |
| | |
| | 34 | ··-h|--h|--he|--hel|--help) |
| | 35 | ····echo·"\ |
| | 36 | $0·[OPTION]...·PROGRAM·[ARGUMENT]... |
| | |
| | 37 | Run·'PROGRAM·[ARGUMENT]...',·returning·a·proper·advice·when·this·fails·due |
| | 38 | to·PROGRAM·being·missing·or·too·old. |
| | |
| | 39 | Options: |
| | 40 | ··-h,·--help······display·this·help·and·exit |
| | 41 | ··-v,·--version···output·version·information·and·exit |
| | |
| | 42 | Supported·PROGRAM·values: |
| | 43 | ··aclocal···autoconf··autoheader···autom4te··automake··makeinfo |
| | 44 | ··bison·····yacc······flex·········lex·······help2man |
| | |
| | 45 | Version·suffixes·to·PROGRAM·as·well·as·the·prefixes·'gnu-',·'gnu',·and |
| | 46 | 'g'·are·ignored·when·checking·the·name. |
| | |
| | 47 | Send·bug·reports·to·<bug-automake@gnu.org>." |
| | 48 | ····exit·$? |
| | 49 | ····;; |
| | |
| | 50 | ··-v|--v|--ve|--ver|--vers|--versi|--versio|--version) |
| | 51 | ····echo·"missing·$scriptversion·(GNU·Automake)" |
| | 52 | ····exit·$? |
| | 53 | ····;; |
| | |
| | 54 | ··-*) |
| | 55 | ····echo·1>&2·"$0:·unknown·'$1'·option" |
| | 56 | ····echo·1>&2·"Try·'$0·--help'·for·more·information" |
| | 57 | ····exit·1 |
| | 58 | ····;; |
| | |
| | 59 | esac |
| | |
| | 60 | #·Run·the·given·program,·remember·its·exit·status. |
| | 61 | "$@";·st=$? |
| | |
| | 62 | #·If·it·succeeded,·we·are·done. |
| | 63 | test·$st·-eq·0·&&·exit·0 |
| | |
| | 64 | #·Also·exit·now·if·we·it·failed·(or·wasn't·found),·and·'--version'·was |
| | 65 | #·passed;·such·an·option·is·passed·most·likely·to·detect·whether·the |
| | 66 | #·program·is·present·and·works. |
| | 67 | case·$2·in·--version|--help)·exit·$st;;·esac |
| | |
| | 68 | #·Exit·code·63·means·version·mismatch.··This·often·happens·when·the·user |
| | 69 | #·tries·to·use·an·ancient·version·of·a·tool·on·a·file·that·requires·a |
| | 70 | #·minimum·version. |
| | 71 | if·test·$st·-eq·63;·then |
| | 72 | ··msg="probably·too·old" |
| | 73 | elif·test·$st·-eq·127;·then |
| | 74 | ··#·Program·was·missing. |
| | 75 | ··msg="missing·on·your·system" |
| | 76 | else |
| | 77 | ··#·Program·was·found·and·executed,·but·failed.··Give·up. |
| | 78 | ··exit·$st |
| | 79 | fi |
| | |
| | 80 | perl_URL=https://www.perl.org/ |
| | 81 | flex_URL=https://github.com/westes/flex |
| | 82 | gnu_software_URL=https://www.gnu.org/software |
| | |
| | 83 | program_details·() |
| | 84 | { |
| | 85 | ··case·$1·in |
| | 86 | ····aclocal|automake) |
| | 87 | ······echo·"The·'$1'·program·is·part·of·the·GNU·Automake·package:" |
| | 88 | ······echo·"<$gnu_software_URL/automake>" |
| | 89 | ······echo·"It·also·requires·GNU·Autoconf,·GNU·m4·and·Perl·in·order·to·run:" |
| | 90 | ······echo·"<$gnu_software_URL/autoconf>" |
| | 91 | ······echo·"<$gnu_software_URL/m4/>" |
| | 92 | ······echo·"<$perl_URL>" |
| | 93 | ······;; |
| | 94 | ····autoconf|autom4te|autoheader) |
| | 95 | ······echo·"The·'$1'·program·is·part·of·the·GNU·Autoconf·package:" |
| | 96 | ······echo·"<$gnu_software_URL/autoconf/>" |
| | 97 | ······echo·"It·also·requires·GNU·m4·and·Perl·in·order·to·run:" |
| | 98 | ······echo·"<$gnu_software_URL/m4/>" |
| | 99 | ······echo·"<$perl_URL>" |
| | 100 | ······;; |
| | 101 | ··esac |
| | 102 | } |
| | |
| | 103 | give_advice·() |
| | 104 | { |
| | 105 | ··#·Normalize·program·name·to·check·for. |
| | 106 | ··normalized_program=`echo·"$1"·|·sed·' |
| | 107 | ····s/^gnu-//;·t |
| | 108 | ····s/^gnu//;·t |
| | 109 | ····s/^g//;·t'` |
| | |
| | 110 | ··printf·'%s\n'·"'$1'·is·$msg." |
| | |
| | 111 | ··configure_deps="'configure.ac'·or·m4·files·included·by·'configure.ac'" |
| | 112 | ··case·$normalized_program·in |
| | 113 | ····autoconf*) |
| | 114 | ······echo·"You·should·only·need·it·if·you·modified·'configure.ac'," |
| | 115 | ······echo·"or·m4·files·included·by·it." |
| | 116 | ······program_details·'autoconf' |
| | 117 | ······;; |
| | 118 | ····autoheader*) |
| | 119 | ······echo·"You·should·only·need·it·if·you·modified·'acconfig.h'·or" |
| | 120 | ······echo·"$configure_deps." |
| | 121 | ······program_details·'autoheader' |
| | 122 | ······;; |
| | 123 | ····automake*) |
| | 124 | ······echo·"You·should·only·need·it·if·you·modified·'Makefile.am'·or" |
| | 125 | ······echo·"$configure_deps." |
| | 126 | ······program_details·'automake' |
| | 127 | ······;; |
| | 128 | ····aclocal*) |
| | 129 | ······echo·"You·should·only·need·it·if·you·modified·'acinclude.m4'·or" |
| | 130 | ······echo·"$configure_deps." |
| | 131 | ······program_details·'aclocal' |
| | 132 | ······;; |
| | 133 | ···autom4te*) |
| | 134 | ······echo·"You·might·have·modified·some·maintainer·files·that·require" |
| | 135 | ······echo·"the·'autom4te'·program·to·be·rebuilt." |
| | 136 | ······program_details·'autom4te' |
| | 137 | ······;; |
| | 138 | ····bison*|yacc*) |
| | 139 | ······echo·"You·should·only·need·it·if·you·modified·a·'.y'·file." |
| | 140 | ······echo·"You·may·want·to·install·the·GNU·Bison·package:" |
| | 141 | ······echo·"<$gnu_software_URL/bison/>" |
| | 142 | ······;; |
| | 143 | ····lex*|flex*) |
| | 144 | ······echo·"You·should·only·need·it·if·you·modified·a·'.l'·file." |
| | 145 | ······echo·"You·may·want·to·install·the·Fast·Lexical·Analyzer·package:" |
| | 146 | ······echo·"<$flex_URL>" |
| | 147 | ······;; |
| | 148 | ····help2man*) |
| | 149 | ······echo·"You·should·only·need·it·if·you·modified·a·dependency"·\ |
| | 150 | ···········"of·a·man·page." |
| | 151 | ······echo·"You·may·want·to·install·the·GNU·Help2man·package:" |
| | 152 | ······echo·"<$gnu_software_URL/help2man/>" |
| | 153 | ····;; |
| | 154 | ····makeinfo*) |
| | 155 | ······echo·"You·should·only·need·it·if·you·modified·a·'.texi'·file,·or" |
| | 156 | ······echo·"any·other·file·indirectly·affecting·the·aspect·of·the·manual." |
| | 157 | ······echo·"You·might·want·to·install·the·Texinfo·package:" |
| | 158 | ······echo·"<$gnu_software_URL/texinfo/>" |
| | 159 | ······echo·"The·spurious·makeinfo·call·might·also·be·the·consequence·of" |
| | 160 | ······echo·"using·a·buggy·'make'·(AIX,·DU,·IRIX),·in·which·case·you·might" |
| | 161 | ······echo·"want·to·install·GNU·make:" |
| | 162 | ······echo·"<$gnu_software_URL/make/>" |
| | 163 | ······;; |
| | 164 | ····*) |
| | 165 | ······echo·"You·might·have·modified·some·files·without·having·the·proper" |
| | 166 | ······echo·"tools·for·further·handling·them.··Check·the·'README'·file,·it" |
| | 167 | ······echo·"often·tells·you·about·the·needed·prerequisites·for·installing" |
| | 168 | ······echo·"this·package.··You·may·also·peek·at·any·GNU·archive·site,·in" |
| | 169 | ······echo·"case·some·other·package·contains·this·missing·'$1'·program." |
| | 170 | ······;; |
| | 171 | ··esac |
| | 172 | } |
| | |
| | 173 | give_advice·"$1"·|·sed·-e·'1s/^/WARNING:·/'·\ |
| | 174 | ·······················-e·'2,$s/^/·········/'·>&2 |
| | |
| | 175 | #·Propagate·the·correct·exit·status·(expected·to·be·127·for·a·program |
| | 176 | #·not·found,·63·for·a·program·that·failed·due·to·version·mismatch). |
| | 177 | exit·$st |
| | |
| | 178 | #·Local·variables: |
| | 179 | #·eval:·(add-hook·'before-save-hook·'time-stamp) |
| | 180 | #·time-stamp-start:·"scriptversion=" |
| | 181 | #·time-stamp-format:·"%:y-%02m-%02d.%02H" |
| | 182 | #·time-stamp-time-zone:·"UTC0" |
| | 183 | #·time-stamp-end:·";·#·UTC" |
| | 184 | #·End: |