/ missing
missing
  1  #! /bin/sh
  2  # Common stub for a few missing GNU programs while installing.
  3  
  4  scriptversion=2012-01-06.13; # UTC
  5  
  6  # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
  7  # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
  8  # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
  9  
 10  # This program is free software; you can redistribute it and/or modify
 11  # it under the terms of the GNU General Public License as published by
 12  # the Free Software Foundation; either version 2, or (at your option)
 13  # any later version.
 14  
 15  # This program is distributed in the hope that it will be useful,
 16  # but WITHOUT ANY WARRANTY; without even the implied warranty of
 17  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 18  # GNU General Public License for more details.
 19  
 20  # You should have received a copy of the GNU General Public License
 21  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 22  
 23  # As a special exception to the GNU General Public License, if you
 24  # distribute this file as part of a program that contains a
 25  # configuration script generated by Autoconf, you may include it under
 26  # the same distribution terms that you use for the rest of that program.
 27  
 28  if test $# -eq 0; then
 29    echo 1>&2 "Try \`$0 --help' for more information"
 30    exit 1
 31  fi
 32  
 33  run=:
 34  sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
 35  sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 36  
 37  # In the cases where this matters, `missing' is being run in the
 38  # srcdir already.
 39  if test -f configure.ac; then
 40    configure_ac=configure.ac
 41  else
 42    configure_ac=configure.in
 43  fi
 44  
 45  msg="missing on your system"
 46  
 47  case $1 in
 48  --run)
 49    # Try to run requested program, and just exit if it succeeds.
 50    run=
 51    shift
 52    "$@" && exit 0
 53    # Exit code 63 means version mismatch.  This often happens
 54    # when the user try to use an ancient version of a tool on
 55    # a file that requires a minimum version.  In this case we
 56    # we should proceed has if the program had been absent, or
 57    # if --run hadn't been passed.
 58    if test $? = 63; then
 59      run=:
 60      msg="probably too old"
 61    fi
 62    ;;
 63  
 64    -h|--h|--he|--hel|--help)
 65      echo "\
 66  $0 [OPTION]... PROGRAM [ARGUMENT]...
 67  
 68  Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
 69  error status if there is no known handling for PROGRAM.
 70  
 71  Options:
 72    -h, --help      display this help and exit
 73    -v, --version   output version information and exit
 74    --run           try to run the given command, and emulate it if it fails
 75  
 76  Supported PROGRAM values:
 77    aclocal      touch file \`aclocal.m4'
 78    autoconf     touch file \`configure'
 79    autoheader   touch file \`config.h.in'
 80    autom4te     touch the output file, or create a stub one
 81    automake     touch all \`Makefile.in' files
 82    bison        create \`y.tab.[ch]', if possible, from existing .[ch]
 83    flex         create \`lex.yy.c', if possible, from existing .c
 84    help2man     touch the output file
 85    lex          create \`lex.yy.c', if possible, from existing .c
 86    makeinfo     touch the output file
 87    yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 88  
 89  Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
 90  \`g' are ignored when checking the name.
 91  
 92  Send bug reports to <bug-automake@gnu.org>."
 93      exit $?
 94      ;;
 95  
 96    -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
 97      echo "missing $scriptversion (GNU Automake)"
 98      exit $?
 99      ;;
100  
101    -*)
102      echo 1>&2 "$0: Unknown \`$1' option"
103      echo 1>&2 "Try \`$0 --help' for more information"
104      exit 1
105      ;;
106  
107  esac
108  
109  # normalize program name to check for.
110  program=`echo "$1" | sed '
111    s/^gnu-//; t
112    s/^gnu//; t
113    s/^g//; t'`
114  
115  # Now exit if we have it, but it failed.  Also exit now if we
116  # don't have it and --version was passed (most likely to detect
117  # the program).  This is about non-GNU programs, so use $1 not
118  # $program.
119  case $1 in
120    lex*|yacc*)
121      # Not GNU programs, they don't have --version.
122      ;;
123  
124    *)
125      if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
126         # We have it, but it failed.
127         exit 1
128      elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
129         # Could not run --version or --help.  This is probably someone
130         # running `$TOOL --version' or `$TOOL --help' to check whether
131         # $TOOL exists and not knowing $TOOL uses missing.
132         exit 1
133      fi
134      ;;
135  esac
136  
137  # If it does not exist, or fails to run (possibly an outdated version),
138  # try to emulate it.
139  case $program in
140    aclocal*)
141      echo 1>&2 "\
142  WARNING: \`$1' is $msg.  You should only need it if
143           you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
144           to install the \`Automake' and \`Perl' packages.  Grab them from
145           any GNU archive site."
146      touch aclocal.m4
147      ;;
148  
149    autoconf*)
150      echo 1>&2 "\
151  WARNING: \`$1' is $msg.  You should only need it if
152           you modified \`${configure_ac}'.  You might want to install the
153           \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
154           archive site."
155      touch configure
156      ;;
157  
158    autoheader*)
159      echo 1>&2 "\
160  WARNING: \`$1' is $msg.  You should only need it if
161           you modified \`acconfig.h' or \`${configure_ac}'.  You might want
162           to install the \`Autoconf' and \`GNU m4' packages.  Grab them
163           from any GNU archive site."
164      files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
165      test -z "$files" && files="config.h"
166      touch_files=
167      for f in $files; do
168        case $f in
169        *:*) touch_files="$touch_files "`echo "$f" |
170  				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
171        *) touch_files="$touch_files $f.in";;
172        esac
173      done
174      touch $touch_files
175      ;;
176  
177    automake*)
178      echo 1>&2 "\
179  WARNING: \`$1' is $msg.  You should only need it if
180           you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
181           You might want to install the \`Automake' and \`Perl' packages.
182           Grab them from any GNU archive site."
183      find . -type f -name Makefile.am -print |
184  	   sed 's/\.am$/.in/' |
185  	   while read f; do touch "$f"; done
186      ;;
187  
188    autom4te*)
189      echo 1>&2 "\
190  WARNING: \`$1' is needed, but is $msg.
191           You might have modified some files without having the
192           proper tools for further handling them.
193           You can get \`$1' as part of \`Autoconf' from any GNU
194           archive site."
195  
196      file=`echo "$*" | sed -n "$sed_output"`
197      test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
198      if test -f "$file"; then
199  	touch $file
200      else
201  	test -z "$file" || exec >$file
202  	echo "#! /bin/sh"
203  	echo "# Created by GNU Automake missing as a replacement of"
204  	echo "#  $ $@"
205  	echo "exit 0"
206  	chmod +x $file
207  	exit 1
208      fi
209      ;;
210  
211    bison*|yacc*)
212      echo 1>&2 "\
213  WARNING: \`$1' $msg.  You should only need it if
214           you modified a \`.y' file.  You may need the \`Bison' package
215           in order for those modifications to take effect.  You can get
216           \`Bison' from any GNU archive site."
217      rm -f y.tab.c y.tab.h
218      if test $# -ne 1; then
219          eval LASTARG=\${$#}
220  	case $LASTARG in
221  	*.y)
222  	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
223  	    if test -f "$SRCFILE"; then
224  	         cp "$SRCFILE" y.tab.c
225  	    fi
226  	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
227  	    if test -f "$SRCFILE"; then
228  	         cp "$SRCFILE" y.tab.h
229  	    fi
230  	  ;;
231  	esac
232      fi
233      if test ! -f y.tab.h; then
234  	echo >y.tab.h
235      fi
236      if test ! -f y.tab.c; then
237  	echo 'main() { return 0; }' >y.tab.c
238      fi
239      ;;
240  
241    lex*|flex*)
242      echo 1>&2 "\
243  WARNING: \`$1' is $msg.  You should only need it if
244           you modified a \`.l' file.  You may need the \`Flex' package
245           in order for those modifications to take effect.  You can get
246           \`Flex' from any GNU archive site."
247      rm -f lex.yy.c
248      if test $# -ne 1; then
249          eval LASTARG=\${$#}
250  	case $LASTARG in
251  	*.l)
252  	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
253  	    if test -f "$SRCFILE"; then
254  	         cp "$SRCFILE" lex.yy.c
255  	    fi
256  	  ;;
257  	esac
258      fi
259      if test ! -f lex.yy.c; then
260  	echo 'main() { return 0; }' >lex.yy.c
261      fi
262      ;;
263  
264    help2man*)
265      echo 1>&2 "\
266  WARNING: \`$1' is $msg.  You should only need it if
267  	 you modified a dependency of a manual page.  You may need the
268  	 \`Help2man' package in order for those modifications to take
269  	 effect.  You can get \`Help2man' from any GNU archive site."
270  
271      file=`echo "$*" | sed -n "$sed_output"`
272      test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
273      if test -f "$file"; then
274  	touch $file
275      else
276  	test -z "$file" || exec >$file
277  	echo ".ab help2man is required to generate this page"
278  	exit $?
279      fi
280      ;;
281  
282    makeinfo*)
283      echo 1>&2 "\
284  WARNING: \`$1' is $msg.  You should only need it if
285           you modified a \`.texi' or \`.texinfo' file, or any other file
286           indirectly affecting the aspect of the manual.  The spurious
287           call might also be the consequence of using a buggy \`make' (AIX,
288           DU, IRIX).  You might want to install the \`Texinfo' package or
289           the \`GNU make' package.  Grab either from any GNU archive site."
290      # The file to touch is that specified with -o ...
291      file=`echo "$*" | sed -n "$sed_output"`
292      test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
293      if test -z "$file"; then
294        # ... or it is the one specified with @setfilename ...
295        infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
296        file=`sed -n '
297  	/^@setfilename/{
298  	  s/.* \([^ ]*\) *$/\1/
299  	  p
300  	  q
301  	}' $infile`
302        # ... or it is derived from the source name (dir/f.texi becomes f.info)
303        test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
304      fi
305      # If the file does not exist, the user really needs makeinfo;
306      # let's fail without touching anything.
307      test -f $file || exit 1
308      touch $file
309      ;;
310  
311    *)
312      echo 1>&2 "\
313  WARNING: \`$1' is needed, and is $msg.
314           You might have modified some files without having the
315           proper tools for further handling them.  Check the \`README' file,
316           it often tells you about the needed prerequisites for installing
317           this package.  You may also peek at any GNU archive site, in case
318           some other package would contain this missing \`$1' program."
319      exit 1
320      ;;
321  esac
322  
323  exit 0
324  
325  # Local variables:
326  # eval: (add-hook 'write-file-hooks 'time-stamp)
327  # time-stamp-start: "scriptversion="
328  # time-stamp-format: "%:y-%02m-%02d.%02H"
329  # time-stamp-time-zone: "UTC"
330  # time-stamp-end: "; # UTC"
331  # End: