OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [or1ksim/] [compile] - Diff between revs 19 and 82

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 19 Rev 82
#! /bin/sh
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
# Wrapper for compilers which do not understand `-c -o'.
 
 
scriptversion=2005-05-14.22
scriptversion=2009-10-06.20; # UTC
 
 
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
 
# Foundation, Inc.
# Written by Tom Tromey .
# Written by Tom Tromey .
#
#
# This program is free software; you can redistribute it and/or modify
# 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
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# any later version.
#
#
# This program is distributed in the hope that it will be useful,
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# along with this program.  If not, see .
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 
 
# As a special exception to the GNU General Public License, if you
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# This file is maintained in Automake, please report
# bugs to  or send patches to
# bugs to  or send patches to
# .
# .
case $1 in
case $1 in
  '')
  '')
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
     exit 1;
     exit 1;
     ;;
     ;;
  -h | --h*)
  -h | --h*)
    cat <<\EOF
    cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand `-c -o'.
Wrapper for compilers which do not understand `-c -o'.
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
If you are trying to build a whole package this is not the
right script to run: please start by reading the file `INSTALL'.
right script to run: please start by reading the file `INSTALL'.
Report bugs to .
Report bugs to .
EOF
EOF
    exit $?
    exit $?
    ;;
    ;;
  -v | --v*)
  -v | --v*)
    echo "compile $scriptversion"
    echo "compile $scriptversion"
    exit $?
    exit $?
    ;;
    ;;
esac
esac
ofile=
ofile=
cfile=
cfile=
eat=
eat=
for arg
for arg
do
do
  if test -n "$eat"; then
  if test -n "$eat"; then
    eat=
    eat=
  else
  else
    case $1 in
    case $1 in
      -o)
      -o)
        # configure might choose to run compile as `compile cc -o foo foo.c'.
        # configure might choose to run compile as `compile cc -o foo foo.c'.
        # So we strip `-o arg' only if arg is an object.
        # So we strip `-o arg' only if arg is an object.
        eat=1
        eat=1
        case $2 in
        case $2 in
          *.o | *.obj)
          *.o | *.obj)
            ofile=$2
            ofile=$2
            ;;
            ;;
          *)
          *)
            set x "$@" -o "$2"
            set x "$@" -o "$2"
            shift
            shift
            ;;
            ;;
        esac
        esac
        ;;
        ;;
      *.c)
      *.c)
        cfile=$1
        cfile=$1
        set x "$@" "$1"
        set x "$@" "$1"
        shift
        shift
        ;;
        ;;
      *)
      *)
        set x "$@" "$1"
        set x "$@" "$1"
        shift
        shift
        ;;
        ;;
    esac
    esac
  fi
  fi
  shift
  shift
done
done
if test -z "$ofile" || test -z "$cfile"; then
if test -z "$ofile" || test -z "$cfile"; then
  # If no `-o' option was seen then we might have been invoked from a
  # If no `-o' option was seen then we might have been invoked from a
  # pattern rule where we don't need one.  That is ok -- this is a
  # pattern rule where we don't need one.  That is ok -- this is a
  # normal compilation that the losing compiler can handle.  If no
  # normal compilation that the losing compiler can handle.  If no
  # `.c' file was seen then we are probably linking.  That is also
  # `.c' file was seen then we are probably linking.  That is also
  # ok.
  # ok.
  exec "$@"
  exec "$@"
fi
fi
# Name of file we expect compiler to create.
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 
# Create the lock directory.
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file.  Also, base the name on the expected
# that we are using for the .o file.  Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
while true; do
  if mkdir "$lockdir" >/dev/null 2>&1; then
  if mkdir "$lockdir" >/dev/null 2>&1; then
    break
    break
  fi
  fi
  sleep 1
  sleep 1
done
done
# FIXME: race condition here if user kills between mkdir and trap.
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
# Run the compile.
"$@"
"$@"
ret=$?
ret=$?
if test -f "$cofile"; then
if test -f "$cofile"; then
  mv "$cofile" "$ofile"
  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
elif test -f "${cofile}bj"; then
  mv "${cofile}bj" "$ofile"
  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
fi
rmdir "$lockdir"
rmdir "$lockdir"
exit $ret
exit $ret
# Local Variables:
# Local Variables:
# mode: shell-script
# mode: shell-script
# sh-indentation: 2
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# time-stamp-time-zone: "UTC"
 
# time-stamp-end: "; # UTC"
# End:
# End:
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.