lapack: update to 3.6.0

Build cblas and lapacke.
This commit is contained in:
Alessio Sergi 2016-02-17 19:07:17 +01:00
parent 2c3d2d5714
commit df3c218808
11 changed files with 286 additions and 3667 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,71 +0,0 @@
####################################################################
# LAPACK make include file. #
# LAPACK, Version 3.5.0 #
# November 2013 #
####################################################################
#
SHELL = /bin/sh
#
# Modify the FORTRAN and OPTS definitions to refer to the
# compiler and desired compiler options for your machine. NOOPT
# refers to the compiler options desired when NO OPTIMIZATION is
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
FORTRAN = gfortran
OPTS =
DRVOPTS = $(OPTS)
NOOPT =
LOADER = gfortran
LOADOPTS =
#
# Timer for the SECOND and DSECND routines
#
# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
#TIMER = EXT_ETIME
# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
# TIMER = EXT_ETIME_
# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
TIMER = INT_ETIME
# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
# TIMER = INT_CPU_TIME
# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
# TIMER = NONE
#
# Configuration LAPACKE: Native C interface to LAPACK
# To generate LAPACKE library: type 'make lapackelib'
# Configuration file: turned off (default)
# Complex types: C99 (default)
# Name pattern: mixed case (default)
# (64-bit) Data model: LP64 (default)
#
# CC is the C compiler, normally invoked with options CFLAGS.
#
CC = cc
CFLAGS =
#
# The archiver and the flag(s) to use when building archive (library)
# If you system has no ranlib, set RANLIB = echo.
#
ARCH = ar
ARCHFLAGS= cr
RANLIB = ranlib
#
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
# relevant routines will be compiled and XBLAS will be linked only if
# USEXBLAS is defined.
#
# USEXBLAS = Yes
XBLASLIB =
# XBLASLIB = -lxblas
#
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
BLASLIB = ../../librefblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a

View File

