URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [gdb-5.3/] [ylwrap] - Rev 1771
Go to most recent revision | Compare with Previous | Blame | View Log
#! /bin/sh# ylwrap - wrapper for lex/yacc invocations.# Copyright (C) 1996, 1997 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.# Usage:# ylwrap PROGRAM INPUT [OUTPUT DESIRED]... -- [ARGS]...# * PROGRAM is program to run.# * INPUT is the input file# * OUTPUT is file PROG generates# * DESIRED is file we actually want# * ARGS are passed to PROG# Any number of OUTPUT,DESIRED pairs may be used.# The program to run.prog="$1"shift# Make any relative path in $prog absolute.case "$prog" in/* | [A-Za-z]:\\*) ;;*/*) prog="`pwd`/$prog" ;;esac# The input.input="$1"shiftcase "$input" in/* | [A-Za-z]:\\*)# Absolute path; do nothing.;;*)# Relative path. Make it absolute. Why? Because otherwise any# debugging info in the generated file will point to the wrong# place. This is really gross.input="`pwd`/$input";;esac# We don't want to use the absolute path if the input in the current# directory like when making a tar ball.input_base=`echo $input | sed -e 's|.*/||'`if test -f $input_base && cmp $input_base $input >/dev/null 2>&1; theninput=$input_basefipairlist=while test "$#" -ne 0; doif test "$1" = "--"; thenshiftbreakfipairlist="$pairlist $1"shiftdone# 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 15mkdir $dirname || exit 1cd $dirnamecase "$input" in/* | [A-Za-z]:\\*)# Absolute path; do nothing.;;*)# Make a symbolic link, hard link or hardcopy.ln -s ../"$input" . > /dev/null 2>&1 || ln ../"$input" . > /dev/null 2>&1 || cp ../"$input" .;;esac$prog ${1+"$@"} "$input"status=$?if test $status -eq 0; thenset X $pairlistshiftfirst=yeswhile test "$#" -ne 0; doif test -f "$1"; then# If $2 is an absolute path name, then just use that,# otherwise prepend `../'.case "$2" in/* | [A-Za-z]:\\*) target="$2";;*) target="../$2";;esacmv "$1" "$target" || status=$?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; thenstatus=1fifishiftshiftfirst=nodoneelsestatus=$?fi# Remove the directory.cd ..rm -rf $dirnameexit $status
Go to most recent revision | Compare with Previous | Blame | View Log
