1 2# ================================ 3# Makefile for generic Unix system 4# ================================ 5 6# Set the macro FC to the compiler you would like to use 7# Set the macro FFLAGS to the compiler options you would like to use 8# Set the macro RANLIB to the processor that writes tables-of-contents 9# on archive files. 10# Set the macro MACHCON to the machine type (see the file 11# ../../utils/r1mach.template) 12 13# Some example settings : 14 15# ... Sun 16 17##=sun4_begin 18# FC = f77 19# FFLAGS = -O3 20# RANLIB = ranlib 21# MACHCON = SUN 22##=sun4_end 23 24# ... Sun (with -r8 option) 25 26##=sun4.r8_begin 27# FC = f77 28# FFLAGS = -O3 -r8 29# RANLIB = echo 30# MACHCON = SUN.F77-WITH-R8-OPTION 31##=sun4.r8_end 32 33# ... Sun for SPARCworks compiler (Solaris 2) 34 35##=sun.sparc_begin 36# FC = f77 37# FFLAGS = -O3 38# RANLIB = echo 39# MACHCON = SUN 40##=sun.sparc_end 41 42# ... Sun (with -r8 option) for SPARCworks compiler (Solaris 2) 43 44##=sun4.sparc.r8_begin 45# FC = f77 46# FFLAGS = -O3 -r8 47# RANLIB = ranlib 48# MACHCON = SUN.F77-WITH-R8-OPTION 49##=sun.sparc.r8_end 50 51 52# ... Sun for Solaris 2.5 53 54##=sun.sun.solaris2-v4_begin 55# FC = f77 56# FFLAGS = -O3 -PIC 57# RANLIB = echo 58# MACHCON = SUN 59##=sun.sun.solaris2-v4_end 60 61# ... Sun (with -r8 option) Solaris 2.5 62 63##=sun.sun.solaris2-v4.r8_begin 64# FC = f77 65# FFLAGS = -O3 -r8 -PIC 66# RANLIB = ranlib 67# MACHCON = SUN.F77-WITH-R8-OPTION 68##=sun.sun.solaris2-v4.r8_end 69 70# ... Silicon Graphics (Iris, Indigo) 71 72##=sgi_begin 73# FC = f77 74# FFLAGS = -O2 static 75# RANLIB = ar tls 76# MACHCON = IEEE.MOST-SIG-BYTE-FIRST 77##=sgi_end 78 79# ... Cray (UNICOS) 80 81# FC = cf77 82# FFLAGS = 83# RANLIB = echo 84# MACHCON = CRAY 85 86# ... Convex (Native mode) 87 88# FC = fc 89# FFLAGS = -fn -O2 -or none 90# RANLIB = ranlib 91# MACHCON = CONVEX 92 93# ... HP9000 (Series 300 or 700) 94 95##=hp9000s300_begin 96##=hp9000s700_begin 97# FC = f77 98# FFLAGS = -K -O 99# RANLIB = ranlib 100# MACHCON = IEEE.MOST-SIG-BYTE-FIRST 101##=hp9000s700_end 102##=hp9000s300_end 103 104# ... IBM RS/6000 105 106##=rs6000_begin 107# FC = xlf 108# FFLAGS = -O 109# RANLIB = ranlib 110# MACHCON = IEEE.MOST-SIG-BYTE-FIRST 111##=rs6000_end 112 113# ... IBM RS/6000 with automatic precision doubling 114 115##=rs6000.autodbl_begin 116# FC = xlf 117# FFLAGS = -O -qautodbl=dblpad 118# RANLIB = ranlib 119# MACHCON = IBM.RS6000.XLF-WITH-AUTODBL-OPTION 120##=rs6000.autodbl_end 121 122# -------------------------------------------------------------------------- 123 124SRCDIR = ../../src 125SCRIPTDIR = ../../utils 126 127# -------------------------------------------------------------------------- 128 129libcm.a : checkall 130 @echo " " ; echo "Updating library file ..." ; echo " " 131 csh $(SCRIPTDIR)/Update.local $@ '$(RANLIB)' 132 133checkall : sublibs 134 date > sublibs 135 136veryclean : 137 rm -f -r sublibs libcm.a src 138 139# -------------------------------------------------------------------------- 140 141# ... special replacement sources for this machine 142 143sublibs :: src/machcon/i1mach.f src/machcon/d1mach.f src/machcon/r1mach.f 144 $(FC) -c $(FFLAGS) $? 145 146src/machcon/i1mach.f : src/machcon 147 csh $(SCRIPTDIR)/genmachcon $(MACHCON) 148 mv i1mach.f r1mach.f d1mach.f src/machcon 149 150src/machcon/r1mach.f src/machcon/d1mach.f : 151 152src/machcon : src 153 mkdir $@ 154 155src : 156 mkdir $@ 157 158 159# -------------------------------------------------------------------------- 160 161# ... library proper (one entry for each sublibrary) 162 163# Some cmlib sublibraries may fail to compile at the highest compiler 164# optimization level. For those that fail, change $(FFLAGS) below to 165# a lower optimization level. 166 167# Some known problems : 168 169# on Sun Fortran 1.3.1 : compile cdriv with -O1 170# on SGI Iris : compile fnlib with -O1 static 171 172sublibs :: $(SRCDIR)/adapt/*.f ; $(FC) -c $(FFLAGS) $? 173sublibs :: $(SRCDIR)/amoslib/*.f ; $(FC) -c $(FFLAGS) $? 174sublibs :: $(SRCDIR)/blas/*.f ; $(FC) -c $(FFLAGS) $? 175sublibs :: $(SRCDIR)/bocls/*.f ; $(FC) -c $(FFLAGS) $? 176sublibs :: $(SRCDIR)/bspline/*.f ; $(FC) -c $(FFLAGS) $? 177sublibs :: $(SRCDIR)/bvsup/*.f ; $(FC) -c $(FFLAGS) $? 178sublibs :: $(SRCDIR)/cdriv/*.f ; $(FC) -c $(FFLAGS) $? 179sublibs :: $(SRCDIR)/cluster/*.f ; $(FC) -c $(FFLAGS) $? 180sublibs :: $(SRCDIR)/cpqr79/*.f ; $(FC) -c $(FFLAGS) $? 181sublibs :: $(SRCDIR)/cpzero/*.f ; $(FC) -c $(FFLAGS) $? 182sublibs :: $(SRCDIR)/dbsplin/*.f ; $(FC) -c $(FFLAGS) $? 183sublibs :: $(SRCDIR)/ddassl/*.f ; $(FC) -c $(FFLAGS) $? 184sublibs :: $(SRCDIR)/ddriv/*.f ; $(FC) -c $(FFLAGS) $? 185sublibs :: $(SRCDIR)/depac/*.f ; $(FC) -c $(FFLAGS) $? 186sublibs :: $(SRCDIR)/dnl2sn/*.f ; $(FC) -c $(FFLAGS) $? 187sublibs :: $(SRCDIR)/dqrlss/*.f ; $(FC) -c $(FFLAGS) $? 188sublibs :: $(SRCDIR)/dtensbs/*.f ; $(FC) -c $(FFLAGS) $? 189sublibs :: $(SRCDIR)/eispack/*.f ; $(FC) -c $(FFLAGS) $? 190sublibs :: $(SRCDIR)/fc/*.f ; $(FC) -c $(FFLAGS) $? 191sublibs :: $(SRCDIR)/fcnpak/*.f ; $(FC) -c $(FFLAGS) $? 192sublibs :: $(SRCDIR)/fftpkg/*.f ; $(FC) -c $(FFLAGS) $? 193sublibs :: $(SRCDIR)/fishpak/*.f ; $(FC) -c $(FFLAGS) $? 194sublibs :: $(SRCDIR)/fnlib/*.f ; $(FC) -c -O1 -static $? 195sublibs :: $(SRCDIR)/licepak/*.f ; $(FC) -c $(FFLAGS) $? 196sublibs :: $(SRCDIR)/lindrv/*.f ; $(FC) -c $(FFLAGS) $? 197sublibs :: $(SRCDIR)/linpakc/*.f ; $(FC) -c $(FFLAGS) $? 198sublibs :: $(SRCDIR)/linpakd/*.f ; $(FC) -c $(FFLAGS) $? 199sublibs :: $(SRCDIR)/linpaks/*.f ; $(FC) -c $(FFLAGS) $? 200sublibs :: $(SRCDIR)/lotps/*.f ; $(FC) -c $(FFLAGS) $? 201sublibs :: $(SRCDIR)/mxentrp/*.f ; $(FC) -c $(FFLAGS) $? 202sublibs :: $(SRCDIR)/nl2sn/*.f ; $(FC) -c $(FFLAGS) $? 203sublibs :: $(SRCDIR)/odrpack/*.f ; $(FC) -c $(FFLAGS) $? 204sublibs :: $(SRCDIR)/pchipd/*.f ; $(FC) -c $(FFLAGS) $? 205sublibs :: $(SRCDIR)/pchips/*.f ; $(FC) -c $(FFLAGS) $? 206sublibs :: $(SRCDIR)/q1da/*.f ; $(FC) -c $(FFLAGS) $? 207sublibs :: $(SRCDIR)/quadpkd/*.f ; $(FC) -c $(FFLAGS) $? 208sublibs :: $(SRCDIR)/quadpks/*.f ; $(FC) -c $(FFLAGS) $? 209sublibs :: $(SRCDIR)/rv/*.f ; $(FC) -c $(FFLAGS) $? 210sublibs :: $(SRCDIR)/sdassl/*.f ; $(FC) -c $(FFLAGS) $? 211sublibs :: $(SRCDIR)/sdriv/*.f ; $(FC) -c $(FFLAGS) $? 212sublibs :: $(SRCDIR)/sglss/*.f ; $(FC) -c $(FFLAGS) $? 213sublibs :: $(SRCDIR)/slrpack/*.f ; $(FC) -c $(FFLAGS) $? 214sublibs :: $(SRCDIR)/slvblk/*.f ; $(FC) -c $(FFLAGS) $? 215sublibs :: $(SRCDIR)/snls1e/*.f ; $(FC) -c $(FFLAGS) $? 216sublibs :: $(SRCDIR)/splp/*.f ; $(FC) -c $(FFLAGS) $? 217sublibs :: $(SRCDIR)/sqrlss/*.f ; $(FC) -c $(FFLAGS) $? 218sublibs :: $(SRCDIR)/ssort/*.f ; $(FC) -c $(FFLAGS) $? 219sublibs :: $(SRCDIR)/sudsods/*.f ; $(FC) -c $(FFLAGS) $? 220sublibs :: $(SRCDIR)/tensbs/*.f ; $(FC) -c $(FFLAGS) $? 221sublibs :: $(SRCDIR)/twodq/*.f ; $(FC) -c $(FFLAGS) $? 222sublibs :: $(SRCDIR)/uncmin/*.f ; $(FC) -c $(FFLAGS) $? 223sublibs :: $(SRCDIR)/vfft/*.f ; $(FC) -c $(FFLAGS) $? 224sublibs :: $(SRCDIR)/vhs3/*.f ; $(FC) -c $(FFLAGS) $? 225sublibs :: $(SRCDIR)/vsfft/*.f ; $(FC) -c $(FFLAGS) $? 226sublibs :: $(SRCDIR)/xblas/*.f ; $(FC) -c $(FFLAGS) $? 227sublibs :: $(SRCDIR)/xerror/*.f ; $(FC) -c $(FFLAGS) $? 228sublibs :: $(SRCDIR)/zeroin/*.f ; $(FC) -c $(FFLAGS) $? 229 230# -------------------------------------------------------------------------- 231 232# ... the following targets run the cmlib quickchecks 233 234testall : 235 @echo " " 236 @echo "Testing all of cmlib (this make take a while) ..." 237 @echo " " 238 csh $(SCRIPTDIR)/Testall "" "$(FC)" "$(FFLAGS)" "" 239 240test : 241 @csh $(SCRIPTDIR)/Test "" "$(FC)" "$(FFLAGS)" "" 242 243# -------------------------------------------------------------------------- 244 245make clean : 246 rm -r -f core *.o *.trace bintmp 247 248veryclean : 249 make clean 250 rm -r -f libcm.a src/machcon 251