Annotation of researchv10no/cmd/f2c/f77.pyxis, revision 1.1

1.1     ! root        1: #!/bin/sh
        !             2: PATH=/v/bin:/bin:/usr/bin
        !             3: # f77-style shell script to compile and load fortran, C, and assembly codes
        !             4: 
        !             5: #      usage:  f77 [-g] [-O] [-o absfile] [-c] files [-l library]
        !             6: 
        !             7: #              -o objfile      Override default executable name a.out.
        !             8: 
        !             9: #              -c              Do not call linker, leave relocatables in *.o.
        !            10: 
        !            11: #              -S              leave assembler output on file.s
        !            12: 
        !            13: #              -l library      (passed to ld).
        !            14: 
        !            15: #              -u              complain about undeclared variables
        !            16: 
        !            17: #              -w              omit all warning messages
        !            18: 
        !            19: #              -w66            omit Fortran 66 compatibility warning messages
        !            20: 
        !            21: #              files           FORTRAN source files ending in .f .
        !            22: #                              C source files ending in .c .
        !            23: #                              Assembly language files ending in .s .
        !            24: #                              efl source files ending in .e .
        !            25: 
        !            26: #              -D def          passed to C compiler (for .c files)
        !            27: 
        !            28: #              -I includepath  passed to C compiler (for .c files)
        !            29: 
        !            30: #              -Ntnnn          allow nnn entries in table t
        !            31: 
        !            32: s=/tmp/stderr_$$
        !            33: t=/tmp/f77_$$.o
        !            34: CC=${CC_f2c:-'/v/bin/lcc -Wfdouble=8,4,1'}
        !            35: EFL=${EFL:-/v/bin/efl}
        !            36: EFLFLAGS=${EFLFLAGS:-'system=portable deltastno=10'}
        !            37: F2C=${F2C:-/v/bin/f2c}
        !            38: F2CFLAGS=${F2CFLAGS:='-ARw8 -Nn802'}
        !            39: rc=0
        !            40: trap "rm -f $s $t; exit \$rc" 0
        !            41: lib=/lib/num/lib.lo
        !            42: OUTF=a.out
        !            43: cOPT=1
        !            44: set -- `getopt cD:gI:N:O:o:Suw6 "$@"`
        !            45: case $? in 0);; *) exit 1;; esac
        !            46: CCFLAGS=
        !            47: while
        !            48:        test X"$1" != X--
        !            49: do
        !            50:        case "$1"
        !            51:        in
        !            52:        -c)     cOPT=0
        !            53:                shift
        !            54:                ;;
        !            55: 
        !            56:        -D)     CCFLAGS="$CCFLAGS -D$2"
        !            57:                shift 2
        !            58:                ;;
        !            59: 
        !            60:        -g)     CFLAGS="$CFLAGS -g"
        !            61:                CCFLAGS="$CCFLAGS -g"
        !            62:                F2CFLAGS="$F2CFLAGS -g"
        !            63:                shift;;
        !            64: 
        !            65:        -I)     CCFLAGS="$CCFLAGS -I$2"
        !            66:                shift 2
        !            67:                ;;
        !            68: 
        !            69:        -o)     OUTF=$2
        !            70:                shift 2
        !            71:                ;;
        !            72: 
        !            73:        -O)     case $2 in -1) O=-O1;; -2) O=-O2;; -3) O=-O3;; *) O=-O;; esac
        !            74:                case $O in -O);; *) shift;; esac
        !            75:                # lcc ignores -O...
        !            76:                shift
        !            77:                ;;
        !            78: 
        !            79:        -u)     F2CFLAGS="$F2CFLAGS -u"
        !            80:                shift
        !            81:                ;;
        !            82: 
        !            83:        -w)     F2CFLAGS="$F2CFLAGS -w"
        !            84:                case $2 in -6) F2CFLAGS="$F2CFLAGS"66; shift
        !            85:                        case $2 in -6) shift;; esac;; esac
        !            86:                shift
        !            87:                ;;
        !            88: 
        !            89:        -N)     F2CFLAGS="$F2CFLAGS $1""$2"
        !            90:                shift 2
        !            91:                ;;
        !            92: 
        !            93:        -S)     CFLAGS="$CFLAGS -S"
        !            94:                cOPT=0
        !            95:                shift
        !            96:                ;;
        !            97: 
        !            98:        *)
        !            99:                echo "invalid parameter $1" 1>&2
        !           100:                shift
        !           101:                ;;
        !           102:        esac
        !           103: done
        !           104: shift
        !           105: while
        !           106:        test -n "$1"
        !           107: do
        !           108:        case "$1"
        !           109:        in
        !           110:        *.[fF])
        !           111:                case "$1" in *.f) f=".f";; *.F) f=".F";; esac
        !           112:                b=`basename $1 $f`
        !           113:                $F2C $F2CFLAGS $1
        !           114:                case $? in 0);; *) exit;; esac
        !           115:                 $CC -c $CFLAGS $b.c 2>$s
        !           116:                rc=$?
        !           117:                sed '/parameter .* is not referenced/d;/warning: too many parameters/d' $s 1>&2
        !           118:                case $rc in 0);; *) exit;; esac
        !           119:                OFILES="$OFILES $b.o"
        !           120:                rm $b.c
        !           121:                case $cOPT in 1) cOPT=2;; esac
        !           122:                shift
        !           123:                ;;
        !           124:        *.e)
        !           125:                b=`basename $1 .e`
        !           126:                $EFL $EFLFLAGS $1 >$b.f
        !           127:                case $? in 0);; *) exit;; esac
        !           128:                $F2C $F2CFLAGS $b.f
        !           129:                case $? in 0);; *) exit;; esac
        !           130:                 $CC -c $CFLAGS $b.c
        !           131:                case $? in 0);; *) exit;; esac
        !           132:                OFILES="$OFILES $b.o"
        !           133:                rm $b.[cf]
        !           134:                case $cOPT in 1) cOPT=2;; esac
        !           135:                shift
        !           136:                ;;
        !           137:        *.s)
        !           138:                echo $1: 1>&2
        !           139:                OFILE=`basename $1 .s`.o
        !           140:                ${AS:-/usr/bin/as} -o $OFILE $AFLAGS $1
        !           141:                case $? in 0);; *) exit;; esac
        !           142:                OFILES="$OFILES $OFILE"
        !           143:                case $cOPT in 1) cOPT=2;; esac
        !           144:                shift
        !           145:                ;;
        !           146:        *.c)
        !           147:                echo $1: 1>&2
        !           148:                OFILE=`basename $1 .c`.o
        !           149:                 $CC -c $CFLAGS $CCFLAGS $1
        !           150:                rc=$?; case $rc in 0);; *) exit;; esac
        !           151:                OFILES="$OFILES $OFILE"
        !           152:                case $cOPT in 1) cOPT=2;; esac
        !           153:                shift
        !           154:                ;;
        !           155:        *.o)
        !           156:                OFILES="$OFILES $1"
        !           157:                case $cOPT in 1) cOPT=2;; esac
        !           158:                shift
        !           159:                ;;
        !           160:        -l)
        !           161:                OFILES="$OFILES -l$2"
        !           162:                shift 2
        !           163:                case $cOPT in 1) cOPT=2;; esac
        !           164:                ;;
        !           165:        -l*)
        !           166:                OFILES="$OFILES $1"
        !           167:                shift
        !           168:                case $cOPT in 1) cOPT=2;; esac
        !           169:                ;;
        !           170:        -o)
        !           171:                OUTF=$2; shift 2;;
        !           172:        *)
        !           173:                OFILES="$OFILES $1"
        !           174:                shift
        !           175:                case $cOPT in 1) cOPT=2;; esac
        !           176:                ;;
        !           177:        esac
        !           178: done
        !           179: 
        !           180: case $cOPT in 2) $CC -o $OUTF -u MAIN__ $OFILES -lf2c -lm;; esac
        !           181: rc=$?
        !           182: exit $rc

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.