GPPflags =   -ansi -lg2c -I/usr/statlocal/vni/CTT3.0/include -L/usr/statlocal/vni/CTT3.0/lib/lib.linux -limslcmath -limslcstat -lm -Xlinker -rpath -Xlinker /usr/statlocal/vni/CTT3.0/lib/lib.linux -lpthread $(EFENCE_FLAG)
#-I/usr/statlocal/include/lapack++ -L/usr/statlocal/lib -lm -lblas -llapack -lg2c -llapack++ -llamatrix++ -lblas++ 
GPPnl = g++ -c  -Wall -ansi -I/usr/statlocal/vni/CTT3.0/include
GPPnlnoansi = g++ -c  -Wall -I/usr/statlocal/vni/CTT3.0/include # for use with corr.C since -ansi doesn't like lgamma math.h function
#-I/usr/statlocal/include/lapack++  # compile w/o linking
F77 = g77 -c -ffree-form  # for Fortran code
F77noff = g77 -c # for rkbesld.f, which doesn't like the free-form arg
EFENCE_FLAG = # -L/TOIL-U2/paciorek/lib/efence -lefence
DEBUG_FLAG =  -O2  # -O3 -g
        #-fbounds-checking
BASE_FILES = mat_pp.h base.h copy.h

### rkbesl and bessik stuff needs to finalized

mod : $(BASE_FILES) spatmod.o projection.o corr.o generic_functions.o dataset.o parm.o cov_mat.o permtools.o chain.o gasdev.o rkbesld.o bessikD.o chebevD.o beschbD.o genqmd.o gsfct.o smbfct.o locations.o ran1.o transform.o density.o # qchisq.o ipmpar.o dcdflib.o 
	g++  -omod  spatmod.o projection.o corr.o generic_functions.o dataset.o parm.o cov_mat.o permtools.o chain.o gasdev.o rkbesld.o bessikD.o chebevD.o beschbD.o genqmd.o gsfct.o smbfct.o locations.o ran1.o transform.o density.o $(GPPflags) -L$(HOME)/lib/Proj/lib -lproj $(DEBUG_FLAG)
# qchisq.o ipmpar.o dcdflib.o

spatmod.o : $(BASE_FILES) spatmod.C  ran1.h locations.h chain.h 
	$(GPPnl) spatmod.C $(DEBUG_FLAG)
# contains main

projection.o : projection.C projection.h generic_functions.h projects.h
	$(GPPnl) projection.C $(DEBUG_FLAG) 
# geographic calculations
# projects.h has the header code for the projection library code

dataset.o : $(BASE_FILES) dataset.C dataset.h locations.h permtools.h cov_mat.h generic_functions.h
	$(GPPnl)  dataset.C $(DEBUG_FLAG)
# likelihood stuff

rkbesld.o: rkbesld.f
	$(F77noff) rkbesld.f $(DEBUG_FLAG)

bessikD.o: $(BASE_FILES) bessikD.C 
	$(GPPnl) bessikD.C $(DEBUG_FLAG)

chebevD.o: $(BASE_FILES) chebevD.C
	$(GPPnl) chebevD.C $(DEBUG_FLAG)

besschbD.o: beschbD.C 
	$(GPPnl) beschbD.C $(DEBUG_FLAG)

genqmd.o: genqmd.f
	$(F77) genqmd.f $(DEBUG_FLAG)
# re-ordering of rows and columns of cov matrix to optimize sparseness

gsfct.o: gsfct.double.f  #.real
	$(F77) gsfct.double.f -ogsfct.o $(DEBUG_FLAG)
# numeric factorization; for now use the real version

smbfct.o: smbfct.f
	$(F77) smbfct.f $(DEBUG_FLAG)
# symbolic factorization - setting up of sparse matrix structure

locations.o: $(BASE_FILES) locations.C locations.h projection.h permtools.h
	$(GPPnl) locations.C $(DEBUG_FLAG)
# sets upf basic location stuff - distances, re-ordering, etc.

generic_functions.o : $(BASE_FILES) generic_functions.C generic_functions.h 
	$(GPPnl) generic_functions.C $(DEBUG_FLAG)
# basic generic math and conversion functions

permtools.o: $(BASE_FILES) permtools.C permtools.h 
	$(GPPnl) permtools.C $(DEBUG_FLAG)
# permutation stuff

gasdev.o: $(BASE_FILES) gasdev.C gasdev.h  ran1.h
	$(GPPnl) gasdev.C $(DEBUG_FLAG)
# rnorm(0,1)

ran1.o: $(BASE_FILES) ran1.C ran1.h
	$(GPPnl) ran1.C $(DEBUG_FLAG)
# runif(0,1) via Num Rec in C algorithm

transform.o: $(BASE_FILES) transform.C transform.h 
	$(GPPnl) transform.C $(DEBUG_FLAG)
# code for various transformations

density.o: $(BASE_FILES) density.C density.h 
	$(GPPnl) density.C $(DEBUG_FLAG)
# calculates various prob density functions

chain.o: $(BASE_FILES) chain.C chain.h parm.h dataset.h transform.h  generic_functions.h locations.h permtools.h density.h cov_mat.h ran1.h
	$(GPPnl) chain.C $(DEBUG_FLAG)
# initializes and steps through chain, reports results

cov_mat.o: $(BASE_FILES) cov_mat.C cov_mat.h locations.h corr.h permtools.h
	$(GPPnl) cov_mat.C $(DEBUG_FLAG)
# covariance matrix calculations

corr.o:	$(BASE_FILES) corr.C corr.h
	$(GPPnlnoansi) corr.C $(DEBUG_FLAG)

parm.o: $(BASE_FILES) parm.C parm.h cov_mat.h density.h ran1.h dataset.h gasdev.h transform.h locations.h
	$(GPPnl) parm.C $(DEBUG_FLAG)
# parameter code and MCMC proposals and updating

# mat_pp.o : $(BASE_FILES) mat_pp.C mat_pp.h
#	$(GPPnl) mat_pp.C
# all code currently in mat_pp.h due to template/header issues

clean :
	rm mod spatmod.o projection.o corr.o generic_functions.o dataset.o parm.o cov_mat.o permtools.o chain.o gasdev.o rkbesld.o genqmd.o gsfct.o smbfct.o locations.o ran1.o transform.o density.o #qchisq.o ipmpar.o dcdflib.o







