* ylwrap: Import from Automake 1.9.5. binutils/ * acinclude.m4: Remove obsolete code. * configure.in: Update AC_PREREQ. * doc/Makefile.am (binutils_TEXINFOS): Define. (config.texi): Depend on distributed files instead of built files. (binutils.dvi, binutils.info): Remove unnecessary rules. (DISTCLEANFILES): Remove. (install-data-local): Renamed from install. (info-local): Renamed from info. * Makefile.in, aclocal.m4, config.in, configure, doc/Makefile.in: Regenerated. gas/ * Makefile.am (m68k-parse.c, itbl-parse.c): Update ylwrap invocation. * Makefile.in: Regenerated. ld/ * Makefile.am (AM_MAKEINFOFLAGS): Define. (TEXI2DVI): Define. (ldver.texi): Depend on distributed files instead of built files. (ld.info): Include $(srcdir) in the rule target. Remove actions. (ld.dvi): Remove actions. (MAINTAINERCLEANFILES): Add configdoc.texi. (CONFIG_STATUS_DEPENDENCIES): Add bfd/configure.in. (install-data-local): Renamed from install. (Makefile): Remove explicit dependency. * acinclude.m4: Remove obsolete code. * configure.in: Update AC_PREREQ. Remove extra $CONFIG_SHELL. * Makefile.in, aclocal.m4, config.in, configure: Regenerated. gdb/ * Makefile.in (.y.c): Update ylwrap invocation.
		
			
				
	
	
		
			223 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			223 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#! /bin/sh
 | 
						|
# ylwrap - wrapper for lex/yacc invocations.
 | 
						|
 | 
						|
scriptversion=2005-02-02.22
 | 
						|
 | 
						|
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
 | 
						|
#   Free Software Foundation, Inc.
 | 
						|
#
 | 
						|
# Written by Tom Tromey <tromey@cygnus.com>.
 | 
						|
#
 | 
						|
# This program is free software; you can redistribute it and/or modify
 | 
						|
# it under the terms of the GNU General Public License as published by
 | 
						|
# the Free Software Foundation; either version 2, or (at your option)
 | 
						|
# any later version.
 | 
						|
#
 | 
						|
# This program is distributed in the hope that it will be useful,
 | 
						|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
# GNU General Public License for more details.
 | 
						|
#
 | 
						|
# You should have received a copy of the GNU General Public License
 | 
						|
# along with this program; if not, write to the Free Software
 | 
						|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 | 
						|
 | 
						|
# As a special exception to the GNU General Public License, if you
 | 
						|
# distribute this file as part of a program that contains a
 | 
						|
# configuration script generated by Autoconf, you may include it under
 | 
						|
# the same distribution terms that you use for the rest of that program.
 | 
						|
 | 
						|
# This file is maintained in Automake, please report
 | 
						|
# bugs to <bug-automake@gnu.org> or send patches to
 | 
						|
# <automake-patches@gnu.org>.
 | 
						|
 | 
						|
case "$1" in
 | 
						|
  '')
 | 
						|
    echo "$0: No files given.  Try \`$0 --help' for more information." 1>&2
 | 
						|
    exit 1
 | 
						|
    ;;
 | 
						|
  --basedir)
 | 
						|
    basedir=$2
 | 
						|
    shift 2
 | 
						|
    ;;
 | 
						|
  -h|--h*)
 | 
						|
    cat <<\EOF
 | 
						|
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
 | 
						|
 | 
						|
Wrapper for lex/yacc invocations, renaming files as desired.
 | 
						|
 | 
						|
  INPUT is the input file
 | 
						|
  OUTPUT is one file PROG generates
 | 
						|
  DESIRED is the file we actually want instead of OUTPUT
 | 
						|
  PROGRAM is program to run
 | 
						|
  ARGS are passed to PROG
 | 
						|
 | 
						|
Any number of OUTPUT,DESIRED pairs may be used.
 | 
						|
 | 
						|
Report bugs to <bug-automake@gnu.org>.
 | 
						|
EOF
 | 
						|
    exit $?
 | 
						|
    ;;
 | 
						|
  -v|--v*)
 | 
						|
    echo "ylwrap $scriptversion"
 | 
						|
    exit $?
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
 | 
						|
# The input.
 | 
						|
input="$1"
 | 
						|
shift
 | 
						|
case "$input" in
 | 
						|
  [\\/]* | ?:[\\/]*)
 | 
						|
    # Absolute path; do nothing.
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    # Relative path.  Make it absolute.
 | 
						|
    input="`pwd`/$input"
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
pairlist=
 | 
						|
while test "$#" -ne 0; do
 | 
						|
  if test "$1" = "--"; then
 | 
						|
    shift
 | 
						|
    break
 | 
						|
  fi
 | 
						|
  pairlist="$pairlist $1"
 | 
						|
  shift
 | 
						|
done
 | 
						|
 | 
						|
# The program to run.
 | 
						|
prog="$1"
 | 
						|
shift
 | 
						|
# Make any relative path in $prog absolute.
 | 
						|
case "$prog" in
 | 
						|
  [\\/]* | ?:[\\/]*) ;;
 | 
						|
  *[\\/]*) prog="`pwd`/$prog" ;;
 | 
						|
esac
 | 
						|
 | 
						|
# FIXME: add hostname here for parallel makes that run commands on
 | 
						|
