.mod=.mod
.fh=.fh
.SUFFIXES: .f90 $(.mod)


#######################  Section 1 #######################
#  Define your compilers and compiler flags here         #
##########################################################
F90=/opt/intel/compiler70/ia32/bin/ifc
FC=/opt/intel/compiler70/ia32/bin/ifc
F77=$(FC)
F90COPT=-O3
FCOPT=-O3 
CC=gcc
CCOPT=-O3

#######################  Section 2 #######################
#  Define your linker and linker flags here              #
##########################################################
F90LINK=/usr/local/mpich-ifc71/bin/mpif90 
FLINK=/usr/local/mpich-ifc71/bin/mpif77 
MPF90=/usr/local/mpich-ifc71/bin/mpif90 
MPF77=/usr/local/mpich-ifc71/bin/mpif77 	
MPCC=/usr/local/mpich-ifc71/bin/mpicc 

#######################  Section 3 #######################
#  Specify paths to libraries                            #
##########################################################
BLAS=-lblasintel -L$(HOME)/LIB
BLACS=-lmpiblacsifc71 -L$(HOME)/LIB
EXTRA_BLACS_ENV_OBJS=extra_env.o


#######################  Section 4 #######################
#  Other useful tools&defines                            #
##########################################################
SLUDIR=/usr/local/SuperLU_3.0
SLU=-lslu_lx_ifc8 -L$(SLUDIR)
SLUDEF=-DHave_SLU_ -I$(SLUDIR)

UMFDIR=$(HOME)/LIB/Umfpack_gcc41
UMF=-lumfpack -lamd -L$(UMFDIR)
UMFDEF=-DHave_UMF_ -I$(UMFDIR)

CDEFINES=-DAdd_ $(SLUDEF) $(UMFDEF)

AR=ar -cur
RANLIB=ranlib



#######################  Section 5 #######################
#  Do not edit this                                      #
##########################################################
LIBDIR = lib
LIBNAME = libpsblas.a
TYPEMODS =  PSB_SPMAT_TYPE$(.mod) PSB_DESCRIPTOR_TYPE$(.mod) PSB_PREC_TYPE$(.mod) PSB_REALLOC_MOD$(.mod)
CONSTMODS = PSB_CONST_MOD$(.mod)
BLASMODS  = $(TYPEMODS) PSB_PSBLAS_MOD$(.mod) PSB_COMM_MOD$(.mod)
METHDMODS = PSB_METHD_MOD$(.mod)
TOOLSMODS = $(CONSTMODS) PSI_MOD$(.mod) PSB_TOOLS_MOD$(.mod) PSB_SERIAL_MOD$(.mod)
PRECMODS  = PSB_PREC_MOD$(.mod)
ERRORMODS = PSB_ERROR_MOD$(.mod)
F90MODS= $(BLASMODS) $(PRECMODS) $(METHDMODS) $(TOOLSMODS) $(ERRORMODS) STRING$(.mod)

MODS=$(LIBDIR)/PSB_CONST_MOD$(.mod) $(LIBDIR)/PSB_SPMAT_TYPE$(.mod) $(LIBDIR)/PSB_REALLOC_MOD$(.mod) \
  $(LIBDIR)/PSB_DESCRIPTOR_TYPE$(.mod)  $(LIBDIR)/PSB_PREC_TYPE$(.mod) $(LIBDIR)/parts.fh \
  $(LIBDIR)/PSB_SERIAL_MOD$(.mod) $(LIBDIR)/PSB_COMM_MOD$(.mod) $(LIBDIR)/PSB_ERROR_MOD$(.mod)

# Under Linux/gmake there is a rule interpreting .mod as Modula source! 
$(.mod).o:
	
.f.o:
	$(FC) $(FCOPT) $(INCDIRS)  -c $<
.c.o:
	$(CC) $(CCOPT) $(INCDIRS) $(CDEFINES) -c $<
.f$(.mod):
	$(F90) $(FCOPT) $(INCDIRS) -c $<
.f90$(.mod):
	$(F90) $(F90COPT) $(INCDIRS) -c $<
.f90.o:
	$(F90) $(F90COPT) $(INCDIRS) -c $<