#.SUFFIXES: #.SUFFIXES: .reslt .res .out .o .f90 .for .f # # Numerical Recipes makefile for Fortran 90 on VMS # compiles Library objects and modules. # LIBNAME:=recipes_f_90 # correct this for the release RELEASE:=PACKAGES_2004_0621_D CESR_UTIL:=[cesr_libs.current.UTIL] # Edit this to be correct on your system NRROOT:=[cesr_libs.$(strip $(RELEASE)).$(LIBNAME)] NRRECIPES:=[cesr_libs.$(strip $(RELEASE)).$(LIBNAME).recipes] NRDEMO_SRC:=[cesr_libs.$(strip $(RELEASE)).$(LIBNAME).demo.src] NRRESPDIR:=[cesr_libs.$(strip $(RELEASE)).$(LIBNAME).demo.responses] MOD_DIR:=[cesr_libs.$(strip $(RELEASE)).MODULES] NRDAT:=[cesr_libs.$(strip $(RELEASE)).$(LIBNAME).demo.data] #------------------------------------------------ # Set up some standard definitions #------------------------------------------------ FC := f90 CC := cc DEBUG = n MAKE := gmake CP := BACKUP/REPLACE RM := delete MV := rename CD := set def CAT := type ECHO := write sys$$output SETPRO := set protection=(o:rwed) MKDIR := create/dir AR := library/replace COMMA:= , SPACE:=$(EMPTY) $(EMPTY) ifeq ($(DEBUG),n) LIBRARY:=[cesr_libs.$(strip $(RELEASE)).LIB]$(LIBNAME).OLB MOD_DIR:=[cesr_libs.$(strip $(RELEASE)).MODULES] FFLAGS += else LIBRARY:=[cesr_libs.$(strip $(RELEASE)).LIB]$(LIBNAME)_G.OLB MOD_DIR:=[cesr_libs.$(strip $(RELEASE)).MODULES_G] FFLAGS +=/DEBUG/NOOPTIMIZE endif #---------------------------------------------------- # Set up some standard compilation and linking flags #---------------------------------------------------- F90FLAGS := /SOURCE_FORM=FREE # List of all library objects LIBOB LIBOB:= airy.obj amebsa.obj amoeba.obj anneal.obj \ arcmak.obj arcode.obj asolve.obj atimes.obj \ avevar.obj balanc.obj banbks.obj bandec.obj \ banmul.obj bcucof.obj bcuint.obj beschb.obj \ bessi.obj bessi0.obj bessi1.obj bessik.obj \ bessj.obj bessj0.obj bessj1.obj bessjy.obj \ bessk.obj bessk0.obj bessk1.obj bessy.obj \ bessy0.obj bessy1.obj beta.obj betacf.obj \ betai.obj bico.obj bnldev.obj brent.obj \ broydn.obj bsstep.obj caldat.obj chder.obj \ chebev.obj chebft.obj chebpc.obj chint.obj \ chixy.obj choldc.obj cholsl.obj chsone.obj \ chstwo.obj cisi.obj cntab1.obj cntab2.obj \ convlv.obj correl.obj cosft1.obj cosft2.obj \ covsrt.obj cyclic.obj daub4.obj dawson.obj \ dbrent.obj ddpoly.obj decchk.obj dfpmin.obj \ dfridr.obj dftcor.obj dftint.obj difeq.obj \ dlinmin.obj eclass.obj eclazz.obj ei.obj \ eigsrt.obj elle.obj ellf.obj ellpi.obj elmhes.obj \ erf.obj erfc.obj erfcc.obj eulsum.obj \ evlmem.obj expdev.obj expint.obj factln.obj \ factrl.obj fasper.obj fdjac.obj fgauss.obj \ fit.obj fitexy.obj fixrts.obj fleg.obj \ flmoon.obj fmin.obj four1.obj four1_alt.obj \ four1_gather.obj four2.obj four2_alt.obj \ four3.obj four3_alt.obj fourcol.obj \ fourcol_3d.obj fourn_gather.obj fourrow.obj \ fourrow_3d.obj fpoly.obj \ fred2.obj fredin.obj frenel.obj frprmn.obj \ ftest.obj gamdev.obj gammln.obj gammp.obj \ gammq.obj gasdev.obj gaucof.obj gauher.obj \ gaujac.obj gaulag.obj gauleg.obj gaussj.obj \ gcf.obj golden.obj gser.obj hqr.obj hufdec.obj \ hufenc.obj hufmak.obj hunt.obj hypdrv.obj \ hypgeo.obj hypser.obj icrc.obj igray.obj \ index_bypack.obj indexx.obj interp.obj \ irbit1.obj irbit2.obj jacobi.obj jacobn.obj \ julday.obj kendl1.obj kendl2.obj kermom.obj \ ks2d1s.obj ks2d2s.obj ksone.obj kstwo.obj \ laguer.obj lfit.obj linbcg.obj linmin.obj \ lnsrch.obj locate.obj lop.obj lubksb.obj \ ludcmp.obj machar.obj medfit.obj memcof.obj \ mgfas.obj mglin.obj midexp.obj midinf.obj \ midpnt.obj midsql.obj midsqu.obj miser.obj \ mmid.obj mnbrak.obj mnewt.obj moment.obj \ mp2dfr.obj mpdiv.obj mpinv.obj mpmul.obj \ mpops.obj mppi.obj mprove.obj mpsqrt.obj \ mrqmin.obj newt.obj nr.obj nrtype.obj \ nrutil.obj odeint.obj orthog.obj pade.obj \ pccheb.obj pcshft.obj pearsn.obj period.obj \ plgndr.obj poidev.obj polcoe.obj polcof.obj \ poldiv.obj polin2.obj polint.obj powell.obj \ predic.obj probks.obj psdes.obj pwt.obj \ pwtset.obj pythag.obj pzextr.obj qrdcmp.obj \ qromb.obj qromo.obj qroot.obj qrsolv.obj \ qrupdt.obj qsimp.obj qtrap.obj quad3d.obj \ quadct.obj quadmx.obj quadvl.obj ran.obj \ ran0.obj ran1.obj ran2.obj ran3.obj ran_state.obj \ rank.obj ratint.obj ratlsq.obj ratval.obj rc.obj \ rd.obj realft.obj recur1.obj recur2.obj \ relax.obj relax2.obj resid.obj rf.obj rj.obj \ rk4.obj rkck.obj rkdumb.obj rkqs.obj rlft2.obj \ rlft3.obj rotate.obj rsolv.obj rstrct.obj \ rtbis.obj rtflsp.obj rtnewt.obj rtsafe.obj \ rtsec.obj rzextr.obj savgol.obj scrsho.obj \ select.obj select_bypack.obj \ select_heap.obj select_inplace.obj simplx.obj \ simpr.obj sinft.obj slvsm2.obj \ slvsml.obj sncndn.obj snrm.obj sobseq.obj \ solvde.obj sor.obj sort.obj sort2.obj sort3.obj \ sort_bypack.obj sort_byreshape.obj \ sort_heap.obj sort_pick.obj sort_radix.obj \ sort_shell.obj spctrm.obj spear.obj sphbes.obj \ splie2.obj splin2.obj \ spline.obj splint.obj sprsax.obj sprsdiag.obj \ sprsin.obj sprstp.obj sprstx.obj \ stifbs.obj stiff.obj stoerm.obj svbksb.obj svdcmp.obj \ svdfit.obj svdvar.obj toeplz.obj \ tptest.obj tqli.obj trapzd.obj tred2.obj tridag.obj \ ttest.obj tutest.obj twofft.obj \ vander.obj vegas.obj voltra.obj wt1.obj wtn.obj \ wwghts.obj zbrac.obj zbrak.obj zbrent.obj \ zrhqr.obj zriddr.obj zroots.obj LIBLIBOB:= $(patsubst %.obj, $(LIBRARY)(%.obj),$(LIBOB)) #-------------------------------------------------- # set up actions #-------------------------------------------------- all: mklib prepare objects cpmod lib .PHONY: all objects prepare mklib clean cpmod lib include $(NRROOT)RECIPES_F_90.DEPEND mklib: \@$(CESR_UTIL)makelib $(LIBRARY) prepare: mklib $(CP) $(NRDEMO_SRC)x*.* $(NRRECIPES) $(CP) $(NRDAT)*.DAT $(NRRECIPES) objects: prepare $(LIBOB) badluk.obj fredex.obj shoot.obj sphoot.obj @$(ECHO) "Object files made " lib: $(LIBLIBOB) objects @$(ECHO) "LIBRARY replaced" cpmod: objects lib $(CP) *.*MOD $(MOD_DIR) $(RM) x*.f90;* $(RM) *.DAT;* %.obj: %.f90 $(FC) $(FFLAGS) $(F90FLAGS) $(LIST_INCS) $(OFLAG) $< (%.obj): %.obj $(AR) $(LIBRARY) $% clean: $(RM) *.OBJ;* $(RM) *.*MOD;*