# other machines.  But that might take us over the 14-char limit.
 | 
						|
dirname=ylwrap$$
 | 
						|
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
 | 
						|
mkdir $dirname || exit 1
 | 
						|
 | 
						|
cd $dirname
 | 
						|
 | 
						|
case $# in
 | 
						|
  0) $prog "$input" ;;
 | 
						|
  *) $prog "$@" "$input" ;;
 | 
						|
esac
 | 
						|
ret=$?
 | 
						|
 | 
						|
if test $ret -eq 0; then
 | 
						|
  set X $pairlist
 | 
						|
  shift
 | 
						|
  first=yes
 | 
						|
  # Since DOS filename conventions don't allow two dots,
 | 
						|
  # the DOS version of Bison writes out y_tab.c instead of y.tab.c
 | 
						|
  # and y_tab.h instead of y.tab.h. Test to see if this is the case.
 | 
						|
  y_tab_nodot="no"
 | 
						|
  if test -f y_tab.c || test -f y_tab.h; then
 | 
						|
    y_tab_nodot="yes"
 | 
						|
  fi
 | 
						|
 | 
						|
  # The directory holding the input.
 | 
						|
  input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
 | 
						|
  # Quote $INPUT_DIR so we can use it in a regexp.
 | 
						|
  # FIXME: really we should care about more than `.' and `\'.
 | 
						|
  input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
 | 
						|
 | 
						|
  while test "$#" -ne 0; do
 | 
						|
    from="$1"
 | 
						|
    # Handle y_tab.c and y_tab.h output by DOS
 | 
						|
    if test $y_tab_nodot = "yes"; then
 | 
						|
      if test $from = "y.tab.c"; then
 | 
						|
    	from="y_tab.c"
 | 
						|
      else
 | 
						|
    	if test $from = "y.tab.h"; then
 | 
						|
    	  from="y_tab.h"
 | 
						|
    	fi
 | 
						|
      fi
 | 
						|
    fi
 | 
						|
    if test -f "$from"; then
 | 
						|
      # If $2 is an absolute path name, then just use that,
 | 
						|
      # otherwise prepend `../'.
 | 
						|
      case "$2" in
 | 
						|
    	[\\/]* | ?:[\\/]*) target="$2";;
 | 
						|
    	*) target="../$2";;
 | 
						|
      esac
 | 
						|
 | 
						|
      # We do not want to overwrite a header file if it hasn't
 | 
						|
      # changed.  This avoid useless recompilations.  However the
 | 
						|
      # parser itself (the first file) should always be updated,
 | 
						|
      # because it is the destination of the .y.c rule in the
 | 
						|
      # Makefile.  Divert the output of all other files to a temporary
 | 
						|
      # file so we can compare them to existing versions.
 | 
						|
      if test $first = no; then
 | 
						|
	realtarget="$target"
 | 
						|
	target="tmp-`echo $target | sed s/.*[\\/]//g`"
 | 
						|
      fi
 | 
						|
      # Edit out `#line' or `#' directives.
 | 
						|
      #
 | 
						|
      # We don't want the resulting debug information to point at
 | 
						|
      # an absolute srcdir; it is better for it to just mention the
 | 
						|
      # .y file with no path.
 | 
						|
      #
 | 
						|
      # We want to use the real output file name, not yy.lex.c for
 | 
						|
      # instance.
 | 
						|
      #
 | 
						|
      # We want the include guards to be adjusted too.
 | 
						|
      FROM=`echo "$from" | sed \
 | 
						|
            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
 | 
						|
            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
 | 
						|
      TARGET=`echo "$2" | sed \
 | 
						|
            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
 | 
						|
            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
 | 
						|
 | 
						|
      sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
 | 
						|
          -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
 | 
						|
 | 
						|
      # Check whether header files must be updated.
 | 
						|
      if test $first = no; then
 | 
						|
	if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
 | 
						|
	  echo "$2" is unchanged
 | 
						|
	  rm -f "$target"
 | 
						|
	else
 | 
						|
          echo updating "$2"
 | 
						|
          mv -f "$target" "$realtarget"
 | 
						|
        fi
 | 
						|
      fi
 | 
						|
    else
 | 
						|
      # A missing file is only an error for the first file.  This
 | 
						|
      # is a blatant hack to let us support using "yacc -d".  If -d
 | 
						|
      # is not specified, we don't want an error when the header
 | 
						|
      # file is "missing".
 | 
						|
      if test $first = yes; then
 | 
						|
        ret=1
 | 
						|
      fi
 | 
						|
    fi
 | 
						|
    shift
 | 
						|
    shift
 | 
						|
    first=no
 | 
						|
  done
 | 
						|
else
 | 
						|
  ret=$?
 | 
						|
fi
 | 
						|
 | 
						|
# Remove the directory.
 | 
						|
cd ..
 | 
						|
rm -rf $dirname
 | 
						|
 | 
						|
exit $ret
 | 
						|
 | 
						|
# Local Variables:
 | 
						|
# mode: shell-script
 | 
						|
# sh-indentation: 2
 | 
						|
# eval: (add-hook 'write-file-hooks 'time-stamp)
 | 
						|
# time-stamp-start: "scriptversion="
 | 
						|
# time-stamp-format: "%:y-%02m-%02d.%02H"
 | 
						|
# time-stamp-end: "$"
 | 
						|
# End:
 |