#
#  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#  SLEPc - Scalable Library for Eigenvalue Problem Computations
#  Copyright (c) 2002-2020, Universitat Politecnica de Valencia, Spain
#
#  This file is part of SLEPc.
#  SLEPc is distributed under a 2-clause BSD license (see LICENSE).
#  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#

include ${PETSC_DIR}/lib/petsc/conf/variables

# Variables specific to SLEPc that can be employed in user makefiles
SLEPC_LIB_DIR	    = /usr/lib/slepcdir/slepc3.14/arm-linux-gnueabihf-complex/lib
SLEPCCONF_H  	    = /usr/lib/slepcdir/slepc3.14/arm-linux-gnueabihf-complex/include/slepcconf.h

SLEPC_INCLUDE       = -I/usr/lib/slepcdir/slepc3.14/arm-linux-gnueabihf-complex/include -I/usr/lib/slepcdir/slepc3.14/arm-linux-gnueabihf-complex/include
SLEPC_CEXT_INCLUDES = ${BLOPEX_INCLUDE} ${ELPA_INCLUDE} ${HPDDM_INCLUDE} ${PRIMME_INCLUDE}
SLEPC_CC_INCLUDES   = ${SLEPC_INCLUDE} ${SLEPC_CEXT_INCLUDES} ${PETSC_CC_INCLUDES}
SLEPC_FC_INCLUDES   = ${SLEPC_INCLUDE} ${PETSC_FC_INCLUDES}

SLEPC_CCPPFLAGS	    = ${SLEPC_INCLUDE} ${SLEPC_CEXT_INCLUDES} ${PETSC_CCPPFLAGS}
SLEPC_CXXCPPFLAGS   = ${SLEPC_INCLUDE} ${SLEPC_CEXT_INCLUDES} ${PETSC_CXXCPPFLAGS}
SLEPC_FCPPFLAGS	    = ${SLEPC_INCLUDE} ${PETSC_FCPPFLAGS}
SLEPC_C_SH_LIB_PATH = ${CC_LINKER_SLFLAG}${SLEPC_LIB_DIR}
SLEPC_F_SH_LIB_PATH = ${FC_LINKER_SLFLAG}${SLEPC_LIB_DIR}

# Redefine variables in PETSc makefiles
INSTALL_LIB_DIR	= ${SLEPC_LIB_DIR}
CCPPFLAGS	= ${SLEPC_CCPPFLAGS}
CXXCPPFLAGS	= ${SLEPC_CXXCPPFLAGS}
FCPPFLAGS	= ${SLEPC_FCPPFLAGS}

# Variables for the different SLEPc modules
SLEPC_SYS_LIB_BASIC = -lslepcsys$(SLEPC_LIB_EXT)
SLEPC_MFN_LIB_BASIC = -lslepcmfn$(SLEPC_LIB_EXT) ${SLEPC_SYS_LIB_BASIC}
SLEPC_LME_LIB_BASIC = -lslepclme$(SLEPC_LIB_EXT) ${SLEPC_SYS_LIB_BASIC}
SLEPC_EPS_LIB_BASIC = -lslepceps$(SLEPC_LIB_EXT) ${SLEPC_SYS_LIB_BASIC}
SLEPC_SVD_LIB_BASIC = -lslepcsvd$(SLEPC_LIB_EXT) ${SLEPC_EPS_LIB_BASIC}
SLEPC_PEP_LIB_BASIC = -lslepcpep$(SLEPC_LIB_EXT) ${SLEPC_EPS_LIB_BASIC}
SLEPC_NEP_LIB_BASIC = -lslepcnep$(SLEPC_LIB_EXT) ${SLEPC_PEP_LIB_BASIC}
SLEPC_LIB_BASIC     = -lslepcnep$(SLEPC_LIB_EXT) -lslepcpep$(SLEPC_LIB_EXT)$(SLEPC_LIB_EXT) -lslepcsvd$(SLEPC_LIB_EXT) -lslepceps$(SLEPC_LIB_EXT) -lslepcmfn$(SLEPC_LIB_EXT) -lslepclme$(SLEPC_LIB_EXT) -lslepcsys$(SLEPC_LIB_EXT)

SLEPC_SYS_LIB   = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_SYS_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}
SLEPC_MFN_LIB   = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_MFN_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}
SLEPC_LME_LIB   = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_LME_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}
SLEPC_EPS_LIB   = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_EPS_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}
SLEPC_SVD_LIB   = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_SVD_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}
SLEPC_PEP_LIB   = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_PEP_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}
SLEPC_NEP_LIB   = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_NEP_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}
SLEPC_LIB       = ${SLEPC_C_SH_LIB_PATH} -L${SLEPC_LIB_DIR} ${SLEPC_LIB_BASIC} ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}

SLEPC_EXTERNAL_LIB = ${ARPACK_LIB} ${BLOPEX_LIB} ${BLZPACK_LIB} ${ELPA_LIB} ${HPDDM_LIB} ${PRIMME_LIB} ${SLICOT_LIB} ${TRLAN_LIB}

# Redefine variable used to build shared libraries
SHLIBS = libslepcsys$(SLEPC_LIB_EXT) libslepcmfn$(SLEPC_LIB_EXT) libslepclme$(SLEPC_LIB_EXT) libslepceps$(SLEPC_LIB_EXT) libslepcsvd$(SLEPC_LIB_EXT) libslepcpep$(SLEPC_LIB_EXT) libslepcnep$(SLEPC_LIB_EXT)

# Include definitions customized by configuration
include /usr/lib/slepcdir/slepc3.14/arm-linux-gnueabihf-complex/lib/slepc/conf/slepcvariables

