# This is the Makefile for the FORTRAN version of Martin Tingley's 
# BARCAST code

FORTRAN=gfortran
FFLAGS=-fpic -O0 -pipe -g -Wall -W -Wshadow  -Wcast-align -Wmissing-noreturn
# FFLAGS=-fpic -O3 -pipe -g
LOCALLIBDIR=../local_libs

libziggurat: ziggurat.f90
	$(FORTRAN) $(FFLAGS) -c ziggurat.f90 -o ziggurat.o
	ar r libziggurat.a ziggurat.o

librandom: libziggurat random.f90
	$(FORTRAN) $(FFLAGS) -c random.f90 -o random.o
	ar r librandom.a random.o

libskit: blassm.f  formats.f  matvec.f
	$(FORTRAN) $(FFLAGS) -c blassm.f -o blassm.o
	$(FORTRAN) $(FFLAGS) -c formats.f -o formats.o
	$(FORTRAN) $(FFLAGS) -c matvec.f -o matvec.o
	ar r libskitlocal.a blassm.o formats.o matvec.o

T_Updater.o: T_Updater.f95 
	# libziggurat librandom libskit
	$(FORTRAN) $(FFLAGS) -J$(LOCALLIBDIR) -c T_Updater.f95

Proxy_Updater.o: Proxy_Updater.f95 
	# libziggurat librandom libskit
	$(FORTRAN) $(FFLAGS) -J$(LOCALLIBDIR) -c Proxy_Updater.f95

T_Updater.so: T_Updater.o Proxy_Updater.o
	$(FORTRAN) $(FFLAGS) -shared -fbounds-check -o T_Updater.so T_Updater.o Proxy_Updater.o -L/usr/lib -lblas -llapack -lpthread -L$(LOCALLIBDIR) -lziggurat -lrandom -lskitlocal -L/usr/lib/R/lib -lR

clean:
	rm T_Updater.o T_Updater.so Proxy_Updater.o

.PHONY: clean
