| 1 | 
# --------------------------------------------------------------------------- # | 
| 2 | 
# Make file for Garfield, written for Linux.                                  # | 
| 3 | 
# Author: Jeff Templon <templon@studbolt.physast.uga.edu>                     # | 
| 4 | 
# Compilation options from Florin Cotorobai <Florin.Cotorobai@cern.ch>        # | 
| 5 | 
# Based on a file from Michel Roethlisberger, IBM Switzerland.                # | 
| 6 | 
# --------------------------------------------------------------------------- # | 
| 7 | 
FC = g77 | 
| 8 | 
LF= `/cern/pro/bin/cernlib graflib/X11,kernlib,mathlib,packlib` | 
| 9 | 
# FF= -O | 
| 10 | 
FF= -O3 -malign-double -malign-loops=2 -malign-jumps=2 -malign-functions=2\ | 
| 11 | 
-fno-init-local-zero -ffast-math -fno-f2c\ | 
| 12 | 
-fforce-mem -fforce-addr -fcaller-saves -fstrength-reduce\ | 
| 13 | 
-funroll-loops -frerun-cse-after-loop \ | 
| 14 | 
 -g -fdebug-kludge | 
| 15 | 
# G77_LIB_DIR=/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3 | 
| 16 | 
# LF=-m elf_i386 -dynamic-linker /lib/ld-linux.so.1 -s -x -L$(G77_LIB_DIR) | 
| 17 | 
# LNKPRE=/usr/lib/crt1.o /usr/lib/crti.o $(G77_LIB_DIR)/crtbegin.o | 
| 18 | 
# LNKEPI=-lf2c -lm -lgcc -lc -lgcc $(G77_LIB_DIR)/crtend.o /usr/lib/crtn.o | 
| 19 | 
# LNKCERN=`/cern/pro/bin/cernlib graflib/X11,kernlib,mathlib,packlib` | 
| 20 | 
 | 
| 21 | 
garfield-7: main-7.o | 
| 22 | 
        $(FC) -o .@sys/garfield-7 *.o $(LF) | 
| 23 | 
        rm *.o | 
| 24 | 
 | 
| 25 | 
main-7.o: main-7.f | 
| 26 | 
        $(FC) -c $(FF) *.f | 
| 27 | 
        rm *.f | 
| 28 | 
 | 
| 29 | 
main-7.f: garfield-7.f | 
| 30 | 
        /cern/pro/bin/fcasplit garfield-7.f | 
| 31 | 
        -rm garfield-7.f garfield-7.mkfca garfield-7.shfca y.lis | 
| 32 | 
        mv main.f main-7.f | 
| 33 | 
 | 
| 34 | 
garfield-7.f: garfield-7.car magboltz-2.car heed101garf.car garfield-7.cra | 
| 35 | 
        -rm *.f *.o | 
| 36 | 
        ./patchy_step garfield-7 | 
| 37 | 
 | 
| 38 | 
libgarfield-7.a: garfield-7.f | 
| 39 | 
        /cern/pro/bin/fcasplit garfield-7.f | 
| 40 | 
        rm main.f garfield-7.f garfield-7.mkfca garfield-7.shfca y.lis | 
| 41 | 
        $(FC) -c $(FF) *.f | 
| 42 | 
        ar crv libgarfield-7.a *.o  | 
| 43 | 
        ranlib libgarfield-7.a | 
| 44 | 
 | 
| 45 | 
garfield: main.o | 
| 46 | 
        $(FC) -o .@sys/garfield *.o $(LF) | 
| 47 | 
        rm *.o | 
| 48 | 
 | 
| 49 | 
# garfield: main.o | 
| 50 | 
#       ld $(LF) -o .@sys/garfield  *.o $(LNKPRE) $(LNKCERN) $(LNKEPI) | 
| 51 | 
 | 
| 52 | 
main.o: main.f | 
| 53 | 
        $(FC) -c $(FF) *.f | 
| 54 | 
        rm *.f | 
| 55 | 
 | 
| 56 | 
# main.o: main.f | 
| 57 | 
#       $(FC) -c *.f | 
| 58 | 
#       rm *.f | 
| 59 | 
 | 
| 60 | 
main.f: garfield.f | 
| 61 | 
        /cern/pro/bin/fcasplit garfield.f | 
| 62 | 
        rm garfield.f garfield.mkfca garfield.shfca y.lis | 
| 63 | 
 | 
| 64 | 
garfield.f: garfield.car maggarf.car heed101garf.car garfield.cra | 
| 65 | 
        -rm *.f *.o | 
| 66 | 
        ./patchy_step garfield | 
| 67 | 
 | 
| 68 | 
garfield.car: | 
| 69 | 
        copy_garfield | 
| 70 | 
 | 
| 71 | 
maggarf.car: | 
| 72 | 
        copy_maggarf | 
| 73 | 
 | 
| 74 | 
heed101garf.car: | 
| 75 | 
        copy_heed | 
| 76 | 
 | 
| 77 | 
help: garfield.rawhelp | 
| 78 | 
        -rm .@sys/garfield.packhelp | 
| 79 | 
        ./garfield-7 -noinput -noterminal -metafile  < help_input | 
| 80 | 
        rm garfield.metafile | 
| 81 | 
  | 
| 82 | 
interface: interface.a | 
| 83 | 
        echo Done making interface.a. | 
| 84 | 
 | 
| 85 | 
interface.f: garfield.car interface.cra | 
| 86 | 
        -rm interface.f | 
| 87 | 
        patchy_step interface | 
| 88 | 
        rm y.lis | 
| 89 | 
 | 
| 90 | 
interface.a: interface.f | 
| 91 | 
        g77 -c $(FF) -o interface.o interface.f | 
| 92 | 
        -rm .@sys/interface.a | 
| 93 | 
        ar -q interface.a interface.o | 
| 94 | 
        ranlib interface.a | 
| 95 | 
        rm interface.f | 
| 96 | 
        rm interface.o |