"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