Search
lxdream.org :: lxdream/compile
lxdream 0.9.1
released Jun 29
Download Now
filename compile
changeset 1032:b3a4f104a83c
author nkeynes
date Sun Oct 24 11:50:17 2010 +1000 (13 years ago)
permissions -rwxr-xr-x
last change Set gl texture parameters at texture load time rather than render time.
(This does mean that if the texture is used with variant parameters it will be
loaded multiple times). 3-4% faster this way
view annotate diff log raw
     1 #! /bin/sh
     2 # Wrapper for compilers which do not understand `-c -o'.
     4 scriptversion=2005-05-14.22
     6 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
     7 # Written by Tom Tromey <tromey@cygnus.com>.
     8 #
     9 # This program is free software; you can redistribute it and/or modify
    10 # it under the terms of the GNU General Public License as published by
    11 # the Free Software Foundation; either version 2, or (at your option)
    12 # any later version.
    13 #
    14 # This program is distributed in the hope that it will be useful,
    15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    17 # GNU General Public License for more details.
    18 #
    19 # You should have received a copy of the GNU General Public License
    20 # along with this program; if not, write to the Free Software
    21 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    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.
    28 # This file is maintained in Automake, please report
    29 # bugs to <bug-automake@gnu.org> or send patches to
    30 # <automake-patches@gnu.org>.
    32 case $1 in
    33   '')
    34      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
    35      exit 1;
    36      ;;
    37   -h | --h*)
    38     cat <<\EOF
    39 Usage: compile [--help] [--version] PROGRAM [ARGS]
    41 Wrapper for compilers which do not understand `-c -o'.
    42 Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
    43 arguments, and rename the output as expected.
    45 If you are trying to build a whole package this is not the
    46 right script to run: please start by reading the file `INSTALL'.
    48 Report bugs to <bug-automake@gnu.org>.
    49 EOF
    50     exit $?
    51     ;;
    52   -v | --v*)
    53     echo "compile $scriptversion"
    54     exit $?
    55     ;;
    56 esac
    58 ofile=
    59 cfile=
    60 eat=
    62 for arg
    63 do
    64   if test -n "$eat"; then
    65     eat=
    66   else
    67     case $1 in
    68       -o)
    69 	# configure might choose to run compile as `compile cc -o foo foo.c'.
    70 	# So we strip `-o arg' only if arg is an object.
    71 	eat=1
    72 	case $2 in
    73 	  *.o | *.obj)
    74 	    ofile=$2
    75 	    ;;
    76 	  *)
    77 	    set x "$@" -o "$2"
    78 	    shift
    79 	    ;;
    80 	esac
    81 	;;
    82       *.c)
    83 	cfile=$1
    84 	set x "$@" "$1"
    85 	shift
    86 	;;
    87       *)
    88 	set x "$@" "$1"
    89 	shift
    90 	;;
    91     esac
    92   fi
    93   shift
    94 done
    96 if test -z "$ofile" || test -z "$cfile"; then
    97   # If no `-o' option was seen then we might have been invoked from a
    98   # pattern rule where we don't need one.  That is ok -- this is a
    99   # normal compilation that the losing compiler can handle.  If no
   100   # `.c' file was seen then we are probably linking.  That is also
   101   # ok.
   102   exec "$@"
   103 fi
   105 # Name of file we expect compiler to create.
   106 cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
   108 # Create the lock directory.
   109 # Note: use `[/.-]' here to ensure that we don't use the same name
   110 # that we are using for the .o file.  Also, base the name on the expected
   111 # object file name, since that is what matters with a parallel build.
   112 lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
   113 while true; do
   114   if mkdir "$lockdir" >/dev/null 2>&1; then
   115     break
   116   fi
   117   sleep 1
   118 done
   119 # FIXME: race condition here if user kills between mkdir and trap.
   120 trap "rmdir '$lockdir'; exit 1" 1 2 15
   122 # Run the compile.
   123 "$@"
   124 ret=$?
   126 if test -f "$cofile"; then
   127   mv "$cofile" "$ofile"
   128 elif test -f "${cofile}bj"; then
   129   mv "${cofile}bj" "$ofile"
   130 fi
   132 rmdir "$lockdir"
   133 exit $ret
   135 # Local Variables:
   136 # mode: shell-script
   137 # sh-indentation: 2
   138 # eval: (add-hook 'write-file-hooks 'time-stamp)
   139 # time-stamp-start: "scriptversion="
   140 # time-stamp-format: "%:y-%02m-%02d.%02H"
   141 # time-stamp-end: "$"
   142 # End:
.