#########################################################################
#                                                                       #
#                      Makefile for RRGIBBS                             #
#                                                                       #
#########################################################################

#--------------------- customize as necessary ---------------------------------

# my home directory ...
MYDIR = /mounts/home/kmeyer/xlash

# directory where executable file "rrgibbs" is to be placed
BINDIR = $(MYDIR)/bin

# directory where library file "libkm.a" is held
LIBDIR = $(BINDIR)

# directory for source code
RRGDIR=$(MYDIR)/GibbsRR
# directory where .mod files for randlib90 are held
MODDIR=$(RRGDIR)/randlib90/SOURCE

# FORTRAN compiler
FC=f95

# Compiler options
FFLAGS= -v -arch host -tune host  -fast  -non_shared -fpe1 -L$(LIBDIR) -I$(MODDIR)
#FFLAGS= -v -arch host -tune host -fast -fpe1 -L$(LIBDIR) -I$(MODDIR)
#FFLAGS= -g -C  -v -L$(LIBDIR)  -I$(MODDIR)
#--------------------- end of customisable section------------------------------

# Object files

OBJECTS=rrgibbs.o \
pedlst.o \
ages.o \
phimatrix.o \
kmatrix.o \
hyper.o \
ainverse.o \
gibbsvar.o \
gibbsblk.o \
gibbsmeans.o \
adjust.o \
buildmme.o \
solvemme.o \
maxzhz.o \
blocklimits.o \
model.o \
random.o \
readparfile.o \
recode.o \
residuals.o \
rrsummary.o \
samplerr.o \
varages.o \
auxsubrou.o \
kmlib.o \
writesol.o \
modules.o 

# Build program
all:  modules rrgibbs

modules:
	$(FC) $(FFLAGS) -o modules.o -c modules.f

rrgibbs: $(OBJECTS)
	$(FC) $(FFLAGS) $(OBJECTS) -o $(BINDIR)/rrgibbs  -lrand90

# Dependencies 
modules.o     : modules.f
rrgibbs.o     : modules.o
pedlst.o      : modules.o
ages.o        : modules.o
phimatrix.o   : modules.o
kmatrix.o     : modules.o
hyper.o       : modules.o
ainverse.o    : modules.o
gibbsvar.o    : modules.o
gibbsblk.o    : modules.o
gibbsmeans.o  : modules.o
adjust.o      : modules.o
buildmme.o    : modules.o
solvemme.o    : modules.o
maxzhz.o      : modules.o
blocklimits.o : modules.o
model.o       : modules.o
readparfile.o : modules.o
recode.o      : modules.o
residuals.o   : modules.o
samplerr.o    : modules.o
writesol.o    : modules.o
