|
|
1.1 ! root 1: #!/bin/sh ! 2: PATH=/v/bin:/bin:/usr/bin ! 3: # f77 - Unix script to compile and load fortran (C, Pascal, assembly) codes ! 4: ! 5: # usage: f77 [-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: # -m produce a load map (objfile.map). ! 12: ! 13: # -S leave assembler output on file.s ! 14: ! 15: # -l library (passed to ld). ! 16: ! 17: # files FORTRAN source files ending in .f . ! 18: # C source files ending in .c . ! 19: # Assembly language files ending in .s . ! 20: # efl source files ending in .e . ! 21: ! 22: F77=/usr/dmg/F77/libF77.a ! 23: I77=/usr/dmg/I77/libI77.a ! 24: s=/tmp/stderr_$$ ! 25: t=/tmp/f77_$$.o ! 26: CC=${CC_f2c:-/v/bin/lcc} ! 27: EFL=${EFL:-/usr/dmg/bin/Efl} ! 28: EFLFLAGS=${EFLFLAGS:-'system=portable deltastno=10'} ! 29: F2C=${F2C:-/usr/dmg/bin/f2c} ! 30: F2CFLAGS=${F2CFLAGS:=-AR} ! 31: rc=0 ! 32: trap "rm -f $s $t; exit \$rc" 0 ! 33: lib=/lib/num/lib.lo ! 34: OUTF=a.out ! 35: cOPT=1 ! 36: set -- `getopt cgmL:N:Oo:pQ:Sw123 "$@"` ! 37: case $? in 0);; *) exit 1;; esac ! 38: while ! 39: test X"$1" != X-- ! 40: do ! 41: case "$1" ! 42: in ! 43: -c) ! 44: cOPT=0 ! 45: shift ! 46: ;; ! 47: -g) ! 48: CFLAGS="$CFLAGS -g" ! 49: shift;; ! 50: -o) ! 51: OUTF=$2 ! 52: shift 2 ! 53: ;; ! 54: ! 55: -O) case $2 in -1) O=-O1;; -2) O=-O2;; -3) O=-O3;; *) O=-O;; esac ! 56: case $O in -O);; *) shift;; esac ! 57: # lcc ignores -O... ! 58: shift ! 59: ;; ! 60: ! 61: -w) ! 62: F2CFLAGS="$F2CFLAGS -w" ! 63: shift; ! 64: ;; ! 65: ! 66: -N) F2CFLAGS="$F2CFLAGS $1""$2" ! 67: shift 2 ! 68: ;; ! 69: ! 70: -S) ! 71: CFLAGS="$CFLAGS -S" ! 72: cOPT=0 ! 73: shift ! 74: ;; ! 75: ! 76: -[123]) ! 77: echo "invalid parameter $1" 1>&2 ! 78: shift ! 79: ;; ! 80: *) ! 81: echo "invalid parameter $1" 1>&2 ! 82: shift ! 83: ;; ! 84: esac ! 85: done ! 86: shift ! 87: while ! 88: test -n "$1" ! 89: do ! 90: case "$1" ! 91: in ! 92: *.f) ! 93: b=`basename $1 .f` ! 94: $F2C $F2CFLAGS $1 ! 95: case $? in 0);; *) exit;; esac ! 96: $CC -c $CFLAGS $b.c ! 97: case $? in 0);; *) exit;; esac ! 98: OFILES="$OFILES $b.o" ! 99: rm $b.c ! 100: case $cOPT in 1) cOPT=2;; esac ! 101: shift ! 102: ;; ! 103: *.e) ! 104: b=`basename $1 .e` ! 105: $EFL $EFLFLAGS $1 >$b.f ! 106: case $? in 0);; *) exit;; esac ! 107: $F2C $F2CFLAGS $b.f ! 108: case $? in 0);; *) exit;; esac ! 109: $CC -c $CFLAGS $b.c ! 110: case $? in 0);; *) exit;; esac ! 111: OFILES="$OFILES $b.o" ! 112: rm $b.[ce] ! 113: case $cOPT in 1) cOPT=2;; esac ! 114: shift ! 115: ;; ! 116: *.s) ! 117: echo $1: 1>&2 ! 118: OFILE=`basename $1 .s`.o ! 119: ${AS:-/bin/as} -o $OFILE $AFLAGS $1 ! 120: case $? in 0);; *) exit;; esac ! 121: OFILES="$OFILES $OFILE" ! 122: case $cOPT in 1) cOPT=2;; esac ! 123: shift ! 124: ;; ! 125: *.c) ! 126: echo $1: 1>&2 ! 127: OFILE=`basename $1 .c`.o ! 128: $CC -c $CFLAGS $1 ! 129: rc=$?; case $rc in 0);; *) exit;; esac ! 130: OFILES="$OFILES $OFILE" ! 131: case $cOPT in 1) cOPT=2;; esac ! 132: shift ! 133: ;; ! 134: *.o) ! 135: OFILES="$OFILES $1" ! 136: case $cOPT in 1) cOPT=2;; esac ! 137: shift ! 138: ;; ! 139: -l) ! 140: OFILES="$OFILES -l$2" ! 141: shift 2 ! 142: case $cOPT in 1) cOPT=2;; esac ! 143: ;; ! 144: -l*) ! 145: OFILES="$OFILES $1" ! 146: shift ! 147: case $cOPT in 1) cOPT=2;; esac ! 148: ;; ! 149: -o) ! 150: OUTF=$2; shift 2;; ! 151: *) ! 152: OFILES="$OFILES $1" ! 153: shift ! 154: ;; ! 155: esac ! 156: done ! 157: ! 158: case $cOPT in 2) $CC -o $OUTF -u MAIN__ $OFILES $F77 $I77 -lm -lc;; esac ! 159: rc=$? ! 160: exit $rc
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.