Commit Graph
67 Commits
Author SHA1 Message Date
Simon Maertens 54817e9385 Replace FORTRAN_STRLEN type in the lapack.h header if it's different from size_t 2026-01-13 12:07:05 +01:00
Simon Maertens 54726b8177 Format message better. 2025-11-14 14:51:38 +01:00
Simon Maertens cbaf8d377f Disable loop vectorization for GNU Fortran 14.0-14.4 and 15.0-15.2 on ARM due to a compiler bug. 2025-11-14 14:48:08 +01:00
Simon Maertens b8ee7a533e Fixed wrong NAG Fortran compiler flag / definition for strlen type on Linux 2024-06-20 16:11:08 +01:00
Simon Maertens 6cd9d27cd5 Made the type of hidden Fortran strlen arguments configurable for the NAG Fortran compiler and old GFortran 2024-06-19 15:31:45 +02:00
Simon Maertens 7159cfb377 Fix Intel compiler flags which contain a space 2024-06-11 15:56:46 +01:00
Simon Maertens 231db955f2 Use add_compile_options(...) and add_link_options(...) instead of appending flags to CACHE variables. 2024-06-05 13:12:09 +02:00
Simon Maertens 26db2da3eb Fixed Fortran compiler flags check for nagfor compiler and usage in CBLAS target 2023-11-29 14:30:30 +00:00
Colleen Bertoni bfc7838cd9 Update CheckLAPACKCompilerFlags.cmake
Adding quotes around a flag passed to the Intel compiler.
2023-10-31 15:40:21 -05:00
Weslley S Pereira f70c3febac Some changes to make a possible compilation of LAPACKE independent from a Fortran compiler 2023-10-31 11:18:28 -06:00
Simon Maertens 64d95ed569 Added CMake config for NVIDIA HPC compilers (nvfortran) 2023-08-24 15:32:47 +01:00
Simon Maertens 3f1aef1497 Fixed compiler flags for IntelLLVM compiler (ifx) 2023-08-24 15:06:37 +01:00
Maria Kraynyuk ce3f662e12 Add Index-64 API as extended API with _64 suffix for CBLAS 2023-06-22 16:15:41 -07:00
langou 88aa204975 Revert "Add Index-64 API as extended API with _64 suffix for CBLAS" 2023-06-21 02:33:49 -06:00
Maria Kraynyuk 4c2236a536 Add Index-64 API as extended API with _64 suffix for CBLAS 2023-06-06 10:56:33 -07:00
musvaage f3fff11ccf typos 2023-04-11 13:52:58 -05:00
Simon Maertens fc4d4ff59b Propagate Fortran flags as well as linker flags to the time check subproject. Enable verbose output (will only show in the log files). Bit of formatting. 2022-08-05 10:49:21 +02:00
friedc f039b8c40a Merge branch 'master' into master 2022-07-05 16:23:35 +02:00
Simon Maertens 4dba796894 Added nagfor specific flags. 2022-06-29 09:41:57 +01:00
Christian Friedl 9551a31c68 Add proper ILP Flags for xlf. 2022-05-30 10:34:57 +02:00
Weslley S. Pereira 5559978672 Merge pull request #617 from ajaypanyala/master
use integer64 flag for Cray Fortran compiler
2022-04-12 09:11:08 -06:00
Ajay Panyala f3e8010382 Merge branch 'master' of github.com:Reference-LAPACK/lapack 2021-12-14 18:42:03 -08:00
Ben Boeckel dd0b532f60 cmake: forward the macOS deployment target to the TIME function test
When using newer Xcode releases, older `gfortran` may be given a
deployment target that is not understood if the host is on a new enough
version. Forward the deployment target from the main project to the
testing project to check with similar settings as the main project.
2021-12-10 21:45:12 -05:00
Larson, Eric d04553067e ILP support
long's in windows are 4 bytes (MSVS, intel compilers). Use int64_t and int32_t
to ensure 8 byte integers for ILP interface.

