########################################################################
#
#	     ====================================================
#	     Make descriptor file for NLSPR and related programs
#	     ====================================================
#
#  VERSION FOR RUNNING XLF FORTRAN UNDER AIX
#
########################################################################
#

.SUFFIXES:
.SUFFIXES: .f .inc .o .c 
.PRECIOUS: .f .inc .h .c

F77 = xlf
FFLAGS = -c -O -g
RCFLAG = -C -qextchk -qfips -qflttrap -qspnans 
FLOAD = xlf -o
LOADFLG = -bmaxdata:0x80000000
LIB = -lessl

CC = cc
CFLAGS = -c

#	
#-----------------------------------------------------------------------
#			Definitions
#-----------------------------------------------------------------------
#
LETI = nlsdim.inc eprprm.inc expdat.inc parcom.inc lpnam.inc
NLSI = nlsdim.inc eprprm.inc expdat.inc lmcom.inc stdio.inc parcom.inc
FUNI = nlsdim.inc eprprm.inc expdat.inc parcom.inc 
MATI = nlsdim.inc eprprm.inc indexf.inc eprmat.inc stvcom.inc
CMDI = $(NLSI) lmcom.inc parcom.inc lpnam.inc
DATI = nlsdim.inc expdat.inc nlsnam.inc stdio.inc parcom.inc 
ESA  = evesa.o matrxo.o matrxd.o csqz.o cqrt.o indexx.o eprio.o
EPO1 = sim2d.o cd2km.o anxlk.o w3j.o ipar.o fbasis.o
EPO2 = stveco.o stvecd.o ccrints.o fz.o bessel.o plgndr.o
EPO3 = spcalc.o convft.o fft.o switch.o
NLSC = cmds.o datac.o letc.o addprm.o rmvprm.o srchc.o tensym.o convtc.o
NLSS = strutl.o pprmpt.o catch.o helpc.o ipfind.o
NLSD = setnm.o getdat.o wrfit.o
NLSH = xshft.o sscale.o mnbrak.o brent.o p1pfun.o
NLSF = fitp.o pfun.o pcheck.o $(NLSH) $(EPO1) $(EPO2) $(EPO3) $(ESA)
NLSB = lmnls.o enorm.o dpmpar.o qrfac.o lmpar.o qrsolv.o covar.o
NLSO = nlspr.o $(NLSC) $(NLSS) $(NLSD) $(NLSF) $(NLSB) ordrpr.o

#-----------------------------------------------------------------------
#		Object files
#-----------------------------------------------------------------------

addprm.o	: addprm.f $(CMDI)
anxlk.o		: anxlk.f nlsdim.inc eprprm.inc rndoff.inc
bessel.o	: bessel.f rndoff.inc pidef.inc
brent.o		: brent.f nlsdim.inc stdio.inc parcom.inc
cmds.o		: cmds.f $(CMDI) prmeqv.inc indexf.inc iterat.inc nlsnam.inc
cd2km.o		: cd2km.f rndoff.inc pidef.inc
convft.o	: convft.f nlsdim.inc eprprm.inc wkspcm.inc physcn.inc
convtc.o	: convtc.f nlsdim.inc eprprm.inc parcom.inc stdio.inc lpnam.inc
cqrt.o		: cqrt.f
csqz.o		: csqz.f
datac.o		: datac.f $(DATI) lmcom.inc wkspcm.inc
evesa.o		: evesa.f $(MATI) stdio.inc parcom.inc rndoff.inc wkspcm.inc
fbasis.o	: fbasis.f nlsdim.inc eprprm.inc indexf.inc stdio.inc
fitp.o  	: fitp.f $(NLSI) nlsnam.inc tdspec.inc lmtxt.inc iterat.inc
fz.o		: fz.f nlsdim.inc eprprm.inc
getdat.o	: getdat.f nlsdim.inc stdio.inc
helpc.o		: helpc.f stdio.inc
ipfind.o	: ipfind.f nlsdim.inc eprprm.inc parcom.inc lpnam.inc
letc.o		: $(LETI) stdio.inc
lmnls.o		: lmnls.f nlsdim.inc parcom.inc iterat.inc
matrxo.o	: matrxo.f $(MATI) maxl.inc rndoff.inc physcn.inc
matrxd.o	: matrxd.f $(MATI) maxl.inc rndoff.inc physcn.inc
mnbrak.o	: mnbrak.f nlsdim.inc parcom.inc
nlspr.o		: nlspr.f $(NLSI) prmeqv.inc nlsnam.inc iterat.inc
ordrpr.o	: ordrpr.f rndoff.inc
p1pfun.o	: p1pfun.f nlsdim.inc parcom.inc expdat.inc lmcom.inc
pcheck.o	: pcheck.f $(NLSI) nlsnam.inc maxl.inc rndoff.inc
pfun.o		: pfun.f $(FUNI) tdspec.inc wkspcm.inc stdio.inc iterat.inc
rmvprm.o	: rmvprm.f nlsdim.inc parcom.inc eprprm.inc stdio.inc
scmvm.o 	: scmvm.f nlsdim.inc rndoff.inc eprmat.inc eprprm.inc
scspec.o	: scspec.f stdio.inc
setnm.o		: setnm.f nlsdim.inc nlsnam.inc
sim2d.o		: sim2d.f $(MATI) prmeqv.inc parcom.inc egvcom.inc stdio.inc 
spcalc.o	: spcalc.f nlsdim.inc eprprm.inc stvcom.inc wkspcm.inc physcn.inc
srchc.o		: srchc.f nlsdim.inc eprprm.inc parcom.inc lpnam.inc stdio.inc
sscale.o	: sscale.f nlsdim.inc expdat.inc
strutl.o	: strutl.f stdio.inc
stveco.o 	: stveco.f nlsdim.inc eprprm.inc indexf.inc stvcom.inc rndoff.inc
stvecd.o 	: stvecd.f nlsdim.inc eprprm.inc indexf.inc stvcom.inc wkspcm.inc
tensym.o	: tensym.f nlsdim.inc eprprm.inc parcom.inc lpnam.inc stdio.inc
tstjac.o	: tstjac.f stdio.inc
w3j.o		: w3j.f maxl.inc
whris.o		: whris.f
wrfit.o		: wrfit.f stdio.inc
xshft.o		: xshft.f

#-----------------------------------------------------------------------
#		Executable files
#-----------------------------------------------------------------------

nlspr	: $(NLSO)
	 $(F77) $(LOADFLG) -o $@ $(NLSO) $(LIB) -bnso -bI:/lib/syscalls.exp -bI:/usr/local/essl/lib -bI:/usr/lib
tstjac	: tstjac.o enorm.o wrfit.o
	$(F77) $(LOADFLG) -o $@ tstjac.o enorm.o wrfit.o
scspec	: scspec.o
	$(FLOAD) $@ scspec.o

#-----------------------------------------------------------------------
#			Default actions
#-----------------------------------------------------------------------

.c.o   :
	cc $(CFLAGS) $*.c

.f.o   :
	$(F77) $(LOADFLG) $(FFLAGS) $*.f

.inc.o :
	$(F77) $(FFLAGS) $*.f
