# variables for gfortran and Intel MKL
FC=gfortran
MPIFC=mpif90
FCFLAGS=-O2
LIBS_UMF=-L/usr/lib -lumfpack -L$(MKLROOT)/lib/intel64 -lmkl_gf_lp64 -lmkl_core -lmkl_sequential -lpthread -lm # MKL sequential BLAS
LIBS_PAR3=-L$(MKLROOT)/lib/intel64 -lmkl_gf_lp64 -lmkl_core -lmkl_sequential -lpthread -lm
LIBS_PAR5=-L. -lpardiso500-GNU461-X86-64 -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -lgomp -lgfortran -L$(MKLROOT)/lib/intel64 -lmkl_gf_lp64 -lmkl_core -lmkl_sequential
LIBS_HYP=-lHYPRE_IJ_mv -lHYPRE_parcsr_ls

all: la2-par3 la2-par5

la2-umf: umfpack.f90 la2-umf.f90
	$(FC) -o $@ $(FCFLAGS) $^ $(LIBS_UMF)
la2-par3: pardiso3.f90 la2-par3.f90
	$(FC) -o $@ $(FCFLAGS) $^ $(LIBS_PAR3)
la2-par5: pardiso5.f90 la2-par5.f90
	$(FC) -o $@ $(FCFLAGS) $^ $(LIBS_PAR5)
la2-hypre: hypre.f90 la2-hypre.f90
	$(MPIFC) -o $@ $(FCFLAGS) $^ $(LIBS_HYP)

.PHONY: clean
clean:
	-rm -f *.o *.obj *.mod *.dwf *.pdb
	-rm -f la2-umf la2-par3 la2-par5 la2-hypre la2-*.exe
