# This is an alternate makefile that creates and uses a library, gl.a, # consisting of all the non-test object modules in this TOMS submission. # Some systems need to invoke ranlib, others do not. If your # system lacks ranlib, simply comment out the ranlib invocation below. .SUFFIXES: .f .o FFLAGS = -u F77 = f77 L = # DPSRC = double-precision non-test source files # SPSRC = single-precision non-test source files DPSRC = dmdc.f dglfg.f dglfgb.f dgletc.f SPSRC = smdc.f sglfg.f sglfgb.f sgletc.f .f.o: $(F77) -c $(FFLAGS) $*.f both: out sout gl.a: $(DPSRC) $(SPSRC) $(F77) -c $(FFLAGS) $? for i in $?; do o=`basename $$i .f`.o; ar ruv gl.a $$o; rm $$o; done ranlib gl.a out: madsen.out madsenb.out pmain.out mnpex1.out mnpex1b.out \ mnpex2.out mnpex2b.out rent1.out rent1b.out rent2.out rent2b.out sout: smadsen.out smadsenb.out spmain.out smnpex1.out smnpex1b.out \ smnpex2.out mnpex2b.out srent1.out srent1b.out srent2.out srent2b.out dmdc.f: dmdc.f0 true # Obtain dmcd.f from dmdc.f0 by activating the statements false # appropriate to your machine smdc.f: smdc.f0 true # Obtain dmcd.f from smdc.f0 by activating the statements false # appropriate to your machine madsen.out: madsen.f gl.a $(F77) madsen.f gl.a $L a.out >$@ madsenb.out: madsenb.f gl.a $(F77) madsenb.f gl.a $L a.out >$@ pmain: dpmain.o mecdf.o gl.a $(F77) dpmain.o mecdf.o gl.a $L -o $@ pmain.out: pmain pmain.in pmain $@ mlmnp: mlmnp.o mecdf.o mnpsubs.o gl.a $(F77) mlmnp.o mecdf.o mnpsubs.o gl.a $L -o $@ mlmnpb: mlmnpb.o mecdf.o mnpsubs.o gl.a $(F77) mlmnpb.o mecdf.o mnpsubs.o gl.a $L -o $@ mnpex1.out mnpex1b.out: mlmnp mlmnpb mnpex1.fu1 daganzo.fu2 rm -f fort.? ln mnpex1.fu1 fort.1 ln daganzo.fu2 fort.2 mlmnp >mnpex1.out mlmnpb >mnpex1b.out mnpex2.out mnpex2b.out: mlmnp mlmnpb mnpex2.fu1 daganzo.fu2 rm -f fort.? ln mnpex2.fu1 fort.1 ln daganzo.fu2 fort.2 mlmnp >mnpex2.out mlmnpb >mnpex2b.out rent1.out rent1b.out: mlmnp mlmnpb rent1.fu1 rent.fu2 rm -f fort.? ln rent1.fu1 fort.1 ln rent.fu2 fort.2 mlmnp >rent1.out mlmnpb >rent1b.out rent2.out rent2b.out: mlmnp mlmnpb rent2.fu1 rent.fu2 rm -f fort.? ln rent2.fu1 fort.1 ln rent.fu2 fort.2 mlmnp >rent2.out mlmnpb >rent2b.out # single-precision runs... smadsen.out: smadsen.f gl.a $(F77) smadsen.f gl.a $L a.out >$@ smadsenb.out: smadsenb.f gl.a $(F77) smadsenb.f gl.a $L a.out >$@ spmain: spmain.o smecdf.o gl.a $(F77) spmain.o smecdf.o gl.a $L -o $@ spmain.out: spmain pmain.in spmain $@ smlmnp: smlmnp.o smecdf.o smnpsubs.o gl.a $(F77) smlmnp.o smecdf.o smnpsubs.o gl.a $L -o $@ smlmnpb: smlmnpb.o smecdf.o smnpsubs.o gl.a $(F77) smlmnpb.o smecdf.o smnpsubs.o gl.a $L -o $@ smnpex1.out smnpex1b.out: smlmnp smlmnpb mnpex1.fu1 daganzo.fu2 rm -f fort.? ln mnpex1.fu1 fort.1 ln daganzo.fu2 fort.2 smlmnp >smnpex1.out smlmnpb >smnpex1b.out smnpex2.out smnpex2b.out: smlmnp smlmnpb mnpex2.fu1 daganzo.fu2 rm -f fort.? ln mnpex2.fu1 fort.1 ln daganzo.fu2 fort.2 smlmnp >smnpex2.out smlmnpb >smnpex2b.out srent1.out srent1b.out: smlmnp smlmnpb rent1.fu1 rent.fu2 rm -f fort.? ln rent1.fu1 fort.1 ln rent.fu2 fort.2 smlmnp >srent1.out smlmnpb >srent1b.out srent2.out srent2b.out: smlmnp smlmnpb rent2.fu1 rent.fu2 rm -f fort.? ln rent2.fu1 fort.1 ln rent.fu2 fort.2 smlmnp >srent2.out smlmnpb >srent2b.out clean: rm -f *.out *.o pmain mlmnp mlmnpb spmain smlmnp smlmnpb veryclean: rm -f *.out *.o pmain mlmnp mlmnpb spmain smlmnp smlmnpb gl.a