support 8 byte integer flag for intel ifort compiler
2021-09-27 10:22:49 -07:00
Aisha Tammy 5dd47be672 create INDEX64 target 2020-11-03 17:14:48 +00:00
Brad King a56239b4c8 cmake: Tell CMake that our Fortran sources are in fixed format
CMake will automatically generate the proper flag to tell each compiler
that our sources use fixed format.  Drop our manual use of `-qfixed` for
the XL Fortran compiler because it breaks CMake's FortranCInterface
detection (which uses free-format sources).
2020-03-23 12:32:39 -04:00
Jean-Christophe Fillion-Robin 6d83d7bbb9 cmake: Help client project by setting LAPACK_Fortran_COMPILER_ID in config
This change may help project building against LAPACK or LAPACKE to lookup
the associated Fortran compiler support libraries.
2018-09-08 17:20:38 -04:00
Jean-Christophe Fillion-RobinandPablo Hernandez 77088da7fe cmake: Set LAPACK_LIBRARIES in LAPACK config file
This commit abstracts the detailed list of libraries associated with
LAPACK and streamlines the configuration of user projects. They can now
simply specify ${LAPACK_LIBRARIES} independently of the LAPACK build options.

Co-authored-by: Pablo Hernandez <pablo.hernandez@kitware.com>
2018-08-15 18:36:20 -04:00
luz.paz 53397896bb Misc. typos
Found via `codespell -q 3`
2018-02-16 13:25:54 -05:00
luzpaz 3fac41ca28 Fix misc. typos
Mostly trivial source code comments.
2017-12-01 06:55:48 -05:00
Guillaume Jacquenot f7f9d972a7 [coverage] Updated cmake coverage files for Lapack 2017-02-21 21:21:13 +01:00
Guillaume Jacquenot e44d822c68 [coverage] Added cmake files for coverage 2017-02-21 21:19:25 +01:00
Julie 3f23bd5d53 merging: Various cleanups to makefiles #84
Contribution by @turboencabulator
Closing #84
2016-11-25 17:03:13 -08:00
Hans Johnson ea081254b4 COMP: Prevent insource builds and inbuild installs
With cmake is best to require out-of-source builds,
and to avoid intalling into the same directory as the
build was performed.

Both of these situations can cause very confusing situations
that can frustrate new users of the software package, so
check for and provide guidance to the end-users.

These files were initially contributed to the ITK
(www.itk.org) project and have been widely re-used
by many other projects.

NOTE: This patch is dependant on pull request #16
2016-07-28 08:56:44 -05:00
Hans Johnson 5333ddd9dc Remove CMake-language block-end command arguments
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block.  This is no longer the preferred style.

NOTE: MUST USE GNU compliant version of sed
Run the following shell code:

for c in else endif endforeach endfunction endmacro endwhile; do
    echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' \
   | xargs -0 gsed -i -f convert.sed \
&& rm convert.sed
2016-07-10 14:38:48 -05:00
Hans Johnson b1e0d47edc STYLE: Convert CMake-language commands to lower case
Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.

Run the following shell code:
NOTE: MUST USE GNU compliant version of sed

cmake --help-command-list \
| grep -v "cmake version" \
| while read c; do
    echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
  done >convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' \
   | xargs -0 gsed -i -f convert.sed \
&& rm convert.sed
2016-07-10 14:37:46 -05:00
Hans Johnson 9c7f84bd60 STYLE: Remove trailing whitespace in MISC files
This is mostly a long term maintenance improvement.

Many coding styles require elimination of trailing whitespace, and
many editors and source code management configurations automatically
gobble up whitespace. When these tools gobble up whitespace, it
complicates reviewing the meaningful code changes.

By removing whitespace on one patch, it makes future
code reviews much easier.

=SCRIPT====================================================================

if which tempfile &>/dev/null; then
  TEMPMAKER=tempfile
elif which mktemp &>/dev/null; then
  TEMPMAKER=mktemp
else
  echo "Cannot find tempfile program." 2>&1
  exit 1
fi

MYTEMP=$($TEMPMAKER)
trap 'rm -f $MYTEMP' SIGINT SIGTERM

stripit() {
  echo "stripping $1"
  sed 's/[ \t]*$//' "$1" > $MYTEMP
  cp $MYTEMP "$1"
}

