Offset 0, 0 lines modifiedOffset 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: