lapack, cblas, lapacke: also install static libs, fix pkg-config files

We patch the build system to also install the static libraries when both
-DBUILD_SHARED_LIBS and -DBUILD_STATIC_LIBS are given. The pkg-config
files of cblas and lapacke are adapted to also accomodate static linking
to our configured BLAS_LIBS and LAPACK_LIBS.
This commit is contained in:
Dr. Thomas Orgis 2019-03-27 15:49:07 +01:00
parent c98759114d
commit 1528ca8f05
12 changed files with 162 additions and 1 deletions

View File

@ -5,6 +5,7 @@ include/cblas_mangling.h
include/cblas_test.h
lib/cmake/cblas-${PKGVERSION}/cblas-config-version.cmake
lib/cmake/cblas-${PKGVERSION}/cblas-config.cmake
lib/libcblas.a
lib/libcblas.so
lib/libcblas.so.3
lib/libcblas.so.${PKGVERSION}

View File

@ -27,8 +27,11 @@ WRKSRC= ${WRKDIR}/${DISTNAME}
CONFIGURE_DIRS= ${WRKDIR}/build
CMAKE_ARG_PATH= ${WRKSRC}
CMAKE_ARGS= -DBUILD_DEPRECATED=yes \
# Note: We patch the build to install both static and
# shared libraries.
CMAKE_ARGS= -DBUILD_DEPRECATED=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=ON \
${LAPACK_PART_CMAKE_ARGS}
post-extract:

View File

@ -3,9 +3,11 @@ lib/cmake/lapack-${PKGVERSION}/lapack-config-version.cmake
lib/cmake/lapack-${PKGVERSION}/lapack-config.cmake
lib/cmake/lapack-${PKGVERSION}/lapack-targets-release.cmake
lib/cmake/lapack-${PKGVERSION}/lapack-targets.cmake
lib/libblas.a
lib/libblas.so
lib/libblas.so.3
lib/libblas.so.${PKGVERSION}
lib/liblapack.a
lib/liblapack.so
lib/liblapack.so.3
lib/liblapack.so.${PKGVERSION}

View File

@ -4,4 +4,11 @@ SHA1 (lapack-3.8.0.tar.gz) = 55ac9d6be510883c5442c8aca967722cdf58fb29
RMD160 (lapack-3.8.0.tar.gz) = ff306181c4c125e7594c57c1eeece8b0aa8f8523
SHA512 (lapack-3.8.0.tar.gz) = 17786cb7306fccdc9b4a242de7f64fc261ebe6a10b6ec55f519deb4cb673cb137e8742aa5698fd2dc52f1cd56d3bd116af3f593a01dcf6770c4dcc86c50b2a7f
Size (lapack-3.8.0.tar.gz) = 7426094 bytes
SHA1 (patch-BLAS_SRC_CMakeLists.txt) = c8c69e6e0c67337af999863c4f5c64618d1374d7
SHA1 (patch-CBLAS_cblas.pc.in) = 8291c46327766fea702c3cb533555311c6a5e97e
SHA1 (patch-CBLAS_src_CMakeLists.txt) = faa1ad6c322830cb62e0f5bdab33732c0372cce3
SHA1 (patch-CMakeLists.txt) = 3f93b4745b1e64fb248249b845c0a44761c382d6
SHA1 (patch-LAPACKE_CMakeLists.txt) = 1d26a94cbbd92a29b4e750a079add13de1d94d1e
SHA1 (patch-LAPACKE_lapacke.pc.in) = c8d48afdd9da3f6a8bc05d83a43626e01322cf91
SHA1 (patch-SRC_CMakeLists.txt) = a667a733298c25ed63e653e44390b4600725609e
SHA1 (patch-TESTING_MATGEN_CMakeLists.txt) = 84d4cde8fef49c6efc9f50a3219b0299375934d5

View File

@ -0,0 +1,18 @@
$NetBSD$
Support combined build of shared and static libraries.
--- BLAS/SRC/CMakeLists.txt.orig 2017-11-13 04:15:54.000000000 +0000
+++ BLAS/SRC/CMakeLists.txt
@@ -104,3 +104,11 @@ set_target_properties(
SOVERSION ${LAPACK_MAJOR_VERSION}
)
lapack_install_library(blas)
+if(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
+ add_library(blas_static STATIC ${SOURCES})
+ set_target_properties(
+ blas_static PROPERTIES
+ OUTPUT_NAME blas
+ )
+ lapack_install_library(blas_static)
+endif()

View File

@ -0,0 +1,11 @@
$NetBSD$
--- CBLAS/cblas.pc.in.orig 2019-03-27 14:34:40.823289167 +0000
+++ CBLAS/cblas.pc.in
@@ -6,5 +6,5 @@ Description: C Standard Interface to BLA
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/blas/#_cblas
Libs: -L${libdir} -lcblas
+Libs.private: @BLAS_LIBRARIES@
Cflags: -I${includedir}
-Requires.private: blas

View File

@ -0,0 +1,25 @@
$NetBSD$
Support combined build of shared and static libraries.
--- CBLAS/src/CMakeLists.txt.orig 2017-11-13 04:15:54.000000000 +0000
+++ CBLAS/src/CMakeLists.txt
@@ -126,3 +126,18 @@ target_include_directories(cblas PUBLIC
)
target_link_libraries(cblas PRIVATE ${BLAS_LIBRARIES})
lapack_install_library(cblas)
+
+if(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
+ add_library(cblas_static STATIC ${SOURCES})
+ set_target_properties(
+ cblas_static PROPERTIES
+ LINKER_LANGUAGE C
+ OUTPUT_NAME cblas
+ )
+ target_include_directories(cblas_static PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
+ $<INSTALL_INTERFACE:include>
+ )
+ target_link_libraries(cblas_static PRIVATE ${BLAS_LIBRARIES})
+ lapack_install_library(cblas_static)
+endif()

View File

@ -0,0 +1,33 @@
$NetBSD$
Support combined build of shared and static libraries.
--- LAPACKE/CMakeLists.txt.orig 2017-11-13 04:15:54.000000000 +0000
+++ LAPACKE/CMakeLists.txt
@@ -71,6 +71,26 @@ endif()
target_link_libraries(lapacke PRIVATE ${LAPACK_LIBRARIES})
lapack_install_library(lapacke)
+
+if(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
+ add_library(lapacke_static STATIC ${SOURCES})
+ set_target_properties(
+ lapacke_static PROPERTIES
+ OUTPUT_NAME lapacke
+ )
+ target_include_directories(lapacke_static PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
+ $<INSTALL_INTERFACE:include>
+ )
+
+ if(LAPACKE_WITH_TMG)
+ target_link_libraries(lapacke_static PRIVATE tmglib)
+ endif()
+ target_link_libraries(lapacke_static PRIVATE ${LAPACK_LIBRARIES})
+
+ lapack_install_library(lapacke_static)
+endif()
+
install(FILES ${LAPACKE_INCLUDE} ${LAPACK_BINARY_DIR}/include/lapacke_mangling.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(BUILD_TESTING)

View File

@ -0,0 +1,11 @@
$NetBSD$
--- LAPACKE/lapacke.pc.in.orig 2019-03-27 14:35:14.016006535 +0000
+++ LAPACKE/lapacke.pc.in
@@ -6,5 +6,5 @@ Description: C Standard Interface to LAP
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/lapack/#_standard_c_language_apis_for_lapack
Libs: -L${libdir} -llapacke
+Libs.private: @LAPACK_LIBRARIES@ @BLAS_LIBRARIES@
Cflags: -I${includedir}
-Requires.private: lapack

View File

@ -0,0 +1,30 @@
$NetBSD$
Support combined build of shared and static libraries.
--- SRC/CMakeLists.txt.orig 2017-11-13 04:15:54.000000000 +0000
+++ SRC/CMakeLists.txt
@@ -510,3 +510,23 @@ if (${CMAKE_BUILD_TYPE_UPPER} STREQUAL "
endif()
lapack_install_library(lapack)
+
+if(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
+ add_library(lapack_static STATIC ${SOURCES})
+ set_target_properties(
+ lapack_static PROPERTIES
+ OUTPUT_NAME lapack
+ )
+
+ if(USE_XBLAS)
+ target_link_libraries(lapack_static PRIVATE ${XBLAS_LIBRARY})
+ endif()
+ target_link_libraries(lapack_static PRIVATE ${BLAS_LIBRARIES})
+
+ if (${CMAKE_BUILD_TYPE_UPPER} STREQUAL "COVERAGE")
+ target_link_libraries(lapack_static PRIVATE gcov)
+ add_coverage(lapack_static)
+ endif()
+
+ lapack_install_library(lapack_static)
+endif()

View File

@ -0,0 +1,19 @@
$NetBSD$
Support combined build of shared and static libraries.
--- TESTING/MATGEN/CMakeLists.txt.orig 2017-11-13 04:15:54.000000000 +0000
+++ TESTING/MATGEN/CMakeLists.txt
@@ -50,3 +50,12 @@ list(REMOVE_DUPLICATES SOURCES)
add_library(tmglib ${SOURCES})
target_link_libraries(tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
lapack_install_library(tmglib)
+if(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
+ add_library(tmglib_static STATIC ${SOURCES})
+ set_target_properties(
+ tmglib_static PROPERTIES
+ OUTPUT_NAME tmglib
+ )
+ target_link_libraries(tmglib_static ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ lapack_install_library(tmglib_static)
+endif()

View File

@ -7,6 +7,7 @@ lib/cmake/lapacke-${PKGVERSION}/lapacke-config-version.cmake
lib/cmake/lapacke-${PKGVERSION}/lapacke-config.cmake
lib/cmake/lapacke-${PKGVERSION}/lapacke-targets-release.cmake
lib/cmake/lapacke-${PKGVERSION}/lapacke-targets.cmake
lib/liblapacke.a
lib/liblapacke.so
lib/liblapacke.so.3
lib/liblapacke.so.${PKGVERSION}