.SUFFIXES: # # Numerical Recipes makefile for Fortran 90 on VMS # compiles and creates Library objects and modules. # LIBNAME=recipes_C_ANSI # correct this for the release RELEASE:=PACKAGES_2004_0621_D CESR_UTIL:=[cesr_libs.CESR_2004_0621_D.UTIL] #------------------------------------------------ # Set up some standard definitions #------------------------------------------------ FC := f90 CC := cc CPP := cc/preprocess_only/comments=as_is 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) #-------------------------------------------------- # 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] LIBRARY:=[cesr_libs.$(strip $(RELEASE)).LIB]librecipes_c_ansi.OLB #MOD_DIR:=[cesr_libs.$(strip $(RELEASE)).MODULES] NRDAT:=[cesr_libs.$(strip $(RELEASE)).$(LIBNAME).demo.data] NRINCLUDE:=[cesr_libs.$(strip $(RELEASE)).$(LIBNAME).INCLUDE] #---------------------------------------------------- # Set up some standard compilation and linking flags #---------------------------------------------------- #CFLAGS+=/PRECISION=DOUBLE ifeq ($(DEBUG),n) CFLAGS:=/STANDARD=ANSI89 LIBRARY:=[cesr_libs.$(strip $(RELEASE)).LIB]$(LIBNAME).OLB else CFLAGS:=/DEBUG/NOOPTIMIZE/STANDARD=ANSI89 LIBRARY:=[cesr_libs.$(strip $(RELEASE)).LIB]$(LIBNAME)_G.OLB endif OFLAGS= LIST_INCS= # List of all library objects LIBOB LIBOB= addint.obj airy.obj amebsa.obj amoeba.obj amotry.obj amotsa.obj anneal.obj \ anorm2.obj arcmak.obj arcode.obj arcsum.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 bksub.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 complex.obj cntab1.obj \ cntab2.obj convlv.obj copy.obj correl.obj cosft1.obj cosft2.obj covsrt.obj \ crank.obj cyclic.obj daub4.obj dawson.obj dbrent.obj ddpoly.obj decchk.obj \ df1dim.obj dfour1.obj dfpmin.obj dfridr.obj dftcor.obj dftint.obj difeq.obj \ dlinmin.obj dpythag.obj drealft.obj dsprsax.obj dsprstx.obj dsvbksb.obj \ dsvdcmp.obj eclass.obj eclazz.obj ei.obj eigsrt.obj elle.obj ellf.obj ellpi.obj \ elmhes.obj erfcc.obj erff.obj erffc.obj eulsum.obj evlmem.obj expdev.obj \ expint.obj f1dim.obj factln.obj factrl.obj fasper.obj fdjac.obj fgauss.obj \ fill0.obj fit.obj fitexy.obj fixrts.obj fleg.obj flmoon.obj fmin.obj four1.obj \ fourew.obj fourfs.obj fourn.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 hpsel.obj hpsort.obj hqr.obj hufapp.obj hufdec.obj \ hufenc.obj hufmak.obj hunt.obj hypdrv.obj hypgeo.obj hypser.obj icrc.obj \ icrc1.obj igray.obj iindexx.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 matadd.obj \ matsub.obj medfit.obj memcof.obj metrop.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 mrqcof.obj mrqmin.obj newt.obj nrutil.obj odeint.obj orthog.obj \ pade.obj pccheb.obj pcshft.obj pearsn.obj period.obj piksr2.obj piksrt.obj \ pinvs.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 qgaus.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 ran0.obj ran1.obj ran2.obj ran3.obj ran4.obj rank.obj ranpt.obj \ ratint.obj ratlsq.obj ratval.obj rc.obj rd.obj realft.obj rebin.obj red.obj \ relax.obj relax2.obj resid.obj revcst.obj reverse.obj rf.obj rj.obj rk4.obj \ rkck.obj rkdumb.obj rkqs.obj rlft3.obj rofunc.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 selip.obj shell.obj shoot.obj shootf.obj \ simp1.obj simp2.obj simp3.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 spctrm.obj spear.obj sphbes.obj splie2.obj splin2.obj spline.obj \ splint.obj spread.obj sprsax.obj sprsin.obj sprspm.obj sprstm.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 \ trncst.obj trnspt.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 #-------------------------------------------------- # set up actions #-------------------------------------------------- all: mklib prepare objects .PHONY: all objects prepare mklib clean include $(NRROOT)RECIPES_C_ANSI.DEPEND mklib: \@$(CESR_UTIL)makelib $(LIBRARY) prepare: mklib backup/replace $(NRINCLUDE)*.h $(NRRECIPES) backup/replace $(NRDAT)*.DAT $(NRRECIPES) objects: prepare $(LIBOB) @$(ECHO) "Object files made " %.obj: %.c $(CC) $(CFLAGS) $(LIST_INCS) $(OFLAG) $< $(AR) $(LIBRARY) $@ clean: $(RM) *.OBJ;* $(RM) *.h;* $(RM) *.DAT;*