src/3rdparty/libtiff/config/compile
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 #! /bin/sh
       
     2 # Wrapper for compilers which do not understand `-c -o'.
       
     3 
       
     4 scriptversion=2005-05-14.22
       
     5 
       
     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.
       
    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 # This file is maintained in Automake, please report
       
    29 # bugs to <bug-automake@gnu.org> or send patches to
       
    30 # <automake-patches@gnu.org>.
       
    31 
       
    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]
       
    40 
       
    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.
       
    44 
       
    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'.
       
    47 
       
    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
       
    57 
       
    58 ofile=
       
    59 cfile=
       
    60 eat=
       
    61 
       
    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
       
    95 
       
    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
       
   104 
       
   105 # Name of file we expect compiler to create.
       
   106 cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
       
   107 
       
   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
       
   121 
       
   122 # Run the compile.
       
   123 "$@"
       
   124 ret=$?
       
   125 
       
   126 if test -f "$cofile"; then
       
   127   mv "$cofile" "$ofile"
       
   128 elif test -f "${cofile}bj"; then
       
   129   mv "${cofile}bj" "$ofile"
       
   130 fi
       
   131 
       
   132 rmdir "$lockdir"
       
   133 exit $ret
       
   134 
       
   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: