Package: slepc / 3.10.1+dfsg1-3

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
Index: slepc/gmakefile
===================================================================
--- slepc.orig/gmakefile
+++ slepc/gmakefile
@@ -25,14 +25,14 @@ libname_function = $(call SONAME_FUNCTIO
 basename_all = $(basename $(basename $(basename $(basename $(1)))))
 sl_linker_args = $(call SL_LINKER_FUNCTION,$(call basename_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)
@@ -117,7 +117,7 @@ endef
 	$(if $(findstring win32fe lib,$(AR)),$(ARCHIVE_RECIPE_WIN32FE_LIB),$(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
+++ slepc/lib/slepc/conf/slepc_variables
@@ -30,14 +30,14 @@ CCPPFLAGS	= ${SLEPC_CCPPFLAGS}
 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}
@@ -51,7 +51,7 @@ SLEPC_LIB       = ${SLEPC_C_SH_LIB_PATH}
 SLEPC_EXTERNAL_LIB  = ${ARPACK_LIB} ${BLZPACK_LIB} ${TRLAN_LIB} ${PRIMME_LIB} ${BLOPEX_LIB} ${FEAST_LIB} ${SLICOT_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
+++ slepc/config/configure.py
@@ -90,9 +90,9 @@ def WritePkgconfigFile(pkgconfig,version
     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 WriteCMakeConfigFile(cmakeconf):
   ''' Write the contents of the CMake configuration file '''
@@ -307,11 +307,12 @@ if not petsc.havepackage:
 
 # 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
+++ slepc/config/packages/slepc.py
@@ -19,6 +19,7 @@ class SLEPc:
     self.cmake     = argdb.PopBool('with-cmake')
     self.prefixdir = argdb.PopPath('prefix')[0]
     self.isinstall = not self.prefixdir==''
+    self.slepcLibExt = argdb.PopString('shared-library-extension')[0]
     self.datadir   = argdb.PopPath('DATAFILESPATH')[0]
 
   def ShowHelp(self):
@@ -26,6 +27,7 @@ class SLEPc:
   --with-clean=<bool>          : Delete prior build files including externalpackages
   --with-cmake=<bool>          : Enable builds with CMake (disabled by default)
   --prefix=<dir>               : Specify location to install SLEPc (e.g., /usr/local)
+  --shared-library-extension=<string>   : Extension to name of shared library
   --DATAFILESPATH=<dir>        : Specify location of datafiles (for SLEPc developers)''')
 
   def InitDir(self):