source: trunk/third/nautilus-media/compile @ 21022

Revision 21022, 3.6 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21021, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1#! /bin/sh
2# Wrapper for compilers which do not understand `-c -o'.
3
4scriptversion=2003-11-09.00
5
6# Copyright (C) 1999, 2000, 2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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
32case $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
39Usage: compile [--help] [--version] PROGRAM [ARGS]
40
41Wrapper for compilers which do not understand `-c -o'.
42Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
43arguments, and rename the output as expected.
44
45If you are trying to build a whole package this is not the
46right script to run: please start by reading the file `INSTALL'.
47
48Report bugs to <bug-automake@gnu.org>.
49EOF
50    exit 0
51    ;;
52  -v | --v*)
53    echo "compile $scriptversion"
54    exit 0
55    ;;
56esac
57
58
59prog=$1
60shift
61
62ofile=
63cfile=
64args=
65while test $# -gt 0; do
66  case "$1" in
67    -o)
68      # configure might choose to run compile as `compile cc -o foo foo.c'.
69      # So we do something ugly here.
70      ofile=$2
71      shift
72      case "$ofile" in
73        *.o | *.obj)
74          ;;
75        *)
76          args="$args -o $ofile"
77          ofile=
78          ;;
79      esac
80       ;;
81    *.c)
82      cfile=$1
83      args="$args $1"
84      ;;
85    *)
86      args="$args $1"
87      ;;
88  esac
89  shift
90done
91
92if test -z "$ofile" || test -z "$cfile"; then
93  # If no `-o' option was seen then we might have been invoked from a
94  # pattern rule where we don't need one.  That is ok -- this is a
95  # normal compilation that the losing compiler can handle.  If no
96  # `.c' file was seen then we are probably linking.  That is also
97  # ok.
98  exec "$prog" $args
99fi
100
101# Name of file we expect compiler to create.
102cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
103
104# Create the lock directory.
105# Note: use `[/.-]' here to ensure that we don't use the same name
106# that we are using for the .o file.  Also, base the name on the expected
107# object file name, since that is what matters with a parallel build.
108lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
109while true; do
110  if mkdir $lockdir > /dev/null 2>&1; then
111    break
112  fi
113  sleep 1
114done
115# FIXME: race condition here if user kills between mkdir and trap.
116trap "rmdir $lockdir; exit 1" 1 2 15
117
118# Run the compile.
119"$prog" $args
120status=$?
121
122if test -f "$cofile"; then
123  mv "$cofile" "$ofile"
124fi
125
126rmdir $lockdir
127exit $status
128
129# Local Variables:
130# mode: shell-script
131# sh-indentation: 2
132# eval: (add-hook 'write-file-hooks 'time-stamp)
133# time-stamp-start: "scriptversion="
134# time-stamp-format: "%:y-%02m-%02d.%02H"
135# time-stamp-end: "$"
136# End:
Note: See TracBrowser for help on using the repository browser.