if [ $# -gt 0 ]; then
  while [ "$1" != "" ]; do
    stripit $1
    shift
  done
else
  while read -t 2; do
    stripit $REPLY
  done
fi

rm $MYTEMP
=================================================
2016-07-09 11:19:33 -05:00
Hans Johnson f8fb0842d5 STYLE: Remove trailing whitespace in CMake files
This is mostly a long term maintenance improvement.

Many coding styles require elimination of trailing whitespace, and
many editors and source code management configurations automatically
gobble up whitespace. When these tools gobble up whitespace, it
complicates reviewing the meaningful code changes.

By removing whitespace on one patch, it makes future
code reviews much easier.
2016-07-09 10:34:19 -05:00
julie d8350cf73f Committing Nico's change about build system improvements for LAPACK
"One of the improvements with the patches is that SOVERSION and VERSION are now properly set and the proper symlinks are created:
```
liblapack.so -> liblapack.so.3
liblapack.so.3 -> liblapack.so.3.5.0
liblapack.so.3.5.0
```
Since BLAS is shipped with LAPACK and no separate version number is given for BLAS, I applied the same there, too."

Tested on Julie's Mac

TO DO: To test under Windows
====

Updated OSX RPATH settings
In response to CMake 3.0 generating warnings regarding policy CMP0042,
the OSX RPATH settings have been updated per recommendations found
in the CMake Wiki:
  http://www.cmake.org/Wiki/CMake_RPATH_handling#Mac_OS_X_and_the_RPATH
2015-09-02 05:32:19 +00:00
julie df74740608 == Patch provided by Brad King from Kitware - brad.king@kitware.com ==
Provide CMake packages for both LAPACK and LAPACKE

Teach "lapack-config.cmake" to provide variables

 LAPACK_blas_LIBRARIES
 LAPACK_lapack_LIBRARIES

that contain either the target names when using the reference
implementation or the system libraries found for them.

Configure a "lapacke-config.cmake" file for the build and install
trees to package LAPACKE.  Teach it to load the LAPACK package
installed with it.  Provide variables

 LAPACKE_INCLUDE_DIRS
 LAPACKE_LIBRARIES

containing the header file search path for lapacke headers
and the list of lapacke library targets.

This requires CMake 2.8.10 to separate the installation export
for the lapacke library from the other targets.
2014-02-09 00:37:45 +00:00
julie 014dcec815 Remove unused leftover GNUtoMS support file 2013-12-06 23:13:50 +00:00
julie 7d5a500ae4 Remove GNUtoMS code in favor of CMake builtin version - Thanks Brad (Kitware) 2013-12-06 03:59:31 +00:00
julie 1d71ab691f 2012-08-25 22:27:13 +00:00
julie 8f06ee757c Update CMAKE version requirement and remove FindBLAS module that is now include inside CMAKE 2012-04-25 20:35:07 +00:00
julie 36369de32a Adding CMAKE Support for LAPACKE.
Now we can generate dll for LAPACK and LAPACKE directly for Mingw so that FORTRAN compiler is longer needed.
Because LAPACKE contains some routines from MATGEN (for PLASMA), LAPACKE will requires the tmglib library.

Add some LAPACK 3.4.0 routines were missing in the CMAKE LAPACK build.
2012-01-10 23:15:10 +00:00
julie e6e99382cb Add missing files for GNU-built LAPACK DLLs with MS tools 2011-08-15 13:26:00 +00:00
julie c81b790f91 Commiting BRAD patch
Here is a patch for lapack to provide MS-format dll import libraries
from the MinGW GNU toolchain.  It is ready for others to try before it
goes upstream.  You just need to have MinGW GNU Fortran 4.x and one of
the VS IDEs installed.  Configure a MinGW build with BUILD_SHARED_LIBS
set to ON.  The resulting build (and install) tree will provide both
GNU-format and MS-format import libraries for the DLLs.

A C application built with MSVC and linked to the MinGW-built lapack
DLLs will run but requires the GNU runtime DLLs from MinGW to be available.
I tested this with both 32-bit and 64-bit builds.  For the latter I used
the mingw64 gfortran.  In both cases I just put the GNU runtime directory
in my PATH.  I think both libgfortran-3.dll and libgcc_s_dw2-1.dll are
needed.

This may be used to create a binary LAPACK distribution for Windows that
will work without any GNU tools installed.  One needs only to provide the
MinGW GNU runtime libraries along with blas.dll and lapack.dll.

-Brad
2011-08-09 18:59:44 +00:00
julie 8dcfef49b8 Added compiler options needed for HP Fortran
- Chuck Atkins (Kitware)
2011-03-06 20:02:06 +00:00
julie 04c69903f0 Corrected a typo in the output message when setting optimization level
- Chuck Atkins (Kitware)
2011-02-26 21:49:14 +00:00
julie 2bbd1ad6d5 Re-worked type-size checks to search for differnt sizes for different types
- Chuck Atkins (Kitware)
2011-02-26 20:51:01 +00:00