Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F20064456
compile
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
2 KB
Subscribers
None
compile
View Options
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
# Copyright 1999, 2000 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Usage:
# compile PROGRAM [ARGS]...
# `-o FOO.o' is removed from the args passed to the actual compile.
prog
=
$1
shift
ofile
=
cfile
=
args
=
while
test
$#
-gt
0
;
do
case
"
$1
"
in
-o
)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we do something ugly here.
ofile
=
$2
shift
case
"
$ofile
"
in
*.o
|
*.obj
)
;;
*
)
args
=
"
$args
-o
$ofile
"
ofile
=
;;
esac
;;
*.c
)
cfile
=
$1
args
=
"
$args
$1
"
;;
*
)
args
=
"
$args
$1
"
;;
esac
shift
done
if
test
-z
"
$ofile
"
||
test
-z
"
$cfile
"
;
then
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec
"
$prog
"
$args
fi
# Name of file we expect compiler to create.
cofile
=
`
echo
$cfile
|
sed -e
's|^.*/||'
-e
's/\.c$/.o/'
`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir
=
`
echo
$cofile
|
sed -e
's|[/.-]|_|g'
`
.d
while
true
;
do
if
mkdir
$lockdir
> /dev/null
2
>
&
1
;
then
break
fi
sleep
1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap
"rmdir
$lockdir
; exit 1"
1
2
15
# Run the compile.
"
$prog
"
$args
status
=
$?
if
test
-f
"
$cofile
"
;
then
mv
"
$cofile
"
"
$ofile
"
fi
rmdir
$lockdir
exit
$status
File Metadata
Details
Attached
Mime Type
text/x-shellscript
Expires
Sun, Feb 23, 7:14 PM (5 h, 51 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
72/9d/406c468bb39165e8bdf6d52c14cb
Attached To
rM GPGME
Event Timeline
Log In to Comment