1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
Index: slepc/gmakefile
===================================================================
--- slepc.orig/gmakefile 2021-02-12 12:20:32.845175491 +0100
+++ slepc/gmakefile 2021-02-12 12:20:32.845175491 +0100
@@ -25,14 +25,14 @@
absbasename_all = $(basename $(basename $(basename $(basename $(abspath $(1))))))# arch/lib/libpetsc.so.3.8.0 -> /path/to/arch/lib/libpetsc
sl_linker_args = $(call SL_LINKER_FUNCTION,$(call absbasename_all,$@),$(libslepc_abi_version),$(libslepc_lib_version))
-libslepc_shared := $(LIBDIR)/libslepc.$(SL_LINKER_SUFFIX)
-libslepc_soname := $(call soname_function,$(LIBDIR)/libslepc)
-libslepc_libname := $(call libname_function,$(LIBDIR)/libslepc)
-libslepc_static := $(LIBDIR)/libslepc.$(AR_LIB_SUFFIX)
-libslepcpkgs_shared := $(foreach pkg, $(pkgs), $(LIBDIR)/libslepc$(pkg).$(SL_LINKER_SUFFIX))
-libslepcpkgs_soname := $(foreach pkg, $(pkgs), $(call soname_function,$(LIBDIR)/libslepc$(pkg)))
-libslepcpkgs_libname := $(foreach pkg, $(pkgs), $(call libname_function,$(LIBDIR)/libslepc$(pkg)))
-libslepcpkgs_static := $(foreach pkg, $(pkgs), $(LIBDIR)/libslepc$(pkg).$(AR_LIB_SUFFIX))
+libslepc_shared := $(LIBDIR)/libslepc$(SLEPC_LIB_EXT).$(SL_LINKER_SUFFIX)
+libslepc_soname := $(call soname_function,$(LIBDIR)/libslepc$(SLEPC_LIB_EXT))
+libslepc_libname := $(call libname_function,$(LIBDIR)/libslepc$(SLEPC_LIB_EXT))
+libslepc_static := $(LIBDIR)/libslepc$(SLEPC_LIB_EXT).$(AR_LIB_SUFFIX)
+libslepcpkgs_shared := $(foreach pkg, $(pkgs), $(LIBDIR)/libslepc$(pkg)$(SLEPC_LIB_EXT).$(SL_LINKER_SUFFIX))
+libslepcpkgs_soname := $(foreach pkg, $(pkgs), $(call soname_function,$(LIBDIR)/libslepc$(pkg)$(SLEPC_LIB_EXT)))
+libslepcpkgs_libname := $(foreach pkg, $(pkgs), $(call libname_function,$(LIBDIR)/libslepc$(pkg)$(SLEPC_LIB_EXT)))
+libslepcpkgs_static := $(foreach pkg, $(pkgs), $(LIBDIR)/libslepc$(pkg)$(SLEPC_LIB_EXT).$(AR_LIB_SUFFIX))
ifeq ($(PETSC_WITH_EXTERNAL_LIB),)
libslepcall_shared := $(libslepcpkgs_shared)
@@ -150,7 +150,7 @@
$(if $(findstring win32fe lib,$(AR)),$(ARCHIVE_RECIPE_WIN32FE_LIB),$(if $(findstring yes,$(AR_ARGFILE)),$(ARCHIVE_RECIPE_ARGFILE),$(ARCHIVE_RECIPE_DEFAULT)))
# with-single-library=0
-libpkg = $(foreach pkg, $1, $(LIBDIR)/libslepc$(pkg).$(SL_LINKER_SUFFIX))
+libpkg = $(foreach pkg, $1, $(LIBDIR)/libslepc$(pkg)$(SLEPC_LIB_EXT).$(SL_LINKER_SUFFIX))
define pkg_template
$(LIBDIR)/libslepc$(1).$(AR_LIB_SUFFIX) : $(call concatlang,$(1))
$(call libname_function,$(LIBDIR)/libslepc$(1)) : $(call concatlang,$(1))
Index: slepc/lib/slepc/conf/slepc_variables
===================================================================
--- slepc.orig/lib/slepc/conf/slepc_variables 2021-02-12 12:20:32.845175491 +0100
+++ slepc/lib/slepc/conf/slepc_variables 2021-02-12 12:20:32.845175491 +0100
@@ -32,14 +32,14 @@
FCPPFLAGS = ${SLEPC_FCPPFLAGS}
# Variables for the different SLEPc modules
-SLEPC_SYS_LIB_BASIC = -lslepcsys
-SLEPC_MFN_LIB_BASIC = -lslepcmfn ${SLEPC_SYS_LIB_BASIC}
-SLEPC_LME_LIB_BASIC = -lslepclme ${SLEPC_SYS_LIB_BASIC}
-SLEPC_EPS_LIB_BASIC = -lslepceps ${SLEPC_SYS_LIB_BASIC}
-SLEPC_SVD_LIB_BASIC = -lslepcsvd ${SLEPC_EPS_LIB_BASIC}
-SLEPC_PEP_LIB_BASIC = -lslepcpep ${SLEPC_EPS_LIB_BASIC}
-SLEPC_NEP_LIB_BASIC = -lslepcnep ${SLEPC_PEP_LIB_BASIC}
-SLEPC_LIB_BASIC = -lslepcnep -lslepcpep -lslepcsvd -lslepceps -lslepcmfn -lslepclme -lslepcsys
+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}
@@ -53,7 +53,7 @@
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 libslepcmfn libslepclme libslepceps libslepcsvd libslepcpep libslepcnep
+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 ${SLEPC_DIR}/${PETSC_ARCH}/lib/slepc/conf/slepcvariables
Index: slepc/config/configure.py
===================================================================
--- slepc.orig/config/configure.py 2021-02-12 12:20:32.845175491 +0100
+++ slepc/config/configure.py 2021-02-12 12:20:32.845175491 +0100
@@ -29,22 +29,23 @@
def WritePkgconfigFile(pkgconfig,version,pversion,sdir,isinstall,prefixdir,singlelib):
''' Write the contents of the pkg-config file '''
+ slepc64Ext = '64' if ('64' in slepc.slepcLibExt) else ''
pkgconfig.write('prefix=%s\n' % prefixdir)
pkgconfig.write('exec_prefix=${prefix}\n')
pkgconfig.write('includedir=${prefix}/include\n')
pkgconfig.write('libdir=${prefix}/lib\n\n')
- pkgconfig.write('Name: SLEPc\n')
+ pkgconfig.write('Name: SLEPc{}\n'.format(slepc64Ext) )
pkgconfig.write('Description: the Scalable Library for Eigenvalue Problem Computations\n')
pkgconfig.write('Version: %s\n' % version)
- pkgconfig.write('Requires: PETSc >= %s\n' % pversion)
+ pkgconfig.write('Requires: PETSc{} >= {:s}\n'.format(slepc64Ext, pversion))
pkgconfig.write('Cflags: -I${includedir}')
if not isinstall:
pkgconfig.write(' -I'+os.path.join(sdir,'include'))
pkgconfig.write('\nLibs:')
if singlelib:
- pkgconfig.write(' -L${libdir} -lslepc\n')
+ pkgconfig.write(' -L${libdir} -lslepc%s\n' % (slepc.slepcLibExt) )
else:
- pkgconfig.write(' -L${libdir} -lslepcnep -lslepcpep -lslepcsvd -lslepceps -lslepcmfn -lslepclme -lslepcsys\n')
+ pkgconfig.write(' -L${{libdir}} -lslepcnep{0} -lslepcpep{0} -lslepcsvd{0} -lslepceps{0} -lslepcmfn{0} -lslepclme{0} -lslepcsys{0}\n'.format(slepc.slepcLibExt))
def WriteReconfigScript(reconfig,slepcdir,usedargs):
''' Write the contents of the reconfigure script '''
@@ -279,11 +280,12 @@
# Single library installation
if petsc.singlelib:
- slepcvars.write('SHLIBS = libslepc\n')
- slepcvars.write('LIBNAME = '+os.path.join('${INSTALL_LIB_DIR}','libslepc.${AR_LIB_SUFFIX}')+'\n')
+ slepcvars.write('SHLIBS = libslepc'+slepc.slepcLibExt+'\n')
+ slepcvars.write('LIBNAME = '+os.path.join('${INSTALL_LIB_DIR}','libslepc'+slepc.slepcLibExt+'.${AR_LIB_SUFFIX}')+'\n')
+ slepcvars.write('SLEPC_LIB_EXT = '+slepc.slepcLibExt+'\n')
for module in ['SYS','EPS','SVD','PEP','NEP','MFN','LME']:
- slepcvars.write('SLEPC_'+module+'_LIB = ${CC_LINKER_SLFLAG}${SLEPC_LIB_DIR} -L${SLEPC_LIB_DIR} -lslepc ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}\n')
- slepcvars.write('SLEPC_LIB = ${CC_LINKER_SLFLAG}${SLEPC_LIB_DIR} -L${SLEPC_LIB_DIR} -lslepc ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}\n')
+ slepcvars.write('SLEPC_'+module+'_LIB = ${CC_LINKER_SLFLAG}${SLEPC_LIB_DIR} -L${SLEPC_LIB_DIR} -lslepc'+slepc.slepcLibExt+' ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}\n')
+ slepcvars.write('SLEPC_LIB = ${CC_LINKER_SLFLAG}${SLEPC_LIB_DIR} -L${SLEPC_LIB_DIR} -lslepc'+slepc.slepcLibExt+' ${SLEPC_EXTERNAL_LIB} ${PETSC_SNES_LIB}\n')
# Check for external packages and for missing LAPACK functions
for pkg in checkpackages:
Index: slepc/config/packages/slepc.py
===================================================================
--- slepc.orig/config/packages/slepc.py 2021-02-12 12:20:32.845175491 +0100
+++ slepc/config/packages/slepc.py 2021-02-12 12:21:11.240881840 +0100
@@ -18,6 +18,7 @@
self.clean = argdb.PopBool('with-clean')[0]
self.prefixdir = argdb.PopPath('prefix')[0]
self.isinstall = not self.prefixdir==''
+ self.slepcLibExt = argdb.PopString('shared-library-extension')[0]
self.datadir = argdb.PopPath('DATAFILESPATH',exist=True)[0]
self.downloaddir = argdb.PopPath('with-packages-download-dir',exist=True)[0]
@@ -29,6 +30,7 @@
print(' --with-packages-download-dir=<dir>'.ljust(wd)+': Skip network download of tarballs and locate them in specified dir')
print('\nSLEPc:')
print(' --prefix=<dir>'.ljust(wd)+': Specify location to install SLEPc (e.g., /usr/local)')
+ print(' --shared-library-extension=<string> : Extension to name of shared library')
print(' --DATAFILESPATH=<dir>'.ljust(wd)+': Location of datafiles (available at https://slepc.upv.es/datafiles/)')
def InitDir(self):
|