academic/cblas: Updated for version 3.6.0 + new maintainer.

Signed-off-by: Kyle Guinn <elyk03@gmail.com>
This commit is contained in:
Kyle Guinn 2016-01-02 17:22:20 -06:00 committed by Willy Sudiarto Raharjo
parent b7a833ce5d
commit ff76990b39
7 changed files with 1825 additions and 56 deletions

View File

@ -1,5 +1,6 @@
CBLAS is a collection of wrappers that provide a C interface to the FORTRAN
BLAS library. The interface can be consulted by opening /usr/include/cblas.h
An existing FORTRAN BLAS library must be installed if you intend to build this
package. The reference BLAS from netlib is available at SlackBuilds.org.
This package is intended for use with the Netlib reference BLAS. It should
also work with other BLAS implementations that do not already provide a CBLAS
implementation.

View File

@ -2,18 +2,37 @@
# Slackware build script for CBLAS
# Written by Eugene Suter <easuter@gmail.com>
# Copyright 2016 Kyle Guinn <elyk03@gmail.com>, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=cblas
VERSION=${VERSION:-20110120}
SRCNAM=lapack
VERSION=${VERSION:-3.6.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
case "$(uname -m)" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
*) ARCH=$(uname -m) ;;
esac
fi
@ -22,70 +41,79 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
DOCS="LICENSE CBLAS/README"
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf CBLAS
tar xvf $CWD/$PRGNAM.tgz
cd CBLAS
rm -rf $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tgz
cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
chmod -R u+w,go-w,a+rX-st .
# Manually configure and build
cp Makefile.LINUX Makefile.in
make CBDIR=$(pwd) \
CBLIBDIR=$(pwd)/lib \
CBLIB=$(pwd)/lib/libcblas.a \
BLLIB="/usr/lib${LIBDIRSUFFIX}/libblas.a" \
CFLAGS="$SLKCFLAGS -DADD_" \
FFLAGS="$SLKCFLAGS -DADD_" \
FC="gfortran" \
RANLIB=ranlib \
alllib
# Fix lots of bugs with the cmake build system and .pc files.
# More importantly, allow building only the CBLAS component.
patch -p1 < $CWD/patches/generate-pkgconfig.diff
patch -p1 < $CWD/patches/link-dependencies.diff
patch -p1 < $CWD/patches/target-cleanup.diff
patch -p1 < $CWD/patches/cmake-piecewise.diff
cd lib
ar -x lib$PRGNAM.a
gcc -fPIC -lgfortran -shared *.o -Wl,-soname,$PRGNAM.so.$VERSION \
-o lib$PRGNAM.so.$VERSION
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
cp lib$PRGNAM.a $PKG/usr/lib${LIBDIRSUFFIX}
cp lib$PRGNAM.so.$VERSION $PKG/usr/lib${LIBDIRSUFFIX}
( cd $PKG/usr/lib${LIBDIRSUFFIX}
ln -s lib$PRGNAM.so.$VERSION lib$PRGNAM.so
)
# Avoid adding an RPATH entry to the shared lib. It's unnecessary (except for
# running the test suite), and it's broken on 64-bit (needs LIBDIRSUFFIX).
mkdir -p shared
cd shared
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_Fortran_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_RULE_MESSAGES=OFF \
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
-DUSE_OPTIMIZED_BLAS=ON \
-DBUILD_CBLAS=ON \
-DBUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_SKIP_RPATH=YES \
..
make
make install/strip DESTDIR=$PKG
cd ..
mkdir -p $PKG/usr/include
cp include/* $PKG/usr/include
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# cmake doesn't appear to let us build both shared and static libs
# at the same time, so build it twice. This may build a non-PIC library
# on some architectures, which should be faster.
mkdir -p static
cd static
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_Fortran_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_RULE_MESSAGES=OFF \
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
-DUSE_OPTIMIZED_BLAS=ON \
-DBUILD_CBLAS=ON \
-DBUILD_TESTING=OFF \
..
make
make install/strip DESTDIR=$PKG
cd ..
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
README examples \
$PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install

View File

@ -1,10 +1,10 @@
PRGNAM="cblas"
VERSION="20110120"
HOMEPAGE="http://netlib.org/blas/"
DOWNLOAD="http://netlib.org/blas/blast-forum/cblas.tgz"
MD5SUM="1e8830f622d2112239a4a8a83b84209a"
VERSION="3.6.0"
HOMEPAGE="http://www.netlib.org/blas/"
DOWNLOAD="http://www.netlib.org/lapack/lapack-3.6.0.tgz"
MD5SUM="f2f6c67134e851fe189bb3ca1fbb5101"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Eugene Suter"
EMAIL="easuter@gmail.com"
REQUIRES="blas"
MAINTAINER="Kyle Guinn"
EMAIL="elyk03@gmail.com"

View File

@ -0,0 +1,615 @@
diff --git a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt
--- a/CBLAS/CMakeLists.txt
+++ b/CBLAS/CMakeLists.txt
@@ -1,8 +1,6 @@
message(STATUS "CBLAS enable")
enable_language(C)
-set(LAPACK_INSTALL_EXPORT_NAME cblas-targets)
-
# Create a header file cblas.h for the routines called in my C programs
include(FortranCInterface)
FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/include/cblas_mangling.h
@@ -40,51 +38,8 @@
add_subdirectory(examples)
endif(BUILD_TESTING)
-if(NOT BLAS_FOUND)
- set(ALL_TARGETS ${ALL_TARGETS} blas)
-endif(NOT BLAS_FOUND)
-
-# Export cblas targets from the
-# install tree, if any.
-set(_cblas_config_install_guard_target "")
-if(ALL_TARGETS)
- install(EXPORT cblas-targets
- DESTINATION lib/cmake/cblas-${LAPACK_VERSION})
- # Choose one of the cblas targets to use as a guard for
- # cblas-config.cmake to load targets from the install tree.
- list(GET ALL_TARGETS 0 _cblas_config_install_guard_target)
-endif()
-
-# Export cblas targets from the build tree, if any.
-set(_cblas_config_build_guard_target "")
-if(ALL_TARGETS)
- export(TARGETS ${ALL_TARGETS} FILE cblas-targets.cmake)
-
- # Choose one of the cblas targets to use as a guard
- # for cblas-config.cmake to load targets from the build tree.
- list(GET ALL_TARGETS 0 _cblas_config_build_guard_target)
-endif()
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-version.cmake.in
- ${LAPACK_BINARY_DIR}/cblas-config-version.cmake @ONLY)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-build.cmake.in
- ${LAPACK_BINARY_DIR}/cblas-config.cmake @ONLY)
-
-
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}
)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-install.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/cblas-config.cmake @ONLY)
-install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/cblas-config.cmake
- ${LAPACK_BINARY_DIR}/cblas-config-version.cmake
- DESTINATION lib/cmake/cblas-${LAPACK_VERSION}
- )
-
-#install(EXPORT cblas-targets
-# DESTINATION lib/cmake/cblas-${LAPACK_VERSION})
-
diff --git a/CBLAS/cmake/cblas-config-build.cmake.in b/CBLAS/cmake/cblas-config-build.cmake.in
deleted file mode 100644
--- a/CBLAS/cmake/cblas-config-build.cmake.in
+++ /dev/null
@@ -1,14 +0,0 @@
-# Load the LAPACK package with which we were built.
-set(LAPACK_DIR "@LAPACK_BINARY_DIR@")
-find_package(LAPACK NO_MODULE)
-
-# Load lapack targets from the build tree, including lapacke targets.
-if(NOT TARGET lapacke)
- include("@LAPACK_BINARY_DIR@/lapack-targets.cmake")
-endif()
-
-# Report lapacke header search locations.
-set(CBLAS_INCLUDE_DIRS "@LAPACK_SOURCE_DIR@/cblas/include")
-
-# Report lapacke libraries.
-set(CBLAS_LIBRARIES cblas)
diff --git a/CBLAS/cmake/cblas-config-install.cmake.in b/CBLAS/cmake/cblas-config-install.cmake.in
deleted file mode 100644
--- a/CBLAS/cmake/cblas-config-install.cmake.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Compute locations from <prefix>/lib/cmake/lapacke-<v>/<self>.cmake
-get_filename_component(_CBLAS_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-get_filename_component(_CBLAS_PREFIX "${_CBLAS_SELF_DIR}" PATH)
-get_filename_component(_CBLAS_PREFIX "${_CBLAS_PREFIX}" PATH)
-get_filename_component(_CBLAS_PREFIX "${_CBLAS_PREFIX}" PATH)
-
-# Load the LAPACK package with which we were built.
-set(LAPACK_DIR "${_CBLAS_PREFIX}/lib/cmake/lapack-@LAPACK_VERSION@")
-find_package(LAPACK NO_MODULE)
-
-# Load lapacke targets from the install tree.
-if(NOT TARGET cblas)
- include(${_CBLAS_SELF_DIR}/cblas-targets.cmake)
-endif()
-
-# Report lapacke header search locations.
-set(CBLAS_INCLUDE_DIRS ${_CBLAS_PREFIX}/include)
-
-# Report lapacke libraries.
-set(CBLAS_LIBRARIES cblas)
-
-unset(_CBLAS_PREFIX)
-unset(_CBLAS_SELF_DIR)
diff --git a/CBLAS/cmake/cblas-config-version.cmake.in b/CBLAS/cmake/cblas-config-version.cmake.in
deleted file mode 100644
--- a/CBLAS/cmake/cblas-config-version.cmake.in
+++ /dev/null
@@ -1,8 +0,0 @@
-set(PACKAGE_VERSION "@LAPACK_VERSION@")
-if(NOT ${PACKAGE_FIND_VERSION} VERSION_GREATER ${PACKAGE_VERSION})
- set(PACKAGE_VERSION_COMPATIBLE 1)
- if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${PACKAGE_VERSION})
- set(PACKAGE_VERSION_EXACT 1)
- endif()
-endif()
-
diff --git a/CMAKE/lapack-config-build.cmake.in b/CMAKE/lapack-config-build.cmake.in
deleted file mode 100644
--- a/CMAKE/lapack-config-build.cmake.in
+++ /dev/null
@@ -1,10 +0,0 @@
-# Load lapack targets from the build tree if necessary.
-set(_LAPACK_TARGET "@_lapack_config_build_guard_target@")
-if(_LAPACK_TARGET AND NOT TARGET "${_LAPACK_TARGET}")
- include("@LAPACK_BINARY_DIR@/lapack-targets.cmake")
-endif()
-unset(_LAPACK_TARGET)
-
-# Report the blas and lapack raw or imported libraries.
-set(LAPACK_blas_LIBRARIES "@BLAS_LIBRARIES@")
-set(LAPACK_lapack_LIBRARIES "@LAPACK_LIBRARIES@")
diff --git a/CMAKE/lapack-config-install.cmake.in b/CMAKE/lapack-config-install.cmake.in
deleted file mode 100644
--- a/CMAKE/lapack-config-install.cmake.in
+++ /dev/null
@@ -1,15 +0,0 @@
-# Compute locations from <prefix>/lib/cmake/lapack-<v>/<self>.cmake
-get_filename_component(_LAPACK_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-
-# Load lapack targets from the install tree if necessary.
-set(_LAPACK_TARGET "@_lapack_config_install_guard_target@")
-if(_LAPACK_TARGET AND NOT TARGET "${_LAPACK_TARGET}")
- include("${_LAPACK_SELF_DIR}/lapack-targets.cmake")
-endif()
-unset(_LAPACK_TARGET)
-
-# Report the blas and lapack raw or imported libraries.
-set(LAPACK_blas_LIBRARIES "@BLAS_LIBRARIES@")
-set(LAPACK_lapack_LIBRARIES "@LAPACK_LIBRARIES@")
-
-unset(_LAPACK_SELF_DIR)
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,8 +55,6 @@
endif()
# --------------------------------------------------
-set(LAPACK_INSTALL_EXPORT_NAME lapack-targets)
-
if (UNIX)
include(GNUInstallDirs)
set(ARCHIVE_DIR ${CMAKE_INSTALL_LIBDIR})
@@ -70,7 +68,6 @@
macro(lapack_install_library lib)
install(TARGETS ${lib}
- EXPORT ${LAPACK_INSTALL_EXPORT_NAME}
ARCHIVE DESTINATION ${ARCHIVE_DIR}
LIBRARY DESTINATION ${LIBRARY_DIR}
RUNTIME DESTINATION ${RUNTIME_DIR}
@@ -96,20 +93,6 @@
include( CheckLAPACKCompilerFlags )
CheckLAPACKCompilerFlags()
-# --------------------------------------------------
-# Check second function
-
-include(CheckTimeFunction)
-set(TIME_FUNC NONE ${TIME_FUNC})
-CHECK_TIME_FUNCTION(NONE TIME_FUNC)
-CHECK_TIME_FUNCTION(INT_CPU_TIME TIME_FUNC)
-CHECK_TIME_FUNCTION(EXT_ETIME TIME_FUNC)
-CHECK_TIME_FUNCTION(EXT_ETIME_ TIME_FUNC)
-CHECK_TIME_FUNCTION(INT_ETIME TIME_FUNC)
-message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as timing function.")
-
-set(SECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f)
-set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
set(PKG_CONFIG_DIR ${LIBRARY_DIR}/pkgconfig)
set(prefix ${CMAKE_INSTALL_PREFIX})
@@ -120,6 +103,11 @@
endif()
# --------------------------------------------------
+# By default static library
+option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
+option(BUILD_STATIC_LIBS "Build static libraries" ON)
+
+# --------------------------------------------------
# Precision to build
# By default all precisions are generated
option(BUILD_SINGLE "Build Single Precision" ON)
@@ -150,236 +138,134 @@
Please enable at least one of these: BUILD_SINGLE, BUILD_DOUBLE, BUILD_COMPLEX, BUILD_COMPLEX16.")
endif()
-# --------------------------------------------------
-# Subdirectories that need to be processed
+# deprecated LAPACK routines
+option(BUILD_DEPRECATED "Build deprecated routines" OFF)
+# --------------------------------------------------
+# BLAS
option(USE_OPTIMIZED_BLAS "Whether or not to use an optimized BLAS library instead of included netlib BLAS" OFF)
-
+option(BUILD_BLAS "Build BLAS" OFF)
# Check the usage of the user provided BLAS libraries
if(BLAS_LIBRARIES)
include(CheckFortranFunctionExists)
set(CMAKE_REQUIRED_LIBRARIES ${BLAS_LIBRARIES})
CHECK_FORTRAN_FUNCTION_EXISTS("dgemm" BLAS_FOUND)
- unset( CMAKE_REQUIRED_LIBRARIES )
+ unset(CMAKE_REQUIRED_LIBRARIES)
if(BLAS_FOUND)
message(STATUS "--> BLAS supplied by user is WORKING, will use ${BLAS_LIBRARIES}.")
- else(BLAS_FOUND)
- message(ERROR "--> BLAS supplied by user is not WORKING, CANNOT USE ${BLAS_LIBRARIES}.")
- message(ERROR "--> Will use REFERENCE BLAS (by default)")
- message(ERROR "--> Or Correct your BLAS_LIBRARIES entry ")
- message(ERROR "--> Or Consider checking USE_OPTIMIZED_BLAS")
- endif(BLAS_FOUND)
+ else()
+ message(SEND_ERROR "--> BLAS supplied by user is NOT WORKING, cannot use ${BLAS_LIBRARIES}.")
+ endif()
# User did not provide a BLAS Library but specified to search for one
-elseif( USE_OPTIMIZED_BLAS )
- find_package( BLAS )
-endif (BLAS_LIBRARIES)
+elseif(USE_OPTIMIZED_BLAS)
+ find_package(BLAS)
-# Neither user specified or optimized BLAS libraries can be used
-if(NOT BLAS_FOUND)
- message(STATUS "Using supplied NETLIB BLAS implementation")
- add_subdirectory(BLAS)
- set( BLAS_LIBRARIES blas )
-else()
- set( CMAKE_EXE_LINKER_FLAGS
- "${CMAKE_EXE_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
- CACHE STRING "Linker flags for executables" FORCE)
- set( CMAKE_MODULE_LINKER_FLAGS
- "${CMAKE_MODULE_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
- CACHE STRING "Linker flags for modules" FORCE)
- set( CMAKE_SHARED_LINKER_FLAGS
- "${CMAKE_SHARED_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
- CACHE STRING "Linker flags for shared libs" FORCE)
-endif( NOT BLAS_FOUND )
+elseif(BUILD_BLAS)
+ set(BLAS_LIBRARIES blas)
+ set(BLAS_FOUND TRUE)
+ add_subdirectory(BLAS)
+endif()
# --------------------------------------------------
# CBLAS
-option(CBLAS "Build CBLAS" OFF)
+option(BUILD_CBLAS "Build CBLAS" OFF)
-if(CBLAS)
+if(BUILD_CBLAS)
+ set(NEED_BLAS TRUE)
add_subdirectory(CBLAS)
-endif(CBLAS)
+endif(BUILD_CBLAS)
# --------------------------------------------------
# XBLAS
-
option(USE_XBLAS "Build extended precision (needs XBLAS)" OFF)
-if (USE_XBLAS)
+
+if(USE_XBLAS)
find_library(XBLAS_LIBRARY NAMES xblas)
endif(USE_XBLAS)
-
-option(USE_OPTIMIZED_LAPACK "Whether or not to use an optimized LAPACK library instead of included netlib LAPACK" OFF)
# --------------------------------------------------
# LAPACK
-# User did not provide a LAPACK Library but specified to search for one
-if( USE_OPTIMIZED_LAPACK )
- find_package( LAPACK )
-endif (USE_OPTIMIZED_LAPACK)
+option(USE_OPTIMIZED_LAPACK "Whether or not to use an optimized LAPACK library instead of included netlib LAPACK" OFF)
+option(BUILD_LAPACK "Build LAPACK" OFF)
# Check the usage of the user provided or automatically found LAPACK libraries
if(LAPACK_LIBRARIES)
include(CheckFortranFunctionExists)
set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES})
# Check if new routine of 3.4.0 is in LAPACK_LIBRARIES
- CHECK_FORTRAN_FUNCTION_EXISTS("dgeqrt" LATESTLAPACK_FOUND)
- unset( CMAKE_REQUIRED_LIBRARIES )
- if(LATESTLAPACK_FOUND)
+ CHECK_FORTRAN_FUNCTION_EXISTS("dgeqrt" LAPACK_FOUND)
+ unset(CMAKE_REQUIRED_LIBRARIES)
+ if(LAPACK_FOUND)
message(STATUS "--> LAPACK supplied by user is WORKING, will use ${LAPACK_LIBRARIES}.")
- else(LAPACK_FOUND)
- message(ERROR "--> LAPACK supplied by user is not WORKING or is older than LAPACK 3.4.0, CANNOT USE ${LAPACK_LIBRARIES}.")
- message(ERROR "--> Will use REFERENCE LAPACK (by default)")
- message(ERROR "--> Or Correct your LAPACK_LIBRARIES entry ")
- message(ERROR "--> Or Consider checking USE_OPTIMIZED_LAPACK")
- endif(LATESTLAPACK_FOUND)
-endif (LAPACK_LIBRARIES)
+ else()
+ message(SEND_ERROR "--> LAPACK supplied by user is NOT WORKING or is older than LAPACK 3.4.0, cannot use ${LAPACK_LIBRARIES}.")
+ endif()
+
+# User did not provide a LAPACK Library but specified to search for one
+elseif(USE_OPTIMIZED_LAPACK)
+ find_package(LAPACK)
+
+elseif(BUILD_LAPACK)
+ set(LAPACK_LIBRARIES lapack)
+ set(LAPACK_FOUND TRUE)
+
+ set(NEED_BLAS TRUE)
+
+ # Check second function
+ include(CheckTimeFunction)
+ set(TIME_FUNC NONE ${TIME_FUNC})
+ CHECK_TIME_FUNCTION(NONE TIME_FUNC)
+ CHECK_TIME_FUNCTION(INT_CPU_TIME TIME_FUNC)
+ CHECK_TIME_FUNCTION(EXT_ETIME TIME_FUNC)
+ CHECK_TIME_FUNCTION(EXT_ETIME_ TIME_FUNC)
+ CHECK_TIME_FUNCTION(INT_ETIME TIME_FUNC)
+ message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as timing function.")
+
+ set(SECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f)
+ set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
-# Neither user specified or optimized LAPACK libraries can be used
-if(NOT LATESTLAPACK_FOUND)
- message(STATUS "Using supplied NETLIB LAPACK implementation")
- set( LAPACK_LIBRARIES lapack )
add_subdirectory(SRC)
-else()
- set( CMAKE_EXE_LINKER_FLAGS
- "${CMAKE_EXE_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
- CACHE STRING "Linker flags for executables" FORCE)
- set( CMAKE_MODULE_LINKER_FLAGS
- "${CMAKE_MODULE_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
- CACHE STRING "Linker flags for modules" FORCE)
- set( CMAKE_SHARED_LINKER_FLAGS
- "${CMAKE_SHARED_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
- CACHE STRING "Linker flags for shared libs" FORCE)
-endif( NOT LATESTLAPACK_FOUND )
-
-message(STATUS "BUILD TESTING : ${BUILD_TESTING}" )
-if(BUILD_TESTING)
- add_subdirectory(TESTING)
-endif(BUILD_TESTING)
-# deprecated LAPACK routines
-option(BUILD_DEPRECATED "Build deprecated routines" OFF)
+ message(STATUS "BUILD TESTING : ${BUILD_TESTING}")
+ if(BUILD_TESTING)
+ add_subdirectory(TESTING)
+ endif()
+
+ 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})
+endif()
# --------------------------------------------------
# LAPACKE
-option(LAPACKE "Build LAPACKE" OFF)
+option(BUILD_LAPACKE "Build LAPACKE" OFF)
# LAPACKE has also the interface to some routines from tmglib,
# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
option(LAPACKE_WITH_TMG "Build LAPACKE with tmglib routines" OFF)
if (LAPACKE_WITH_TMG)
- set(LAPACKE ON)
+ set(BUILD_LAPACKE ON)
if(NOT BUILD_TESTING)
add_subdirectory(TESTING/MATGEN)
endif(NOT BUILD_TESTING)
endif(LAPACKE_WITH_TMG)
-if(LAPACKE)
+if(BUILD_LAPACKE)
+ set(NEED_LAPACK TRUE)
add_subdirectory(LAPACKE)
-endif(LAPACKE)
-
-# --------------------------------------------------
-# CPACK Packaging
-
-SET(CPACK_PACKAGE_NAME "LAPACK")
-SET(CPACK_PACKAGE_VENDOR "University of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd")
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LAPACK- Linear Algebra Package")
-set(CPACK_PACKAGE_VERSION_MAJOR 3)
-set(CPACK_PACKAGE_VERSION_MINOR 5)
-set(CPACK_PACKAGE_VERSION_PATCH 0)
-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
-SET(CPACK_PACKAGE_INSTALL_DIRECTORY "LAPACK")
-IF(WIN32 AND NOT UNIX)
- # There is a bug in NSI that does not handle full unix paths properly. Make
- # sure there is at least one set of four (4) backlasshes.
- SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\http://icl.cs.utk.edu/lapack-forum")
- SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.netlib.org/lapack")
- SET(CPACK_NSIS_CONTACT "lapack@eecs.utk.edu")
- SET(CPACK_NSIS_MODIFY_PATH ON)
- SET(CPACK_NSIS_DISPLAY_NAME "LAPACK-${LAPACK_VERSION}")
- set(CPACK_PACKAGE_RELOCATABLE "true")
-ELSE(WIN32 AND NOT UNIX)
- SET(CPACK_GENERATOR "TGZ")
- SET(CPACK_SOURCE_GENERATOR TGZ)
- SET(CPACK_SOURCE_PACKAGE_FILE_NAME "lapack-${LAPACK_VERSION}" )
- SET(CPACK_SOURCE_IGNORE_FILES ~$ .svn ${CPACK_SOURCE_IGNORE_FILES} )
-ENDIF(WIN32 AND NOT UNIX)
-INCLUDE(CPack)
+endif(BUILD_LAPACKE)
-# --------------------------------------------------
-# By default static library
-OPTION(BUILD_SHARED_LIBS "Build shared libraries" OFF )
-OPTION(BUILD_STATIC_LIBS "Build static libraries" ON )
-#OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
-
-if(NOT BLAS_FOUND)
- set(ALL_TARGETS ${ALL_TARGETS} blas)
-endif(NOT BLAS_FOUND)
-
-if(NOT LATESTLAPACK_FOUND)
- set(ALL_TARGETS ${ALL_TARGETS} lapack)
-endif(NOT LATESTLAPACK_FOUND)
-
-if(BUILD_TESTING OR LAPACKE_WITH_TMG)
- set(ALL_TARGETS ${ALL_TARGETS} tmglib)
-endif(BUILD_TESTING OR LAPACKE_WITH_TMG)
-
-# Export lapack targets, not including lapacke, from the
-# install tree, if any.
-set(_lapack_config_install_guard_target "")
-if(ALL_TARGETS)
- install(EXPORT lapack-targets
- DESTINATION ${LIBRARY_DIR}/cmake/lapack-${LAPACK_VERSION})
-
- # Choose one of the lapack targets to use as a guard for
- # lapack-config.cmake to load targets from the install tree.
- list(GET ALL_TARGETS 0 _lapack_config_install_guard_target)
+# Neither user specified or optimized BLAS libraries can be used
+if(NEED_BLAS AND NOT BLAS_FOUND)
+ message(FATAL_ERROR "--> No BLAS library found. Specify BLAS_LIBRARIES or enable USE_OPTIMIZED_BLAS or BUILD_BLAS.")
endif()
-# Include cblas in targets exported from the build tree.
-if(CBLAS)
- set(ALL_TARGETS ${ALL_TARGETS} cblas)
-endif(CBLAS)
-
-# Include lapacke in targets exported from the build tree.
-if(LAPACKE)
- set(ALL_TARGETS ${ALL_TARGETS} lapacke)
-endif(LAPACKE)
-
-# Export lapack and lapacke targets from the build tree, if any.
-set(_lapack_config_build_guard_target "")
-if(ALL_TARGETS)
- export(TARGETS ${ALL_TARGETS} FILE lapack-targets.cmake)
-
- # Choose one of the lapack or lapacke targets to use as a guard
- # for lapack-config.cmake to load targets from the build tree.
- list(GET ALL_TARGETS 0 _lapack_config_build_guard_target)
+# Neither user specified or optimized LAPACK libraries can be used
+if(NEED_LAPACK AND NOT LAPACK_FOUND)
+ message(FATAL_ERROR "--> No LAPACK library found. Specify LAPACK_LIBRARIES or enable USE_OPTIMIZED_LAPACK or BUILD_LAPACK.")
endif()
-
-configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-build.cmake.in
- ${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY)
-
-
-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}
- )
-
-configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-install.cmake.in
- ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake @ONLY)
-
-include(CMakePackageConfigHelpers)
-write_basic_package_version_file(
- ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
- VERSION ${LAPACK_VERSION}
- COMPATIBILITY SameMajorVersion
- )
-
-install(FILES
- ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake
- ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
- DESTINATION ${LIBRARY_DIR}/cmake/lapack-${LAPACK_VERSION}
- )
diff --git a/LAPACKE/CMakeLists.txt b/LAPACKE/CMakeLists.txt
--- a/LAPACKE/CMakeLists.txt
+++ b/LAPACKE/CMakeLists.txt
@@ -1,8 +1,6 @@
message(STATUS "LAPACKE enable")
enable_language(C)
-set(LAPACK_INSTALL_EXPORT_NAME lapacke-targets)
-
# Create a header file netlib.h for the routines called in my C programs
include(FortranCInterface)
FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/include/lapacke_mangling.h
@@ -74,19 +72,3 @@
${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc
DESTINATION ${PKG_CONFIG_DIR}
)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-version.cmake.in
- ${LAPACK_BINARY_DIR}/lapacke-config-version.cmake @ONLY)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-build.cmake.in
- ${LAPACK_BINARY_DIR}/lapacke-config.cmake @ONLY)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-install.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake @ONLY)
-install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake
- ${LAPACK_BINARY_DIR}/lapacke-config-version.cmake
- DESTINATION lib/cmake/lapacke-${LAPACK_VERSION}
- )
-
-install(EXPORT lapacke-targets
- DESTINATION lib/cmake/lapacke-${LAPACK_VERSION})
diff --git a/LAPACKE/cmake/lapacke-config-build.cmake.in b/LAPACKE/cmake/lapacke-config-build.cmake.in
deleted file mode 100644
--- a/LAPACKE/cmake/lapacke-config-build.cmake.in
+++ /dev/null
@@ -1,14 +0,0 @@
-# Load the LAPACK package with which we were built.
-set(LAPACK_DIR "@LAPACK_BINARY_DIR@")
-find_package(LAPACK NO_MODULE)
-
-# Load lapack targets from the build tree, including lapacke targets.
-if(NOT TARGET lapacke)
- include("@LAPACK_BINARY_DIR@/lapack-targets.cmake")
-endif()
-
-# Report lapacke header search locations.
-set(LAPACKE_INCLUDE_DIRS "@LAPACK_SOURCE_DIR@/lapacke/include")
-
-# Report lapacke libraries.
-set(LAPACKE_LIBRARIES lapacke)
diff --git a/LAPACKE/cmake/lapacke-config-install.cmake.in b/LAPACKE/cmake/lapacke-config-install.cmake.in
deleted file mode 100644
--- a/LAPACKE/cmake/lapacke-config-install.cmake.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Compute locations from <prefix>/lib/cmake/lapacke-<v>/<self>.cmake
-get_filename_component(_LAPACKE_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-get_filename_component(_LAPACKE_PREFIX "${_LAPACKE_SELF_DIR}" PATH)
-get_filename_component(_LAPACKE_PREFIX "${_LAPACKE_PREFIX}" PATH)
-get_filename_component(_LAPACKE_PREFIX "${_LAPACKE_PREFIX}" PATH)
-
-# Load the LAPACK package with which we were built.
-set(LAPACK_DIR "${_LAPACKE_PREFIX}/lib/cmake/lapack-@LAPACK_VERSION@")
-find_package(LAPACK NO_MODULE)
-
-# Load lapacke targets from the install tree.
-if(NOT TARGET lapacke)
- include(${_LAPACKE_SELF_DIR}/lapacke-targets.cmake)
-endif()
-
-# Report lapacke header search locations.
-set(LAPACKE_INCLUDE_DIRS ${_LAPACKE_PREFIX}/include)
-
-# Report lapacke libraries.
-set(LAPACKE_LIBRARIES lapacke)
-
-unset(_LAPACKE_PREFIX)
-unset(_LAPACKE_SELF_DIR)
diff --git a/LAPACKE/cmake/lapacke-config-version.cmake.in b/LAPACKE/cmake/lapacke-config-version.cmake.in
deleted file mode 100644
--- a/LAPACKE/cmake/lapacke-config-version.cmake.in
+++ /dev/null
@@ -1,8 +0,0 @@
-set(PACKAGE_VERSION "@LAPACK_VERSION@")
-if(NOT ${PACKAGE_FIND_VERSION} VERSION_GREATER ${PACKAGE_VERSION})
- set(PACKAGE_VERSION_COMPATIBLE 1)
- if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${PACKAGE_VERSION})
- set(PACKAGE_VERSION_EXACT 1)
- endif()
-endif()
-

View File

@ -0,0 +1,117 @@
diff --git a/BLAS/CMakeLists.txt b/BLAS/CMakeLists.txt
--- a/BLAS/CMakeLists.txt
+++ b/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 a/BLAS/blas.pc.in b/BLAS/blas.pc.in
--- a/BLAS/blas.pc.in
+++ b/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 a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt
--- a/CBLAS/CMakeLists.txt
+++ b/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 a/CBLAS/cblas.pc.in b/CBLAS/cblas.pc.in
--- a/CBLAS/cblas.pc.in
+++ b/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 a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/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 a/LAPACKE/CMakeLists.txt b/LAPACKE/CMakeLists.txt
--- a/LAPACKE/CMakeLists.txt
+++ b/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 a/LAPACKE/lapacke.pc.in b/LAPACKE/lapacke.pc.in
--- a/LAPACKE/lapacke.pc.in
+++ b/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 a/lapack.pc.in b/lapack.pc.in
--- a/lapack.pc.in
+++ b/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

@ -0,0 +1,232 @@
diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
--- a/BLAS/SRC/CMakeLists.txt
+++ b/BLAS/SRC/CMakeLists.txt
@@ -137,13 +137,9 @@
add_library(blas ${ALLOBJ})
-#if(UNIX)
-# target_link_libraries(blas m)
-#endif()
set_target_properties(
blas PROPERTIES
VERSION ${LAPACK_VERSION}
SOVERSION ${LAPACK_MAJOR_VERSION}
)
-target_link_libraries(blas)
lapack_install_library(blas)
diff --git a/BLAS/blas.pc.in b/BLAS/blas.pc.in
--- a/BLAS/blas.pc.in
+++ b/BLAS/blas.pc.in
@@ -6,4 +6,3 @@
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/blas/
Libs: -L${libdir} -lblas
-Libs.private: -lm
diff --git a/CBLAS/cblas.pc.in b/CBLAS/cblas.pc.in
--- a/CBLAS/cblas.pc.in
+++ b/CBLAS/cblas.pc.in
@@ -6,4 +6,4 @@
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/blas/#_cblas
Libs: -L${libdir} -lcblas
-Requires: blas
+Requires.private: blas
diff --git a/CBLAS/examples/CMakeLists.txt b/CBLAS/examples/CMakeLists.txt
--- a/CBLAS/examples/CMakeLists.txt
+++ b/CBLAS/examples/CMakeLists.txt
@@ -1,8 +1,8 @@
add_executable(xexample1_CBLAS cblas_example1.c )
add_executable(xexample2_CBLAS cblas_example2.c )
-target_link_libraries(xexample1_CBLAS cblas ${BLAS_LIBRARIES})
-target_link_libraries(xexample2_CBLAS cblas ${BLAS_LIBRARIES})
+target_link_libraries(xexample1_CBLAS cblas)
+target_link_libraries(xexample2_CBLAS cblas)
add_test(example1_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample1_CBLAS)
add_test(example2_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample2_CBLAS)
diff --git a/CBLAS/src/CMakeLists.txt b/CBLAS/src/CMakeLists.txt
--- a/CBLAS/src/CMakeLists.txt
+++ b/CBLAS/src/CMakeLists.txt
@@ -164,5 +164,9 @@
endif(CBLAS_COMPLEX16)
add_library(cblas ${ALLOBJ})
-target_link_libraries(cblas ${BLAS_LIBRARIES} )
+target_link_libraries(cblas PRIVATE ${BLAS_LIBRARIES})
+set_target_properties(
+ cblas PROPERTIES
+ LINKER_LANGUAGE C
+ )
lapack_install_library(cblas)
diff --git a/CBLAS/testing/CMakeLists.txt b/CBLAS/testing/CMakeLists.txt
--- a/CBLAS/testing/CMakeLists.txt
+++ b/CBLAS/testing/CMakeLists.txt
@@ -55,9 +55,9 @@
add_executable(xscblat2 c_sblat2.f ${STESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xscblat3 c_sblat3.f ${STESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
- target_link_libraries(xscblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xscblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xscblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xscblat1 cblas)
+ target_link_libraries(xscblat2 cblas)
+ target_link_libraries(xscblat3 cblas)
add_cblas_test(stest1.out "" xscblat1)
add_cblas_test(stest2.out sin2 xscblat2)
@@ -71,9 +71,9 @@
add_executable(xdcblat2 c_dblat2.f ${DTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xdcblat3 c_dblat3.f ${DTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
- target_link_libraries(xdcblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xdcblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xdcblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xdcblat1 cblas)
+ target_link_libraries(xdcblat2 cblas)
+ target_link_libraries(xdcblat3 cblas)
add_cblas_test(dtest1.out "" xdcblat1)
add_cblas_test(dtest2.out din2 xdcblat2)
@@ -87,9 +87,9 @@
add_executable(xccblat2 c_cblat2.f ${CTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xccblat3 c_cblat3.f ${CTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
- target_link_libraries(xccblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xccblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xccblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xccblat1 cblas)
+ target_link_libraries(xccblat2 cblas)
+ target_link_libraries(xccblat3 cblas)
add_cblas_test(ctest1.out "" xccblat1)
add_cblas_test(ctest2.out cin2 xccblat2)
@@ -103,9 +103,9 @@
add_executable(xzcblat2 c_zblat2.f ${ZTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xzcblat3 c_zblat3.f ${ZTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
- target_link_libraries(xzcblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xzcblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xzcblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xzcblat1 cblas)
+ target_link_libraries(xzcblat2 cblas)
+ target_link_libraries(xzcblat3 cblas)
add_cblas_test(ztest1.out "" xzcblat1)
add_cblas_test(ztest2.out zin2 xzcblat2)
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 2.8.10)
-project(LAPACK Fortran)
+project(LAPACK C Fortran)
set(LAPACK_MAJOR_VERSION 3)
set(LAPACK_MINOR_VERSION 6)
diff --git a/LAPACKE/CMakeLists.txt b/LAPACKE/CMakeLists.txt
--- a/LAPACKE/CMakeLists.txt
+++ b/LAPACKE/CMakeLists.txt
@@ -46,17 +46,21 @@
if (USE_XBLAS)
add_library(lapacke ${SRC_OBJ} ${SRCX_OBJ} ${UTILS_OBJ})
- target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
+ target_link_libraries(lapacke PRIVATE ${LAPACK_LIBRARIES})
else (USE_XBLAS)
if (LAPACKE_WITH_TMG)
add_library(lapacke ${SRC_OBJ} ${MATGEN_OBJ} ${UTILS_OBJ})
- target_link_libraries(lapacke tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(lapacke PRIVATE tmglib ${LAPACK_LIBRARIES})
else (LAPACKE_WITH_TMG)
add_library(lapacke ${SRC_OBJ} ${UTILS_OBJ})
- target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(lapacke PRIVATE ${LAPACK_LIBRARIES})
endif(LAPACKE_WITH_TMG)
endif(USE_XBLAS)
+set_target_properties(
+ lapacke PROPERTIES
+ LINKER_LANGUAGE C
+ )
lapack_install_library(lapacke)
INSTALL( FILES ${LAPACKE_INCLUDE} DESTINATION include )
diff --git a/LAPACKE/example/CMakeLists.txt b/LAPACKE/example/CMakeLists.txt
--- a/LAPACKE/example/CMakeLists.txt
+++ b/LAPACKE/example/CMakeLists.txt
@@ -3,10 +3,10 @@
add_executable(xexample_DGELS_rowmajor example_DGELS_rowmajor.c lapacke_example_aux.c lapacke_example_aux.h)
add_executable(xexample_DGELS_colmajor example_DGELS_colmajor.c lapacke_example_aux.c lapacke_example_aux.h)
-target_link_libraries(xexample_DGESV_rowmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGESV_colmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGELS_rowmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGELS_colmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+target_link_libraries(xexample_DGESV_rowmajor lapacke)
+target_link_libraries(xexample_DGESV_colmajor lapacke)
+target_link_libraries(xexample_DGELS_rowmajor lapacke)
+target_link_libraries(xexample_DGELS_colmajor lapacke)
add_test(example_DGESV_rowmajor ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample_DGESV_rowmajor)
add_test(example_DGESV_colmajor ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample_DGESV_colmajor)
diff --git a/LAPACKE/lapacke.pc.in b/LAPACKE/lapacke.pc.in
--- a/LAPACKE/lapacke.pc.in
+++ b/LAPACKE/lapacke.pc.in
@@ -6,4 +6,4 @@
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/lapack/#_standard_c_language_apis_for_lapack
Libs: -L${libdir} -llapacke
-Requires: lapack blas
+Requires.private: lapack
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
--- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt
@@ -455,12 +455,10 @@
list(REMOVE_DUPLICATES ALLOBJ)
add_library(lapack ${ALLOBJ} ${ALLXOBJ})
-target_link_libraries(lapack ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
-
+target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
set_target_properties(
lapack PROPERTIES
VERSION ${LAPACK_VERSION}
SOVERSION ${LAPACK_MAJOR_VERSION}
)
-
lapack_install_library(lapack)
diff --git a/TESTING/EIG/CMakeLists.txt b/TESTING/EIG/CMakeLists.txt
--- a/TESTING/EIG/CMakeLists.txt
+++ b/TESTING/EIG/CMakeLists.txt
@@ -119,7 +119,7 @@
macro(add_eig_executable name )
add_executable(${name} ${ARGN})
- target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES})
+ target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
endmacro(add_eig_executable)
if (BUILD_SINGLE)
diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt
--- a/TESTING/LIN/CMakeLists.txt
+++ b/TESTING/LIN/CMakeLists.txt
@@ -193,7 +193,7 @@
macro(add_lin_executable name )
add_executable(${name} ${ARGN})
- target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES})
+ target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
endmacro(add_lin_executable)
IF(BUILD_SINGLE)
diff --git a/lapack.pc.in b/lapack.pc.in
--- a/lapack.pc.in
+++ b/lapack.pc.in
@@ -6,4 +6,4 @@
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/lapack/
Libs: -L${libdir} -llapack
-Requires: blas
+Requires.private: blas

View File

@ -0,0 +1,776 @@
diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
--- a/BLAS/SRC/CMakeLists.txt
+++ b/BLAS/SRC/CMakeLists.txt
@@ -113,29 +113,22 @@
set(ZBLAS3 zgemm.f zsymm.f zsyrk.f zsyr2k.f ztrmm.f ztrsm.f
zhemm.f zherk.f zher2k.f)
-# default build all of it
-set(ALLOBJ ${SBLAS1} ${SBLAS2} ${SBLAS3} ${DBLAS1} ${DBLAS2} ${DBLAS3}
- ${CBLAS1} ${CBLAS2} ${CBLAS3} ${ZBLAS1}
- ${ZBLAS2} ${ZBLAS3} ${ALLBLAS})
-
-if(BLAS_SINGLE)
- set(ALLOBJ ${SBLAS1} ${ALLBLAS}
- ${SBLAS2} ${SBLAS3})
+
+set(ALLOBJ)
+if(BUILD_SINGLE)
+ list(APPEND ALLOBJ ${SBLAS1} ${ALLBLAS} ${SBLAS2} ${SBLAS3})
endif()
-if(BLAS_DOUBLE)
- set(ALLOBJ ${DBLAS1} ${ALLBLAS}
- ${DBLAS2} ${DBLAS3})
+if(BUILD_DOUBLE)
+ list(APPEND ALLOBJ ${DBLAS1} ${ALLBLAS} ${DBLAS2} ${DBLAS3})
endif()
-if(BLAS_COMPLEX)
- set(ALLOBJ ${BLASLIB} ${CBLAS1} ${CB1AUX}
- ${ALLBLAS} ${CBLAS2})
+if(BUILD_COMPLEX)
+ list(APPEND ALLOBJ ${BLASLIB} ${CBLAS1} ${CB1AUX} ${ALLBLAS} ${CBLAS2} ${CBLAS3})
endif()
-if(BLAS_COMPLEX16)
- set(ALLOBJ ${BLASLIB} ${ZBLAS1} ${ZB1AUX}
- ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
+if(BUILD_COMPLEX16)
+ list(APPEND ALLOBJ ${BLASLIB} ${ZBLAS1} ${ZB1AUX} ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
endif()
-
-
+list(REMOVE_DUPLICATES ALLOBJ)
+
add_library(blas ${ALLOBJ})
set_target_properties(
blas PROPERTIES
diff --git a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt
--- a/CBLAS/CMakeLists.txt
+++ b/CBLAS/CMakeLists.txt
@@ -65,9 +65,9 @@
list(GET ALL_TARGETS 0 _cblas_config_build_guard_target)
endif()
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/cblas-config-version.cmake.in
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-version.cmake.in
${LAPACK_BINARY_DIR}/cblas-config-version.cmake @ONLY)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/cblas-config-build.cmake.in
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-build.cmake.in
${LAPACK_BINARY_DIR}/cblas-config.cmake @ONLY)
diff --git a/CBLAS/src/CMakeLists.txt b/CBLAS/src/CMakeLists.txt
--- a/CBLAS/src/CMakeLists.txt
+++ b/CBLAS/src/CMakeLists.txt
@@ -28,34 +28,26 @@
cblas_ddot.c cblas_dsdot.c cblas_dnrm2.c cblas_dasum.c
cblas_idamax.c ddotsub.f dsdotsub.f dnrm2sub.f
dasumsub.f idamaxsub.f)
-
#
# All object files for single complex precision
#
set (CLEV1 cblas_cswap.c cblas_cscal.c cblas_csscal.c cblas_ccopy.c
cblas_caxpy.c cblas_cdotu_sub.c cblas_cdotc_sub.c
cblas_icamax.c cdotcsub.f cdotusub.f icamaxsub.f)
-
#
# All object files for double complex precision
#
set (ZLEV1 cblas_zswap.c cblas_zscal.c cblas_zdscal.c cblas_zcopy.c
- cblas_zaxpy.c cblas_zdotu_sub.c cblas_zdotc_sub.c cblas_dznrm2.c
- cblas_dzasum.c cblas_izamax.c zdotcsub.f zdotusub.f
- dzasumsub.f dznrm2sub.f izamaxsub.f)
-
-
+ cblas_zaxpy.c cblas_zdotu_sub.c cblas_zdotc_sub.c
+ cblas_izamax.c zdotcsub.f zdotusub.f izamaxsub.f)
#
# Common files for single complex precision
#
set (SCLEV1 cblas_scasum.c scasumsub.f cblas_scnrm2.c scnrm2sub.f)
-
-
#
-# All object files
+# Common files for double complex precision
#
-set (ALEV1 ${slev1} ${dlev1} ${clev1} ${zlev1} ${sclev1})
-
+set (DZLEV1 cblas_dzasum.c dzasumsub.f cblas_dznrm2.c dznrm2sub.f)
#
#
@@ -72,8 +64,6 @@
cblas_sspr.c cblas_sspr2.c cblas_ssymv.c cblas_ssyr.c cblas_ssyr2.c
cblas_stbmv.c cblas_stbsv.c cblas_stpmv.c cblas_stpsv.c cblas_strmv.c
cblas_strsv.c)
-
-
#
# All object files for double real precision
#
@@ -81,7 +71,6 @@
cblas_dspr.c cblas_dspr2.c cblas_dsymv.c cblas_dsyr.c cblas_dsyr2.c
cblas_dtbmv.c cblas_dtbsv.c cblas_dtpmv.c cblas_dtpsv.c cblas_dtrmv.c
cblas_dtrsv.c)
-
#
# All object files for single complex precision
#
@@ -89,7 +78,6 @@
cblas_ctrmv.c cblas_ctbmv.c cblas_ctpmv.c cblas_ctrsv.c cblas_ctbsv.c
cblas_ctpsv.c cblas_cgeru.c cblas_cgerc.c cblas_cher.c cblas_cher2.c
cblas_chpr.c cblas_chpr2.c)
-
#
# All object files for double complex precision
#
@@ -97,10 +85,6 @@
cblas_ztrmv.c cblas_ztbmv.c cblas_ztpmv.c cblas_ztrsv.c cblas_ztbsv.c
cblas_ztpsv.c cblas_zgeru.c cblas_zgerc.c cblas_zher.c cblas_zher2.c
cblas_zhpr.c cblas_zhpr2.c)
-#
-# All object files
-#
-set (AVEL2 ${slev2} ${dlev2} ${clev2} ${zlev2})
#
#
@@ -132,36 +116,21 @@
set (ZLEV3 cblas_zgemm.c cblas_zsymm.c cblas_zhemm.c cblas_zherk.c
cblas_zher2k.c cblas_ztrmm.c cblas_ztrsm.c cblas_zsyrk.c
cblas_zsyr2k.c)
-#
-# All object files
-#
-set (ALEV3 ${slev3} ${dlev3} ${clev3} ${zlev3})
-
-# default build all of it
-set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND}
- ${DLEV1} ${DLEV2} ${DLEV3}
- ${CLEV1} ${CLEV2} ${CLEV3}
- ${ZLEV1} ${ZLEV2} ${ZLEV3} )
-
-# Single real precision
-if(CBLAS_SINGLE)
- set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND})
-endif(CBLAS_SINGLE)
-
-# Double real precision
-if(CBLAS_DOUBLE)
- set(ALLOBJ ${DLEV1} ${DLEV2} ${DLEV3} ${ERRHAND})
-endif(CBLAS_DOUBLE)
-
-# Single complex precision
-if (CBLAS_COMPLEX)
- set(ALLOBJ ${CLEV1} ${SCLEV1} ${CLEV2} ${CLEV3} ${ERRHAND})
-endif(CBLAS_COMPLEX)
-# Double complex precision
-if (CBLAS_COMPLEX16)
- set(ALLOBJ ${ZLEV1} ${ZLEV2} ${ZLEV3} ${ERRHAND})
-endif(CBLAS_COMPLEX16)
+set(ALLOBJ)
+if(BUILD_SINGLE)
+ list(APPEND ALLOBJ ${SLEV1} ${SCLEV1} ${ERRHAND} ${SLEV2} ${SLEV3})
+endif()
+if(BUILD_DOUBLE)
+ list(APPEND ALLOBJ ${DLEV1} ${DZLEV1} ${ERRHAND} ${DLEV2} ${DLEV3})
+endif()
+if(BUILD_COMPLEX)
+ list(APPEND ALLOBJ ${CLEV1} ${SCLEV1} ${ERRHAND} ${CLEV2} ${CLEV3})
+endif()
+if(BUILD_COMPLEX16)
+ list(APPEND ALLOBJ ${ZLEV1} ${DZLEV1} ${ERRHAND} ${ZLEV2} ${ZLEV3})
+endif()
+list(REMOVE_DUPLICATES ALLOBJ)
add_library(cblas ${ALLOBJ})
target_link_libraries(cblas PRIVATE ${BLAS_LIBRARIES})
diff --git a/CBLAS/src/Makefile b/CBLAS/src/Makefile
--- a/CBLAS/src/Makefile
+++ b/CBLAS/src/Makefile
@@ -52,9 +52,8 @@
# All object files for double complex precision
#
zlev1 = cblas_zswap.o cblas_zscal.o cblas_zdscal.o cblas_zcopy.o \
- cblas_zaxpy.o cblas_zdotu_sub.o cblas_zdotc_sub.o cblas_dznrm2.o \
- cblas_dzasum.o cblas_izamax.o zdotcsub.o zdotusub.o \
- dzasumsub.o dznrm2sub.o izamaxsub.o
+ cblas_zaxpy.o cblas_zdotu_sub.o cblas_zdotc_sub.o \
+ cblas_izamax.o zdotcsub.o zdotusub.o izamaxsub.o
#
# Common files for single / complex precision
@@ -62,9 +61,14 @@
sclev1 = cblas_scasum.o scasumsub.o cblas_scnrm2.o scnrm2sub.o
#
+# Common files for double / complex precision
+#
+dzlev1 = cblas_dzasum.o dzasumsub.o cblas_dznrm2.o dznrm2sub.o
+
+#
# All object files
#
-alev1 = $(slev1) $(dlev1) $(clev1) $(zlev1) $(sclev1)
+alev1 = $(slev1) $(dlev1) $(clev1) $(zlev1) $(sclev1) $(dzlev1)
#
@@ -77,8 +81,8 @@
$(RANLIB) $(CBLASLIB)
# Double real precision
-dlib1: $(dlev1)
- $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(dlev1)
+dlib1: $(dlev1) $(dzlev1)
+ $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(dlev1) $(dzlev1)
$(RANLIB) $(CBLASLIB)
# Single complex precision
@@ -87,8 +91,8 @@
$(RANLIB) $(CBLASLIB)
# Double complex precision
-zlib1: $(zlev1)
- $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(zlev1)
+zlib1: $(zlev1) $(dzlev1)
+ $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(zlev1) $(dzlev1)
$(RANLIB) $(CBLASLIB)
# All precisions
diff --git a/CBLAS/testing/CMakeLists.txt b/CBLAS/testing/CMakeLists.txt
--- a/CBLAS/testing/CMakeLists.txt
+++ b/CBLAS/testing/CMakeLists.txt
@@ -28,8 +28,6 @@
# Object files for single real precision
SET( STESTL1O c_sblas1.c)
-
-SET( STESTL2O c_sblas2.c c_s2chke.c auxiliary.c c_xerbla.c)
SET( STESTL2O c_sblas2.c c_s2chke.c auxiliary.c c_xerbla.c)
SET( STESTL3O c_sblas3.c c_s3chke.c auxiliary.c c_xerbla.c)
@@ -62,11 +60,9 @@
add_cblas_test(stest1.out "" xscblat1)
add_cblas_test(stest2.out sin2 xscblat2)
add_cblas_test(stest3.out sin3 xscblat3)
-
endif()
if(BUILD_DOUBLE)
-
add_executable(xdcblat1 c_dblat1.f ${DTESTL1O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xdcblat2 c_dblat2.f ${DTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xdcblat3 c_dblat3.f ${DTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
@@ -78,11 +74,9 @@
add_cblas_test(dtest1.out "" xdcblat1)
add_cblas_test(dtest2.out din2 xdcblat2)
add_cblas_test(dtest3.out din3 xdcblat3)
-
endif()
if(BUILD_COMPLEX)
-
add_executable(xccblat1 c_cblat1.f ${CTESTL1O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xccblat2 c_cblat2.f ${CTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xccblat3 c_cblat3.f ${CTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
@@ -94,11 +88,9 @@
add_cblas_test(ctest1.out "" xccblat1)
add_cblas_test(ctest2.out cin2 xccblat2)
add_cblas_test(ctest3.out cin3 xccblat3)
-
endif()
if(BUILD_COMPLEX16)
-
add_executable(xzcblat1 c_zblat1.f ${ZTESTL1O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xzcblat2 c_zblat2.f ${ZTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xzcblat3 c_zblat3.f ${ZTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
@@ -110,5 +102,4 @@
add_cblas_test(ztest1.out "" xzcblat1)
add_cblas_test(ztest2.out zin2 xzcblat2)
add_cblas_test(ztest3.out zin3 xzcblat3)
-
endif()
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -122,7 +122,33 @@
# --------------------------------------------------
# Precision to build
# By default all precisions are generated
+option(BUILD_SINGLE "Build Single Precision" ON)
+option(BUILD_DOUBLE "Build Double Precision" ON)
+option(BUILD_COMPLEX "Build Complex Precision" ON)
+option(BUILD_COMPLEX16 "Build Double Complex Precision" ON)
+
+set(PRECISIONS)
+if(BUILD_SINGLE)
+ message(STATUS "Building Single Precision")
+ list(APPEND PRECISIONS "single")
+endif()
+if(BUILD_DOUBLE)
+ message(STATUS "Building Double Precision")
+ list(APPEND PRECISIONS "double")
+endif()
+if(BUILD_COMPLEX)
+ message(STATUS "Building Complex Precision")
+ list(APPEND PRECISIONS "complex")
+endif()
+if(BUILD_COMPLEX16)
+ message(STATUS "Building Double Complex Precision")
+ list(APPEND PRECISIONS "complex16")
+endif()
+if(NOT PRECISIONS)
+ message(FATAL_ERROR "--> Nothing to build, no precision selected.
+ Please enable at least one of these: BUILD_SINGLE, BUILD_DOUBLE, BUILD_COMPLEX, BUILD_COMPLEX16.")
+endif()
# --------------------------------------------------
# Subdirectories that need to be processed
@@ -214,10 +240,6 @@
if(NOT LATESTLAPACK_FOUND)
message(STATUS "Using supplied NETLIB LAPACK implementation")
set( LAPACK_LIBRARIES lapack )
- option(BUILD_SINGLE "Build LAPACK Single Precision" ON)
- option(BUILD_DOUBLE "Build LAPACK Double Precision" ON)
- option(BUILD_COMPLEX "Build LAPACK Complex Precision" ON)
- option(BUILD_COMPLEX16 "Build LAPACK Double Complex Precision" ON)
add_subdirectory(SRC)
else()
set( CMAKE_EXE_LINKER_FLAGS
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
--- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt
@@ -1,22 +1,28 @@
#######################################################################
# This is the makefile to create a library for LAPACK.
# The files are organized as follows:
-# ALLAUX -- Auxiliary routines called from all precisions
-# ALLXAUX -- Auxiliary routines called from all precisions but
-# only from routines using extra precision.
-# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX
-# DZLAUX -- Auxiliary routines called from both DOUBLE PRECISION
-# and COMPLEX*16
-# SLASRC -- Single precision real LAPACK routines
+# ALLAUX -- Auxiliary routines called from all precisions
+#
+# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX.
+# DZLAUX -- Auxiliary routines called from both DOUBLE and COMPLEX*16.
+#
+# DSLASRC -- Double-single mixed precision real routines called from
+# single, single-extra and double precision real LAPACK
+# routines (i.e. from SLASRC, SXLASRC, DLASRC).
+# ZCLASRC -- Double-single mixed precision complex routines called from
+# single, single-extra and double precision complex LAPACK
+# routines (i.e. from CLASRC, CXLASRC, ZLASRC).
+#
+# SLASRC -- Single precision real LAPACK routines
# SXLASRC -- Single precision real LAPACK routines using extra
# precision.
-# CLASRC -- Single precision complex LAPACK routines
+# CLASRC -- Single precision complex LAPACK routines
# CXLASRC -- Single precision complex LAPACK routines using extra
# precision.
-# DLASRC -- Double precision real LAPACK routines
+# DLASRC -- Double precision real LAPACK routines
# DXLASRC -- Double precision real LAPACK routines using extra
# precision.
-# ZLASRC -- Double precision complex LAPACK routines
+# ZLASRC -- Double precision complex LAPACK routines
# ZXLASRC -- Double precision complex LAPACK routines using extra
# precision.
#
@@ -51,8 +57,6 @@
../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla.f xerbla_array.f
../INSTALL/slamch.f)
-set(ALLXAUX )
-
set(SCLAUX
sbdsdc.f
sbdsqr.f sdisna.f slabad.f slacpy.f sladiv.f slae2.f slaebz.f
@@ -97,8 +101,8 @@
sgels.f sgelsd.f sgelss.f sgelsy.f sgeql2.f sgeqlf.f
sgeqp3.f sgeqr2.f sgeqr2p.f sgeqrf.f sgeqrfp.f sgerfs.f sgerq2.f sgerqf.f
sgesc2.f sgesdd.f sgesv.f sgesvd.f sgesvdx.f sgesvx.f sgetc2.f sgetf2.f
- sgetrf.f sgetrf2.f sgetri.f
- sgetrs.f sggbak.f sggbal.f
+ sgetrf2.f sgetri.f
+ sggbak.f sggbal.f
sgges.f sgges3.f sggesx.f sggev.f sggev3.f sggevx.f
sggglm.f sgghrd.f sgghd3.f sgglse.f sggqrf.f
sggrqf.f sggsvd3.f sggsvp3.f sgtcon.f sgtrfs.f sgtsv.f
@@ -123,7 +127,7 @@
sormr3.f sormrq.f sormrz.f sormtr.f spbcon.f spbequ.f spbrfs.f
spbstf.f spbsv.f spbsvx.f
spbtf2.f spbtrf.f spbtrs.f spocon.f spoequ.f sporfs.f sposv.f
- sposvx.f spotf2.f spotrf.f spotrf2.f spotri.f spotrs.f spstrf.f spstf2.f
+ sposvx.f spotf2.f spotrf2.f spotri.f spstrf.f spstf2.f
sppcon.f sppequ.f
spprfs.f sppsv.f sppsvx.f spptrf.f spptri.f spptrs.f sptcon.f
spteqr.f sptrfs.f sptsv.f sptsvx.f spttrs.f sptts2.f srscl.f
@@ -172,8 +176,8 @@
cgeqr2.f cgeqr2p.f cgeqrf.f cgeqrfp.f cgerfs.f cgerq2.f cgerqf.f
cgesc2.f cgesdd.f cgesv.f cgesvd.f cgesvdx.f
cgesvj.f cgejsv.f cgsvj0.f cgsvj1.f
- cgesvx.f cgetc2.f cgetf2.f cgetrf.f cgetrf2.f
- cgetri.f cgetrs.f
+ cgesvx.f cgetc2.f cgetf2.f cgetrf2.f
+ cgetri.f
cggbak.f cggbal.f
cgges.f cgges3.f cggesx.f cggev.f cggev3.f cggevx.f
cggglm.f cgghrd.f cgghd3.f cgglse.f cggqrf.f cggrqf.f
@@ -207,7 +211,7 @@
claswp.f clasyf.f clasyf_rook.f clatbs.f clatdf.f clatps.f clatrd.f clatrs.f clatrz.f
clauu2.f clauum.f cpbcon.f cpbequ.f cpbrfs.f cpbstf.f cpbsv.f
cpbsvx.f cpbtf2.f cpbtrf.f cpbtrs.f cpocon.f cpoequ.f cporfs.f
- cposv.f cposvx.f cpotf2.f cpotrf.f cpotrf2.f cpotri.f cpotrs.f cpstrf.f cpstf2.f
+ cposv.f cposvx.f cpotf2.f cpotrf2.f cpotri.f cpstrf.f cpstf2.f
cppcon.f cppequ.f cpprfs.f cppsv.f cppsvx.f cpptrf.f cpptri.f cpptrs.f
cptcon.f cpteqr.f cptrfs.f cptsv.f cptsvx.f cpttrf.f cpttrs.f cptts2.f
crot.f cspcon.f cspmv.f cspr.f csprfs.f cspsv.f
@@ -409,52 +413,45 @@
zla_heamv.f zla_hercond_c.f zla_hercond_x.f zla_herpvgrw.f
zla_lin_berr.f zlarscl2.f zlascl2.f zla_wwaddw.f)
-
-if( USE_XBLAS)
- set(ALLXOBJ ${SXLASRC} ${DXLASRC} ${CXLASRC} ${ZXLASRC} ${ALLXAUX})
+if(USE_XBLAS)
+ list(APPEND SLASRC ${SXLASRC})
+ list(APPEND DLASRC ${DXLASRC})
+ list(APPEND CLASRC ${CXLASRC})
+ list(APPEND ZLASRC ${ZXLASRC})
endif()
if(BUILD_DEPRECATED)
- LIST(APPEND SLASRC DEPRECATED/sgegs.f DEPRECATED/sgegv.f
+ LIST(APPEND SLASRC DEPRECATED/sgegs.f DEPRECATED/sgegv.f
DEPRECATED/sgeqpf.f DEPRECATED/sgelsx.f DEPRECATED/sggsvd.f
DEPRECATED/sggsvp.f DEPRECATED/slahrd.f DEPRECATED/slatzm.f DEPRECATED/stzrqf.f)
- LIST(APPEND DLASRC DEPRECATED/dgegs.f DEPRECATED/dgegv.f
+ LIST(APPEND DLASRC DEPRECATED/dgegs.f DEPRECATED/dgegv.f
DEPRECATED/dgeqpf.f DEPRECATED/dgelsx.f DEPRECATED/dggsvd.f
- DEPRECATED/dggsvp.f DEPRECATED/dlahrd.f DEPRECATED/dlatzm.f DEPRECATED/dtzrqf.f )
+ DEPRECATED/dggsvp.f DEPRECATED/dlahrd.f DEPRECATED/dlatzm.f DEPRECATED/dtzrqf.f)
LIST(APPEND CLASRC DEPRECATED/cgegs.f DEPRECATED/cgegv.f
DEPRECATED/cgeqpf.f DEPRECATED/cgelsx.f DEPRECATED/cggsvd.f
DEPRECATED/cggsvp.f DEPRECATED/clahrd.f DEPRECATED/clatzm.f DEPRECATED/ctzrqf.f)
LIST(APPEND ZLASRC DEPRECATED/zgegs.f DEPRECATED/zgegv.f
DEPRECATED/zgeqpf.f DEPRECATED/zgelsx.f DEPRECATED/zggsvd.f
DEPRECATED/zggsvp.f DEPRECATED/zlahrd.f DEPRECATED/zlatzm.f DEPRECATED/ztzrqf.f)
- message(STATUS "Building deprecated routines")
+ message(STATUS "Building LAPACK deprecated routines")
endif()
+set(ALLOBJ)
if(BUILD_SINGLE)
-set(ALLOBJ ${SLASRC} ${ALLAUX} ${SCLAUX} )
-message(STATUS "Building Single Precision")
+ list(APPEND ALLOBJ ${SLASRC} ${ALLAUX} ${SCLAUX} ${DSLASRC})
endif()
if(BUILD_DOUBLE)
- set(ALLOBJ ${ALLOBJ} ${DLASRC} ${ALLAUX} ${DZLAUX} ${DSLASRC})
-message(STATUS "Building Double Precision")
+ list(APPEND ALLOBJ ${DLASRC} ${ALLAUX} ${DZLAUX} ${DSLASRC})
endif()
if(BUILD_COMPLEX)
- set(ALLOBJ ${ALLOBJ} ${CLASRC} ${ALLAUX} ${SCLAUX} )
-message(STATUS "Building Complex Precision")
+ list(APPEND ALLOBJ ${CLASRC} ${ALLAUX} ${SCLAUX} ${ZCLASRC})
endif()
if(BUILD_COMPLEX16)
- set(ALLOBJ ${ALLOBJ} ${ZLASRC} ${ALLAUX} ${DZLAUX} ${ZCLASRC})
-message(STATUS "Building Double Complex Precision")
-endif()
-
-if (NOT ALLOBJ)
- message(FATAL_ERROR "-->LAPACK SRC BUILD: NOTHING TO BUILD, NO PRECISION SELECTED:
- PLEASE ENABLE AT LEAST ONE OF THOSE: BUILD_SINGLE, BUILD_COMPLEX, BUILD_DOUBLE, BUILD_COMPLEX16.")
+ list(APPEND ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX} ${ZCLASRC})
endif()
-
list(REMOVE_DUPLICATES ALLOBJ)
-add_library(lapack ${ALLOBJ} ${ALLXOBJ})
+add_library(lapack ${ALLOBJ})
target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
set_target_properties(
lapack PROPERTIES
diff --git a/TESTING/CMakeLists.txt b/TESTING/CMakeLists.txt
--- a/TESTING/CMakeLists.txt
+++ b/TESTING/CMakeLists.txt
@@ -289,7 +289,7 @@
endif()
-if (BUILD_SIMPLE)
+if (BUILD_SINGLE)
if (BUILD_DOUBLE)
#
# ======== SINGLE-DOUBLE PROTO LIN TESTS ==============
diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt
--- a/TESTING/LIN/CMakeLists.txt
+++ b/TESTING/LIN/CMakeLists.txt
@@ -13,10 +13,10 @@
schksp.f schksy.f schksy_rook.f schktb.f schktp.f schktr.f
schktz.f
sdrvgt.f sdrvls.f sdrvpb.f
- sdrvpp.f sdrvpt.f sdrvsp.f sdrvsy.f sdrvsy_rook.f
+ sdrvpp.f sdrvpt.f sdrvsp.f sdrvsy_rook.f
serrgt.f serrlq.f serrls.f
- serrpo.f serrps.f serrql.f serrqp.f serrqr.f
- serrrq.f serrsy.f serrtr.f serrtz.f serrvx.f
+ serrps.f serrql.f serrqp.f serrqr.f
+ serrrq.f serrtr.f serrtz.f
sgbt01.f sgbt02.f sgbt05.f sgelqs.f sgeqls.f sgeqrs.f
sgerqs.f sget01.f sget02.f
sget03.f sget04.f sget06.f sget07.f sgtt01.f sgtt02.f
@@ -37,9 +37,11 @@
sqrt04.f sqrt05.f schkqrt.f serrqrt.f schkqrtp.f serrqrtp.f)
if(USEXBLAS)
- list(APPEND SLINTST sdrvgex.f serrgex.f sdrvgbx.f sdrvpox.f sebchvxx.f)
+ list(APPEND SLINTST serrvxx.f sdrvgex.f sdrvsyx.f serrgex.f sdrvgbx.f sdrvpox.f
+ sebchvxx.f serrsyx.f serrpox.f)
else()
- list(APPEND SLINTST sdrvge.f serrge.f sdrvgb.f sdrvpo.f)
+ list(APPEND SLINTST serrvx.f sdrvge.f sdrvsy.f serrge.f sdrvgb.f sdrvpo.f
+ serrsy.f serrpo.f)
endif()
set(CLINTST cchkaa.f
@@ -48,13 +50,12 @@
cchkpo.f cchkps.f cchkpp.f cchkpt.f cchkq3.f cchkql.f
cchkqr.f cchkrq.f cchksp.f cchksy.f cchksy_rook.f cchktb.f
cchktp.f cchktr.f cchktz.f
- cdrvgt.f cdrvhe.f cdrvhe_rook.f cdrvhp.f
+ cdrvgt.f cdrvhe_rook.f cdrvhp.f
cdrvls.f cdrvpb.f cdrvpp.f cdrvpt.f
- cdrvsp.f cdrvsy.f cdrvsy_rook.f
- cerrgt.f cerrhe.f cerrlq.f
+ cdrvsp.f cdrvsy_rook.f
+ cerrgt.f cerrlq.f
cerrls.f cerrps.f cerrql.f cerrqp.f
- cerrqr.f cerrrq.f cerrsy.f cerrtr.f cerrtz.f
- cerrvx.f
+ cerrqr.f cerrrq.f cerrtr.f cerrtz.f
cgbt01.f cgbt02.f cgbt05.f cgelqs.f cgeqls.f cgeqrs.f
cgerqs.f cget01.f cget02.f
cget03.f cget04.f cget07.f cgtt01.f cgtt02.f
@@ -77,10 +78,11 @@
cqrt04.f cqrt05.f cchkqrt.f cerrqrt.f cchkqrtp.f cerrqrtp.f )
if(USEXBLAS)
- list(APPEND
- CLINTST cdrvgex.f cdrvgbx.f cerrgex.f cdrvpox.f cerrpox.f cebchvxx.f)
+ list(APPEND CLINTST cerrvxx.f cdrvgex.f cdrvsyx.f cdrvgbx.f cerrgex.f cdrvpox.f
+ cdrvhex.f cerrpox.f cebchvxx.f cerrsyx.f cerrhex.f)
else()
- list(APPEND CLINTST cdrvge.f cdrvgb.f cerrge.f cdrvpo.f cerrpo.f)
+ list(APPEND CLINTST cerrvx.f cdrvge.f cdrvsy.f cdrvgb.f cerrge.f cdrvpo.f
+ cdrvhe.f cerrpo.f cerrsy.f cerrhe.f)
endif()
set(DLINTST dchkaa.f
@@ -90,10 +92,10 @@
dchksp.f dchksy.f dchksy_rook.f dchktb.f dchktp.f dchktr.f
dchktz.f
ddrvgt.f ddrvls.f ddrvpb.f
- ddrvpp.f ddrvpt.f ddrvsp.f ddrvsy.f ddrvsy_rook.f
+ ddrvpp.f ddrvpt.f ddrvsp.f ddrvsy_rook.f
derrgt.f derrlq.f derrls.f
derrps.f derrql.f derrqp.f derrqr.f
- derrrq.f derrsy.f derrtr.f derrtz.f derrvx.f
+ derrrq.f derrtr.f derrtz.f
dgbt01.f dgbt02.f dgbt05.f dgelqs.f dgeqls.f dgeqrs.f
dgerqs.f dget01.f dget02.f
dget03.f dget04.f dget06.f dget07.f dgtt01.f dgtt02.f
@@ -114,11 +116,11 @@
dqrt04.f dqrt05.f dchkqrt.f derrqrt.f dchkqrtp.f derrqrtp.f )
if(USEXBLAS)
- list(APPEND
- DLINTST ddrvgex.f ddrvgbx.f derrgex.f ddrvpox.f derrpox.f debchvxx.f)
+ list(APPEND DLINTST derrvxx.f ddrvgex.f ddrvsyx.f ddrvgbx.f derrgex.f ddrvpox.f derrpox.f
+ debchvxx.f derrsyx.f)
else()
- list(APPEND
- DLINTST ddrvge.f ddrvgb.f derrge.f ddrvpo.f derrpo.f)
+ list(APPEND DLINTST derrvx.f ddrvge.f ddrvsy.f ddrvgb.f derrge.f ddrvpo.f derrpo.f
+ derrsy.f)
endif()
set(ZLINTST zchkaa.f
@@ -127,17 +129,16 @@
zchkpo.f zchkps.f zchkpp.f zchkpt.f zchkq3.f zchkql.f
zchkqr.f zchkrq.f zchksp.f zchksy.f zchksy_rook.f zchktb.f
zchktp.f zchktr.f zchktz.f
- zdrvgt.f zdrvhe.f zdrvhe_rook.f zdrvhp.f
+ zdrvgt.f zdrvhe_rook.f zdrvhp.f
zdrvls.f zdrvpb.f zdrvpp.f zdrvpt.f
- zdrvsp.f zdrvsy.f zdrvsy_rook.f
- zerrgt.f zerrhe.f zerrlq.f
+ zdrvsp.f zdrvsy_rook.f
+ zerrgt.f zerrlq.f
zerrls.f zerrps.f zerrql.f zerrqp.f
- zerrqr.f zerrrq.f zerrsy.f zerrtr.f zerrtz.f
- zerrvx.f
+ zerrqr.f zerrrq.f zerrtr.f zerrtz.f
zgbt01.f zgbt02.f zgbt05.f zgelqs.f zgeqls.f zgeqrs.f
zgerqs.f zget01.f zget02.f
zget03.f zget04.f zget07.f zgtt01.f zgtt02.f
- zgtt05.f zhet01.f zhet01.f zhet01_rook.f zhpt01.f zlaipd.f zlaptm.f zlarhs.f zlatb4.f zlatb5.f
+ zgtt05.f zhet01.f zhet01_rook.f zhpt01.f zlaipd.f zlaptm.f zlarhs.f zlatb4.f zlatb5.f
zlatsp.f zlatsy.f zlattb.f zlattp.f zlattr.f
zlavhe.f zlavhe_rook.f zlavhp.f zlavsp.f zlavsy.f zlavsy_rook.f zlqt01.f
zlqt02.f zlqt03.f zpbt01.f zpbt02.f zpbt05.f
@@ -156,11 +157,11 @@
zqrt04.f zqrt05.f zchkqrt.f zerrqrt.f zchkqrtp.f zerrqrtp.f )
if(USEXBLAS)
- list(APPEND
- ZLINTST zdrvgex.f zdrvgbx.f zerrgex.f zdrvpox.f zerrpox.f zebchvxx.f)
+ list(APPEND ZLINTST zerrvxx.f zdrvgex.f zdrvsyx.f zdrvgbx.f zerrgex.f zdrvpox.f zdrvhex.f
+ zerrpox.f zebchvxx.f zerrsyx.f zerrhex.f)
else()
- list(APPEND
- ZLINTST zdrvge.f zdrvgb.f zerrge.f zdrvpo.f zerrpo.f)
+ list(APPEND ZLINTST zerrvx.f zdrvge.f zdrvsy.f zdrvgb.f zerrge.f zdrvpo.f zdrvhe.f
+ zerrpo.f zerrsy.f zerrhe.f)
endif()
set(DSLINTST dchkab.f
@@ -197,29 +198,29 @@
endmacro(add_lin_executable)
IF(BUILD_SINGLE)
-add_lin_executable(xlintsts ${ALINTST} ${SCLNTST} ${SLINTST} ${SECOND_SRC} )
+add_lin_executable(xlintsts ${ALINTST} ${SLINTST} ${SCLNTST} ${SECOND_SRC})
add_lin_executable(xlintstrfs ${SLINTSTRFP} ${SECOND_SRC})
endif()
if(BUILD_DOUBLE)
-add_lin_executable(xlintstd ${ALINTST} ${DLINTST} ${DZLNTST} ${DSECOND_SRC})
+add_lin_executable(xlintstd ${ALINTST} ${DLINTST} ${DZLNTST} ${DSECOND_SRC})
add_lin_executable(xlintstrfd ${DLINTSTRFP} ${DSECOND_SRC})
endif()
IF(BUILD_SINGLE AND BUILD_DOUBLE)
-add_lin_executable(xlintstds ${DSLINTST} ${SECOND_SRC} ${DSECOND_SRC} )
+add_lin_executable(xlintstds ${DSLINTST} ${SECOND_SRC} ${DSECOND_SRC})
endif()
if(BUILD_COMPLEX)
-add_lin_executable(xlintstc ${ALINTST} ${CLINTST} ${SCLNTST} ${SECOND_SRC} )
-add_lin_executable(xlintstrfc ${CLINTSTRFP} ${SECOND_SRC})
+add_lin_executable(xlintstc ${ALINTST} ${CLINTST} ${SCLNTST} ${SECOND_SRC})
+add_lin_executable(xlintstrfc ${CLINTSTRFP} ${SECOND_SRC})
endif()
if(BUILD_COMPLEX16)
-add_lin_executable(xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST} ${DSECOND_SRC})
+add_lin_executable(xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST} ${DSECOND_SRC})
add_lin_executable(xlintstrfz ${ZLINTSTRFP} ${DSECOND_SRC})
endif()
IF(BUILD_COMPLEX AND BUILD_COMPLEX16)
-add_lin_executable(xlintstzc ${ZCLINTST} ${SECOND_SRC} ${DSECOND_SRC} )
+add_lin_executable(xlintstzc ${ZCLINTST} ${SECOND_SRC} ${DSECOND_SRC})
endif()
diff --git a/TESTING/MATGEN/CMakeLists.txt b/TESTING/MATGEN/CMakeLists.txt
--- a/TESTING/MATGEN/CMakeLists.txt
+++ b/TESTING/MATGEN/CMakeLists.txt
@@ -31,45 +31,41 @@
#
#######################################################################
-set(SCATGEN slatm1.f slaran.f slarnd.f)
+set(SCATGEN slatm1.f slatm7.f slaran.f slarnd.f)
set(SMATGEN slatms.f slatme.f slatmr.f slatmt.f
slagge.f slagsy.f slakf2.f slarge.f slaror.f slarot.f slatm2.f
- slatm3.f slatm5.f slatm6.f slatm7.f slahilb.f)
+ slatm3.f slatm5.f slatm6.f slahilb.f)
set(CMATGEN clatms.f clatme.f clatmr.f clatmt.f
clagge.f claghe.f clagsy.f clakf2.f clarge.f claror.f clarot.f
- clatm1.f clarnd.f clatm2.f clatm3.f clatm5.f clatm6.f clahilb.f slatm7.f)
+ clatm1.f clarnd.f clatm2.f clatm3.f clatm5.f clatm6.f clahilb.f)
-set(DZATGEN dlatm1.f dlaran.f dlarnd.f)
+set(DZATGEN dlatm1.f dlatm7.f dlaran.f dlarnd.f)
set(DMATGEN dlatms.f dlatme.f dlatmr.f dlatmt.f
dlagge.f dlagsy.f dlakf2.f dlarge.f dlaror.f dlarot.f dlatm2.f
- dlatm3.f dlatm5.f dlatm6.f dlatm7.f dlahilb.f)
+ dlatm3.f dlatm5.f dlatm6.f dlahilb.f)
set(ZMATGEN zlatms.f zlatme.f zlatmr.f zlatmt.f
- zlagge.f zlaghe.f zlagsy.f zlakf2.f zlarge.f zlaror.f zlarot.f
- zlatm1.f zlarnd.f zlatm2.f zlatm3.f zlatm5.f zlatm6.f zlahilb.f dlatm7.f)
+ zlagge.f zlaghe.f zlagsy.f zlakf2.f zlarge.f zlaror.f zlarot.f
+ zlatm1.f zlarnd.f zlatm2.f zlatm3.f zlatm5.f zlatm6.f zlahilb.f)
+set(ALLOBJ)
if(BUILD_SINGLE)
- set(ALLOBJ ${SMATGEN} ${SCATGEN})
+ list(APPEND ALLOBJ ${SMATGEN} ${SCATGEN})
endif()
if(BUILD_DOUBLE)
- set(ALLOBJ ${ALLOBJ} ${DMATGEN} ${DZATGEN})
+ list(APPEND ALLOBJ ${DMATGEN} ${DZATGEN})
endif()
if(BUILD_COMPLEX)
- set(ALLOBJ ${ALLOBJ} ${CMATGEN} ${SCATGEN})
+ list(APPEND ALLOBJ ${CMATGEN} ${SCATGEN})
endif()
if(BUILD_COMPLEX16)
- set(ALLOBJ ${ALLOBJ} ${ZMATGEN} ${DZATGEN})
+ LIST(APPEND ALLOBJ ${ZMATGEN} ${DZATGEN})
endif()
+list(REMOVE_DUPLICATES ALLOBJ)
-if (NOT ALLOBJ)
-set(ALLOBJ ${SMATGEN} ${CMATGEN} ${SCATGEN} ${DMATGEN} ${ZMATGEN}
- ${DZATGEN})
-else()
- list(REMOVE_DUPLICATES ALLOBJ)
-endif()
-add_library(tmglib ${ALLOBJ} )
+add_library(tmglib ${ALLOBJ})
target_link_libraries(tmglib ${LAPACK_LIBRARIES})
lapack_install_library(tmglib)
diff --git a/TESTING/MATGEN/Makefile b/TESTING/MATGEN/Makefile
--- a/TESTING/MATGEN/Makefile
+++ b/TESTING/MATGEN/Makefile
@@ -33,21 +33,21 @@
#
#######################################################################
-SCATGEN = slatm1.o slaran.o slarnd.o
+SCATGEN = slatm1.o slatm7.o slaran.o slarnd.o
SMATGEN = slatms.o slatme.o slatmr.o slatmt.o \
slagge.o slagsy.o slakf2.o slarge.o slaror.o slarot.o slatm2.o \
- slatm3.o slatm5.o slatm6.o slatm7.o slahilb.o
+ slatm3.o slatm5.o slatm6.o slahilb.o
CMATGEN = clatms.o clatme.o clatmr.o clatmt.o \
clagge.o claghe.o clagsy.o clakf2.o clarge.o claror.o clarot.o \
clatm1.o clarnd.o clatm2.o clatm3.o clatm5.o clatm6.o clahilb.o
-DZATGEN = dlatm1.o dlaran.o dlarnd.o
+DZATGEN = dlatm1.o dlatm7.o dlaran.o dlarnd.o
DMATGEN = dlatms.o dlatme.o dlatmr.o dlatmt.o \
dlagge.o dlagsy.o dlakf2.o dlarge.o dlaror.o dlarot.o dlatm2.o \
- dlatm3.o dlatm5.o dlatm6.o dlatm7.o dlahilb.o
+ dlatm3.o dlatm5.o dlatm6.o dlahilb.o
ZMATGEN = zlatms.o zlatme.o zlatmr.o zlatmt.o \
zlagge.o zlaghe.o zlagsy.o zlakf2.o zlarge.o zlaror.o zlarot.o \