home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
octave-1.1.1p1-src.tgz
/
tar.out
/
fsf
/
octave
/
flibs.sh
< prev
next >
Wrap
Linux/UNIX/POSIX Shell Script
|
1996-09-28
|
3KB
|
143 lines
#!/bin/sh
#
# flibs -- try to get the Fortran compiler to tell us what libraries
# it expects to link to, and echo the result to the standard output.
#
# John W. Eaton
# jwe@che.utexas.edu
# Department of Chemical Engineering
# The University of Texas at Austin
trap 'rm -f conftest* core; exit 1' 1 3 15
# Write a minimal program and compile it with -v. I don't know what
# to do if your compiler doesn't have -v...
echo " END" > conftest.f
if test $# -eq 1
then
foutput=`cat $1`
else
foutput=`${F77-f77} -v -o conftest conftest.f 2>&1`
fi
# The easiest thing to do for xlf output is to replace all the commas
# with spaces. Try to only do that if the output is really from xlf,
# since doing that causes problems on other systems.
xlf_p=`echo $foutput | grep xlfentry`
if test -n "$xlf_p"
then
foutput=`echo $foutput | sed 's/,/ /g'`
fi
#Begin amiga hack - sed command crashes amiga
#ld_run_path=`echo $foutput | \
# sed -n -e 's/.*\(LD_RUN_PATH *= *[^ ]*\).*/\1/p' | \
# sed -e 's/LD_RUN_PATH *= *//'`
#End amiga hack
# We are only supposed to find this on Solaris systems, and this
# substitution is probably only going to work with gcc on those
# systems...
if test -n "$ld_run_path"
then
ld_run_path="-Xlinker -R -Xlinker $ld_run_path"
fi
flibs=
lflags=
# If want_arg is set, we know we want the arg to be added to the list,
# so we don't have to examine it.
want_arg=
for arg in $foutput
do
if test -z "$want_arg"
then
case $arg in
/*.a | /*values-*.o)
exists=false
for f in $lflags
do
if test x$arg = x$f
then
exists=true
fi
done
if $exists
then
arg=
else
lflags="$lflags $arg"
fi
;;
-lang*)
arg=
;;
-[lL]*)
exists=false
for f in $lflags
do
if test x$arg = x$f
then
exists=true
fi
done
if $exists || test x$arg = x-lm -o x$arg = x-lc
then
arg=
else
lflags="$lflags $arg"
fi
;;
-u)
want_arg=$arg
;;
-Y)
want_arg=$arg
arg=
;;
*)
arg=
;;
esac
else
if test x$want_arg = x-Y
then
# Should probably try to ensure unique directory options here too.
# This probably only applies to Solaris systems, and then will only
# work with gcc...
arg=`echo $arg | sed -e 's%^P,%%'`
SAVE_IFS=$IFS
IFS=:
list=
for elt in $arg
do
list="$list -L $elt"
done
IFS=$SAVE_IFS
arg="$list"
fi
want_arg=
fi
if test -n "$arg"
then
flibs="$flibs $arg"
fi
done
echo "$ld_run_path $flibs"
rm -f conftest* core
# Bye-bye.
exit 0