#!/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=cc 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