# FindLAPACK

Find Linear Algebra PACKage (LAPACK) library

This module finds an installed Fortran library that implements the LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).

The approach follows that taken for the `autoconf` macro file, `acx_lapack.m4` (distributed at http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).

## Input Variables

The following variables may be set to influence this module's behavior:

`BLA_STATIC`

  if `ON` use static linkage

`BLA_VENDOR`

  If set, checks only the specified vendor, if not set checks all the possibilities. List of vendors valid in this module:

  - `FlexiBLAS`

  - `OpenBLAS`

  - `FLAME`

  - `Intel10_32` (intel mkl v10 32 bit, threaded code)

  - `Intel10_64lp` (intel mkl v10+ 64 bit, threaded code, lp64 model)

  - `Intel10_64lp_seq` (intel mkl v10+ 64 bit, sequential code, lp64 model)

  - `Intel10_64ilp` (intel mkl v10+ 64 bit, threaded code, ilp64 model)

  - `Intel10_64ilp_seq` (intel mkl v10+ 64 bit, sequential code, ilp64 model)

  - `Intel10_64_dyn` (intel mkl v10+ 64 bit, single dynamic library)

  - `Intel` (obsolete versions of mkl 32 and 64 bit)

  - `ACML`

  - `Apple`

  - `NAS`

  - `Arm`

  - `Arm_mp`

  - `Arm_ilp64`

  - `Arm_ilp64_mp`

  - `EML`

  - `EML_mt`

  - `Generic`

  New in version 3.6: `OpenBLAS` support.

  New in version 3.11: `FLAME` support.

  New in version 3.13: Added ILP64 MKL variants (`Intel10_64ilp`, `Intel10_64ilp_seq`).

  New in version 3.17: Added single dynamic library MKL variant (`Intel10_64_dyn`).

  New in version 3.18: Arm Performance Libraries support (`Arm`, `Arm_mp`, `Arm_ilp64`, `Arm_ilp64_mp`).

  New in version 3.19: `FlexiBLAS` support.

  New in version 3.20: Elbrus Math Library support (`EML`, `EML_mt`).

`BLA_F95`

  if `ON` tries to find the BLAS95/LAPACK95 interfaces

`BLA_PREFER_PKGCONFIG`

  New in version 3.20.

  if set `pkg-config` will be used to search for a LAPACK library first and if one is found that is preferred

## Imported targets

New in version 3.18.

This module defines the following `IMPORTED` target:

`LAPACK::LAPACK`

  The libraries to use for LAPACK, if found.

## Result Variables

This module defines the following variables:

`LAPACK_FOUND`

  library implementing the LAPACK interface is found

`LAPACK_LINKER_FLAGS`

  uncached list of required linker flags (excluding `-l` and `-L`).

`LAPACK_LIBRARIES`

  uncached list of libraries (using full path name) to link against to use LAPACK

`LAPACK95_LIBRARIES`

  uncached list of libraries (using full path name) to link against to use LAPACK95

`LAPACK95_FOUND`

  library implementing the LAPACK95 interface is found

Note

C, CXX or Fortran must be enabled to detect a BLAS/LAPACK library. C or CXX must be enabled to use Intel Math Kernel Library (MKL).

For example, to use Intel MKL libraries and/or Intel compiler:

    set(BLA_VENDOR Intel10_64lp)
    find_package(LAPACK)