"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "scribus-1.3.3.12/admin/compile" of archive scribus-1.3.3.12.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 #! /bin/sh
    2 
    3 # Wrapper for compilers which do not understand `-c -o'.
    4 
    5 # Copyright 1999, 2000 Free Software Foundation, Inc.
    6 # Written by Tom Tromey <tromey@cygnus.com>.
    7 #
    8 # This program is free software; you can redistribute it and/or modify
    9 # it under the terms of the GNU General Public License as published by
   10 # the Free Software Foundation; either version 2, or (at your option)
   11 # any later version.
   12 #
   13 # This program is distributed in the hope that it will be useful,
   14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
   15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   16 # GNU General Public License for more details.
   17 #
   18 # You should have received a copy of the GNU General Public License
   19 # along with this program; if not, write to the Free Software
   20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
   21 
   22 # As a special exception to the GNU General Public License, if you
   23 # distribute this file as part of a program that contains a
   24 # configuration script generated by Autoconf, you may include it under
   25 # the same distribution terms that you use for the rest of that program.
   26 
   27 # Usage:
   28 # compile PROGRAM [ARGS]...
   29 # `-o FOO.o' is removed from the args passed to the actual compile.
   30 
   31 prog=$1
   32 shift
   33 
   34 ofile=
   35 cfile=
   36 args=
   37 while test $# -gt 0; do
   38    case "$1" in
   39     -o)
   40        # configure might choose to run compile as `compile cc -o foo foo.c'.
   41        # So we do something ugly here.
   42        ofile=$2
   43        shift
   44        case "$ofile" in
   45 	*.o | *.obj)
   46 	   ;;
   47 	*)
   48 	   args="$args -o $ofile"
   49 	   ofile=
   50 	   ;;
   51        esac
   52        ;;
   53     *.c)
   54        cfile=$1
   55        args="$args $1"
   56        ;;
   57     *)
   58        args="$args $1"
   59        ;;
   60    esac
   61    shift
   62 done
   63 
   64 if test -z "$ofile" || test -z "$cfile"; then
   65    # If no `-o' option was seen then we might have been invoked from a
   66    # pattern rule where we don't need one.  That is ok -- this is a
   67    # normal compilation that the losing compiler can handle.  If no
   68    # `.c' file was seen then we are probably linking.  That is also
   69    # ok.
   70    exec "$prog" $args
   71 fi
   72 
   73 # Name of file we expect compiler to create.
   74 cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
   75 
   76 # Create the lock directory.
   77 # Note: use `[/.-]' here to ensure that we don't use the same name
   78 # that we are using for the .o file.  Also, base the name on the expected
   79 # object file name, since that is what matters with a parallel build.
   80 lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
   81 while true; do
   82    if mkdir $lockdir > /dev/null 2>&1; then
   83       break
   84    fi
   85    sleep 1
   86 done
   87 # FIXME: race condition here if user kills between mkdir and trap.
   88 trap "rmdir $lockdir; exit 1" 1 2 15
   89 
   90 # Run the compile.
   91 "$prog" $args
   92 status=$?
   93 
   94 if test -f "$cofile"; then
   95    mv "$cofile" "$ofile"
   96 fi
   97 
   98 rmdir $lockdir
   99 exit $status