diff options
Diffstat (limited to 'gnu/usr.bin/cc25/usr.bin.f77/f77.script')
| -rw-r--r-- | gnu/usr.bin/cc25/usr.bin.f77/f77.script | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/gnu/usr.bin/cc25/usr.bin.f77/f77.script b/gnu/usr.bin/cc25/usr.bin.f77/f77.script new file mode 100644 index 000000000000..f218a03d9625 --- /dev/null +++ b/gnu/usr.bin/cc25/usr.bin.f77/f77.script @@ -0,0 +1,114 @@ +#!/bin/sh +# Compile Fortran code, adding -lf2c. +# This is a slightly modified g++ script. + +: || exec /bin/sh -f $0 $argv:q + +# The compiler name might be different when doing cross-compilation +# (this should be configured) +gcc_name=gcc +speclang=-xnone + +# replace the command name by the name of the new command +progname=`basename $0` +case "$0" in + */*) + gcc=`echo $0 | sed -e "s;/[^/]*$;;"`/$gcc_name + ;; + *) + gcc=$gcc_name + ;; +esac + +# $first is yes for first arg, no afterwards. +first=yes +# If next arg is the argument of an option, $quote is non-empty. +# More precisely, it is the option that wants an argument. +quote= +# $library is made empty to disable use of libf2c. +#library=-lF77 -lI77 -lm +library="-lf2c -lm" +numargs=$# + +# ash requires the newline before `do'. +for arg +do + if [ $first = yes ] + then + # Need some 1st arg to `set' which does not begin with `-'. + # We get rid of it after the loop ends. + set gcc + first=no + fi + # If you have to ask what this does, you should not edit this file. :-) + # The ``S'' at the start is so that echo -nostdinc does not eat the + # -nostdinc. + arg=`echo "S$arg" | sed "s/^S//; s/'/'\\\\\\\\''/g"` + if [ x$quote != x ] + then + quote= + else + quote= + case $arg in + -nostdlib) + # Inhibit linking with -lf2c. + library= + ;; + -lm | -lmath) + # Because libf2c uses things from the math library, make sure it + # always comes before the math library. We recognize both -lm + # and -lmath, since on some systems (e.g. m88k SVR3), it + # doesn't call it libm.a for some reason. + #set "$@" $library + #library="" + ;; + -[bBVDUoeTuIYmLiA] | -Tdata) + # these switches take following word as argument, + # so don't treat it as a file name. + quote=$arg + ;; + -[cSEM] | -MM) + # Don't specify libraries if we won't link, + # since that would cause a warning. + library= + ;; + -x*) + speclang=$arg + ;; + -v) + # catch `f77 -v' + if [ $numargs = 1 ] ; then library="" ; fi + ;; + -*) + # Pass other options through; they don't need -x and aren't inputs. + ;; + *) + # If file ends in .i, put options around it. + # But not if a specified -x option is currently active. + case "$speclang $arg" in -xnone\ *.i) + set "$@" -xf2c "'$arg'" -xnone + continue + esac + ;; + esac + fi + set "$@" "'$arg'" +done + +# Get rid of that initial 1st arg +if [ $first = no ]; then + shift +else + echo "$0: No input files specified." + exit 1 +fi + +if [ x$quote != x ] +then + echo "$0: argument to \`$quote' missing" + exit 1 +fi + +eval $gcc "$@" $library + + |