@ -0,0 +1,87 @@
diff --git BLAS/SRC/CMakeLists.txt BLAS/SRC/CMakeLists.txt
index 7d8066c..841e28f 100644
--- BLAS/SRC/CMakeLists.txt
+++ BLAS/SRC/CMakeLists.txt
@@ -137,6 +137,7 @@ endif()
add_library(blas ${ALLOBJ})
+add_library(blas_static STATIC ${ALLOBJ})
#if(UNIX)
# target_link_libraries(blas m)
#endif()
@@ -145,5 +146,8 @@ set_target_properties(
VERSION ${LAPACK_VERSION}
SOVERSION ${LAPACK_MAJOR_VERSION}
)
+set_target_properties(blas_static PROPERTIES OUTPUT_NAME blas)
target_link_libraries(blas)
+target_link_libraries(blas_static)
lapack_install_library(blas)
+lapack_install_library(blas_static)
diff --git CBLAS/src/CMakeLists.txt CBLAS/src/CMakeLists.txt
index 8093a5c..d4df765 100644
--- CBLAS/src/CMakeLists.txt
+++ CBLAS/src/CMakeLists.txt
@@ -164,5 +164,9 @@ if (CBLAS_COMPLEX16)
endif(CBLAS_COMPLEX16)
add_library(cblas ${ALLOBJ})
-target_link_libraries(cblas ${BLAS_LIBRARIES} )
+add_library(cblas_static STATIC ${ALLOBJ})
+set_target_properties(cblas_static PROPERTIES OUTPUT_NAME cblas)
+target_link_libraries(cblas ${BLAS_LIBRARIES})
+target_link_libraries(cblas_static ${BLAS_LIBRARIES})
lapack_install_library(cblas)
+lapack_install_library(cblas_static)
diff --git LAPACKE/CMakeLists.txt LAPACKE/CMakeLists.txt
index 008f24c..807ebf0 100644
--- LAPACKE/CMakeLists.txt
+++ LAPACKE/CMakeLists.txt
@@ -46,18 +46,26 @@ append_subdir_files(UTILS_OBJ "utils")
if (USE_XBLAS)
add_library(lapacke ${SRC_OBJ} ${SRCX_OBJ} ${UTILS_OBJ})
+ add_library(lapacke_static STATIC ${SRC_OBJ} ${SRCX_OBJ} ${UTILS_OBJ})
target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
+ target_link_libraries(lapacke_static ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
else (USE_XBLAS)
if (LAPACKE_WITH_TMG)
add_library(lapacke ${SRC_OBJ} ${MATGEN_OBJ} ${UTILS_OBJ})
+ add_library(lapacke_static STATIC ${SRC_OBJ} ${MATGEN_OBJ} ${UTILS_OBJ})
target_link_libraries(lapacke tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(lapacke_static tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
else (LAPACKE_WITH_TMG)
add_library(lapacke ${SRC_OBJ} ${UTILS_OBJ})
+ add_library(lapacke_static STATIC ${SRC_OBJ} ${UTILS_OBJ})
target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(lapacke_static ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
endif(LAPACKE_WITH_TMG)
endif(USE_XBLAS)
+set_target_properties(lapacke_static PROPERTIES OUTPUT_NAME lapacke)
lapack_install_library(lapacke)
+lapack_install_library(lapacke_static)
INSTALL( FILES ${LAPACKE_INCLUDE} DESTINATION include )
if(BUILD_TESTING)
diff --git SRC/CMakeLists.txt SRC/CMakeLists.txt
index 03441b9..e6a381b 100644
--- SRC/CMakeLists.txt
+++ SRC/CMakeLists.txt
@@ -455,6 +455,7 @@ endif()
list(REMOVE_DUPLICATES ALLOBJ)
add_library(lapack ${ALLOBJ} ${ALLXOBJ})
+add_library(lapack_static STATIC ${ALLOBJ} ${ALLXOBJ})
target_link_libraries(lapack ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
set_target_properties(
@@ -462,5 +463,7 @@ set_target_properties(
VERSION ${LAPACK_VERSION}
SOVERSION ${LAPACK_MAJOR_VERSION}
)
+set_target_properties(lapack_static PROPERTIES OUTPUT_NAME lapack)
lapack_install_library(lapack)
+lapack_install_library(lapack_static)

View File

@ -0,0 +1,28 @@
diff --git CBLAS/CMakeLists.txt CBLAS/CMakeLists.txt
index 98b481f..1c9428e 100644
--- CBLAS/CMakeLists.txt
+++ CBLAS/CMakeLists.txt
@@ -87,4 +87,8 @@ install(FILES
#install(EXPORT cblas-targets
# DESTINATION lib/cmake/cblas-${LAPACK_VERSION})
-
+set_target_properties(
+ cblas PROPERTIES
+ VERSION ${LAPACK_VERSION}
+ SOVERSION ${LAPACK_MAJOR_VERSION}
+ )
diff --git LAPACKE/CMakeLists.txt LAPACKE/CMakeLists.txt
index 008f24c..e2cd9e0 100644
--- LAPACKE/CMakeLists.txt
+++ LAPACKE/CMakeLists.txt
@@ -86,3 +86,9 @@ install(FILES
install(EXPORT lapacke-targets
DESTINATION lib/cmake/lapacke-${LAPACK_VERSION})
+
+set_target_properties(
+ lapacke PROPERTIES
+ VERSION ${LAPACK_VERSION}
+ SOVERSION ${LAPACK_MAJOR_VERSION}
+ )

View File

@ -0,0 +1,117 @@
diff --git BLAS/CMakeLists.txt BLAS/CMakeLists.txt
--- BLAS/CMakeLists.txt
+++ BLAS/CMakeLists.txt
@@ -2,7 +2,7 @@
if(BUILD_TESTING)
add_subdirectory(TESTING)
endif(BUILD_TESTING)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/blas.pc.in ${CMAKE_CURRENT_BINARY_DIR}/blas.pc)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/blas.pc.in ${CMAKE_CURRENT_BINARY_DIR}/blas.pc @ONLY)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/blas.pc
DESTINATION ${PKG_CONFIG_DIR}
diff --git BLAS/blas.pc.in BLAS/blas.pc.in
--- BLAS/blas.pc.in
+++ BLAS/blas.pc.in
@@ -1,7 +1,7 @@
prefix=@prefix@
libdir=@libdir@
-Name: blas
+Name: BLAS
Description: Basic Linear Algebra Subprograms F77 reference implementations
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/blas/
diff --git CBLAS/CMakeLists.txt CBLAS/CMakeLists.txt
--- CBLAS/CMakeLists.txt
+++ CBLAS/CMakeLists.txt
@@ -71,7 +71,7 @@
${LAPACK_BINARY_DIR}/cblas-config.cmake @ONLY)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cblas.pc.in ${CMAKE_CURRENT_BINARY_DIR}/cblas.pc)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cblas.pc.in ${CMAKE_CURRENT_BINARY_DIR}/cblas.pc @ONLY)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/cblas.pc
DESTINATION ${PKG_CONFIG_DIR}
diff --git CBLAS/cblas.pc.in CBLAS/cblas.pc.in
--- CBLAS/cblas.pc.in
+++ CBLAS/cblas.pc.in
@@ -1,9 +1,9 @@
prefix=@prefix@
libdir=@libdir@
-Name: lapacke
-Description: C Standard Interface to BLAS Linear Algebra PACKage
+Name: CBLAS
+Description: C Standard Interface to BLAS Basic Linear Algebra Subprograms
Version: @LAPACK_VERSION@
-URL: http://www.netlib.org/lapack/
+URL: http://www.netlib.org/blas/#_cblas
Libs: -L${libdir} -lcblas
Requires: blas
diff --git CMakeLists.txt CMakeLists.txt
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -112,6 +112,13 @@
set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
set(PKG_CONFIG_DIR ${LIBRARY_DIR}/pkgconfig)
+set(prefix ${CMAKE_INSTALL_PREFIX})
+if(NOT IS_ABSOLUTE ${LIBRARY_DIR})
+ set(libdir "\${prefix}/${LIBRARY_DIR}")
+else()
+ set(libdir "${LIBRARY_DIR}")
+endif()
+
# --------------------------------------------------
# Precision to build
# By default all precisions are generated
@@ -333,7 +340,7 @@
${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc @ONLY)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/lapack.pc
DESTINATION ${PKG_CONFIG_DIR}
diff --git LAPACKE/CMakeLists.txt LAPACKE/CMakeLists.txt
--- LAPACKE/CMakeLists.txt
+++ LAPACKE/CMakeLists.txt
@@ -65,7 +65,7 @@
endif(BUILD_TESTING)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapacke.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapacke.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc @ONLY)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc
DESTINATION ${PKG_CONFIG_DIR}
diff --git LAPACKE/lapacke.pc.in LAPACKE/lapacke.pc.in
--- LAPACKE/lapacke.pc.in
+++ LAPACKE/lapacke.pc.in
@@ -1,9 +1,9 @@
prefix=@prefix@
libdir=@libdir@
-Name: lapacke
+Name: LAPACKE
Description: C Standard Interface to LAPACK Linear Algebra PACKage
Version: @LAPACK_VERSION@
-URL: http://www.netlib.org/lapack/
+URL: http://www.netlib.org/lapack/#_standard_c_language_apis_for_lapack
Libs: -L${libdir} -llapacke
Requires: lapack blas
diff --git lapack.pc.in lapack.pc.in
--- lapack.pc.in
+++ lapack.pc.in
@@ -1,7 +1,7 @@
prefix=@prefix@
libdir=@libdir@
-Name: lapack
+Name: LAPACK
Description: FORTRAN reference implementation of LAPACK Linear Algebra PACKage
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/lapack/

View File

@ -1,123 +1,85 @@
# Template file for 'lapack'
pkgname=lapack
version=3.5.0
revision=3
wrksrc="${pkgname}-${version}"
hostmakedepends="gcc-fortran doxygen"
replaces="liblapack>=0"
version=3.6.0
revision=1
nocross=yes
build_style=cmake
configure_args="
-DBUILD_SHARED_LIBS=ON -DCMAKE_SKIP_RPATH=ON -DBUILD_TESTING=OFF
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_Fortran_COMPILER=gfortran
-DCMAKE_Fortran_FLAGS=-fPIC -DCBLAS=ON -DLAPACKE=ON -DBUILD_DEPRECATED=ON"
hostmakedepends="cmake gcc-fortran"
short_desc="Linear Algebra PACKage"
maintainer="Alessio Sergi <al3hex@gmail.com>"
homepage="http://www.netlib.org/lapack/"
license="3-clause-BSD"
distfiles="http://www.netlib.org/${pkgname}/${pkgname}-${version}.tgz"
checksum="9ad8f0d3f3fb5521db49f2dd716463b8fb2b6bc9dc386a9956b8c6144f726352"
checksum=a9a0082c918fe14e377bbd570057616768dca76cbdc713457d8199aaa233ffc3
pre_build() {
cp -f ${FILESDIR}/make.inc.template ${wrksrc}/make.inc
cp -f ${FILESDIR}/Doxyfile_man.blas ${wrksrc}/DOCS
cp -f ${FILESDIR}/Doxyfile_man.lapack ${wrksrc}/DOCS
pre_configure() {
sed -i 's|/CMAKE/|/cmake/|' CBLAS/CMakeLists.txt
}
do_build() {
export FC=gfortran
export FFLAGS=$CFLAGS
export FFLAGS_NOOPT=${CFLAGS/-O2/}
export OPTS="$FFLAGS -frecursive"
export NOOPT="$FFLAGS_NOOPT -O0 -frecursive"
export PICOPT="-fPIC"
# Build the shared blas library
make ${makejobs} blaslib OPTS="$OPTS $PICOPT" NOOPT="$NOOPT $PICOPT"
mv librefblas.a libblas_pic.a
mkdir tmp
( cd tmp; ar x ../libblas_pic.a )
"$FC" -shared -Wl,-soname=libblas.so.${version%%.*} -o libblas.so.${version} tmp/*.o
ln -sf libblas.so.${version} libblas.so
rm -rf tmp
# Build the static blas library
make cleanlib
make ${makejobs} blaslib OPTS="$OPTS" NOOPT="$NOOPT"
mv librefblas.a libblas.a
make cleanlib
# Build the shared lapack library
make ${makejobs} lapacklib OPTS="$OPTS $PICOPT" NOOPT="$NOOPT $PICOPT"
mv liblapack.a liblapack_pic.a
mkdir tmp
( cd tmp; ar x ../liblapack_pic.a )
"$FC" -shared -Wl,-soname=liblapack.so.${version%%.*} -o liblapack.so.${version} tmp/*.o -L. -lblas
rm -rf tmp
# Build the static lapack library
make cleanlib
make ${makejobs} lapacklib OPTS="$OPTS" NOOPT="$NOOPT"
# Build blas and lapack man pages
doxygen DOCS/Doxyfile_man.blas
doxygen DOCS/Doxyfile_man.lapack
}
do_install() {
for libname in libblas liblapack; do
vinstall ${libname}.a 644 usr/lib ${libname}.a
vinstall ${libname}.so.${version} 755 usr/lib ${libname}.so.${version}
done
post_install() {
vlicense LICENSE
}
post_install() {
for libname in libblas liblapack; do
ln -sf ${libname}.so.${version} ${DESTDIR}/usr/lib/${libname}.so
ln -sf ${libname}.so.${version} ${DESTDIR}/usr/lib/${libname}.so.${version%%.*}
done
}
lapack-devel_package() {
depends="${sourcepkg}>=${version}_${revision}"
depends="blas-devel-${version}_${revision} ${sourcepkg}-${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/lib/cmake/lapack-${version}
vmove usr/lib/pkgconfig/lapack.pc
vmove usr/lib/liblapack.a
vmove usr/lib/liblapack.so
}
}
lapack-doc_package() {
noarch=yes
depends="${sourcepkg}>=${version}_${revision}"
short_desc+=" - documentation"
pkg_install() {
vmkdir usr/share
vcopy ${wrksrc}/DOCS/lapack/man usr/share
}
}
blas_package() {
replaces="libBLAS>=0"
short_desc+=" - BLAS (Basic Linear Algebra Subprograms) library"
short_desc="Basic Linear Algebra Subprograms"
pkg_install() {
vmove usr/lib/libblas.so.*
vlicense ${wrksrc}/LICENSE
vlicense LICENSE
}
}
blas-devel_package() {
depends="blas>=${version}_${revision}"
short_desc+=" - BLAS development files"
depends="blas-${version}_${revision}"
short_desc="Basic Linear Algebra Subprograms - development files"
pkg_install() {
vmove usr/lib/pkgconfig/blas.pc
vmove usr/lib/libblas.a
vmove usr/lib/libblas.so
}
}
blas-doc_package() {
noarch=yes
depends="blas>=${version}_${revision}"
short_desc+=" - BLAS documentation"
cblas_package() {
short_desc="C interface to BLAS"
pkg_install() {
vmkdir usr/share
vcopy ${wrksrc}/DOCS/blas/man usr/share
vmove usr/lib/libcblas.so.*
}
}
cblas-devel_package() {
short_desc="C interface to BLAS - development files"
depends="blas-devel-${version}_${revision} cblas-${version}_${revision}"
pkg_install() {
vmove usr/include/cblas*.h
vmove usr/lib/cmake/cblas-${version}
vmove usr/lib/pkgconfig/cblas.pc
vmove usr/lib/libcblas.a
vmove usr/lib/libcblas.so
}
}
lapacke_package() {
short_desc="C interface to LAPACK"
pkg_install() {
vmove usr/lib/liblapacke.so.*
}
}
lapacke-devel_package() {
short_desc="C interface to LAPACK - development files"
depends="lapack-devel-${version}_${revision} lapacke-${version}_${revision}"
pkg_install() {
vmove usr/include/lapacke*.h
vmove usr/lib/cmake/lapacke-${version}
vmove usr/lib/pkgconfig/lapacke.pc
vmove usr/lib/liblapacke.a
vmove usr/lib/liblapacke.so
}
}

1
srcpkgs/lapacke Symbolic link
View File

@ -0,0 +1 @@
lapack

1
srcpkgs/lapacke-devel Symbolic link
View File

@ -0,0 +1 @@
lapack