Package: slepc / 3.14.2+dfsg1-1

soname_extension Patch series | download
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):