Update LAPACK to 3.9.0

This commit is contained in:
Martin Kroeker 2019-12-29 18:24:58 +01:00 committed by GitHub
parent 4a62c8f665
commit 4ee9b48e59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 116 additions and 43 deletions

View File

@ -4,89 +4,120 @@
# April 2012 # April 2012
# #
include make.inc TOPSRCDIR = .
include $(TOPSRCDIR)/make.inc
.PHONY: all
all: lapack_install lib blas_testing lapack_testing all: lapack_install lib blas_testing lapack_testing
.PHONY: lib
lib: lapacklib tmglib lib: lapacklib tmglib
#lib: blaslib variants lapacklib tmglib #lib: blaslib variants lapacklib tmglib
.PHONY: blaslib
blaslib: blaslib:
$(MAKE) -C BLAS $(MAKE) -C BLAS
.PHONY: cblaslib
cblaslib: cblaslib:
$(MAKE) -C CBLAS $(MAKE) -C CBLAS
.PHONY: lapacklib
lapacklib: lapacklib:
$(MAKE) -C SRC $(MAKE) -C SRC
.PHONY: lapackelib
lapackelib: lapackelib:
$(MAKE) -C LAPACKE $(MAKE) -C LAPACKE
.PHONY: blaspplib
blaspplib:
@echo "Thank you for your interest in BLAS++, a newly developed C++ API for BLAS library"
@echo "The objective of BLAS++ is to provide a convenient, performance oriented API for development in the C++ language, that, for the most part, preserves established conventions, while, at the same time, takes advantages of modern C++ features, such as: namespaces, templates, exceptions, etc."
@echo "We are still working on integrating BLAS++ in our library. For the moment, you can download directly blas++ from https://bitbucket.org/icl/blaspp"
@echo "For support BLAS++ related question, please email: slate-user@icl.utk.edu"
.PHONY: lapackpplib
lapackpplib:
@echo "Thank you for your interest in LAPACK++, a newly developed C++ API for LAPACK library"
@echo "The objective of LAPACK++ is to provide a convenient, performance oriented API for development in the C++ language, that, for the most part, preserves established conventions, while, at the same time, takes advantages of modern C++ features, such as: namespaces, templates, exceptions, etc."
@echo "We are still working on integrating LAPACK++ in our library. For the moment, you can download directly lapack++ from https://bitbucket.org/icl/lapackpp"
@echo "For support LAPACK++ related question, please email: slate-user@icl.utk.edu"
.PHONY: tmglib
tmglib: tmglib:
$(MAKE) -C TESTING/MATGEN $(MAKE) -C TESTING/MATGEN
.PHONY: variants
variants: variants:
$(MAKE) -C SRC/VARIANTS $(MAKE) -C SRC/VARIANTS
.PHONY: lapack_install
lapack_install: lapack_install:
$(MAKE) -C INSTALL run $(MAKE) -C INSTALL run
.PHONY: blas_testing
blas_testing: blaslib blas_testing: blaslib
$(MAKE) -C BLAS blas_testing $(MAKE) -C BLAS blas_testing
.PHONY: cblas_testing
cblas_testing: cblaslib blaslib cblas_testing: cblaslib blaslib
$(MAKE) -C CBLAS cblas_testing $(MAKE) -C CBLAS cblas_testing
.PHONY: lapack_testing
lapack_testing: tmglib lapacklib blaslib lapack_testing: tmglib lapacklib blaslib
$(MAKE) -C TESTING/LIN cleanexe $(MAKE) -C TESTING/LIN cleanexe
$(MAKE) -C TESTING $(MAKE) -C TESTING
./lapack_testing.py ./lapack_testing.py
.PHONY: variants_testing
variants_testing: tmglib variants lapacklib blaslib variants_testing: tmglib variants lapacklib blaslib
$(MAKE) -C TESTING/LIN cleanexe $(MAKE) -C TESTING/LIN cleanexe
$(MAKE) -C TESTING/LIN VARLIB='SRC/VARIANTS/cholrl.a' $(MAKE) -C TESTING/LIN VARLIB='../../SRC/VARIANTS/cholrl.a'
$(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_cholrl.out $(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_cholrl.out
$(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_cholrl.out $(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_cholrl.out
$(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_cholrl.out $(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_cholrl.out
$(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_cholrl.out $(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_cholrl.out
$(MAKE) -C TESTING/LIN cleanexe $(MAKE) -C TESTING/LIN cleanexe
$(MAKE) -C TESTING/LIN VARLIB='SRC/VARIANTS/choltop.a' $(MAKE) -C TESTING/LIN VARLIB='../../SRC/VARIANTS/choltop.a'
$(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_choltop.out $(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_choltop.out
$(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_choltop.out $(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_choltop.out
$(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_choltop.out $(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_choltop.out
$(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_choltop.out $(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_choltop.out
$(MAKE) -C TESTING/LIN cleanexe $(MAKE) -C TESTING/LIN cleanexe
$(MAKE) -C TESTING/LIN VARLIB='SRC/VARIANTS/lucr.a' $(MAKE) -C TESTING/LIN VARLIB='../../SRC/VARIANTS/lucr.a'
$(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_lucr.out $(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_lucr.out
$(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_lucr.out $(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_lucr.out
$(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_lucr.out $(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_lucr.out
$(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_lucr.out $(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_lucr.out
$(MAKE) -C TESTING/LIN cleanexe $(MAKE) -C TESTING/LIN cleanexe
$(MAKE) -C TESTING/LIN VARLIB='SRC/VARIANTS/lull.a' $(MAKE) -C TESTING/LIN VARLIB='../../SRC/VARIANTS/lull.a'
$(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_lull.out $(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_lull.out
$(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_lull.out $(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_lull.out
$(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_lull.out $(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_lull.out
$(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_lull.out $(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_lull.out
$(MAKE) -C TESTING/LIN cleanexe $(MAKE) -C TESTING/LIN cleanexe
$(MAKE) -C TESTING/LIN VARLIB='SRC/VARIANTS/lurec.a' $(MAKE) -C TESTING/LIN VARLIB='../../SRC/VARIANTS/lurec.a'
$(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_lurec.out $(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_lurec.out
$(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_lurec.out $(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_lurec.out
$(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_lurec.out $(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_lurec.out
$(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_lurec.out $(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_lurec.out
$(MAKE) -C TESTING/LIN cleanexe $(MAKE) -C TESTING/LIN cleanexe
$(MAKE) -C TESTING/LIN VARLIB='SRC/VARIANTS/qrll.a' $(MAKE) -C TESTING/LIN VARLIB='../../SRC/VARIANTS/qrll.a'
$(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_qrll.out $(MAKE) -C TESTING stest.out && mv TESTING/stest.out TESTING/stest_qrll.out
$(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_qrll.out $(MAKE) -C TESTING dtest.out && mv TESTING/dtest.out TESTING/dtest_qrll.out
$(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_qrll.out $(MAKE) -C TESTING ctest.out && mv TESTING/ctest.out TESTING/ctest_qrll.out
$(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_qrll.out $(MAKE) -C TESTING ztest.out && mv TESTING/ztest.out TESTING/ztest_qrll.out
.PHONY: cblas_example
cblas_example: cblaslib blaslib cblas_example: cblaslib blaslib
$(MAKE) -C CBLAS cblas_example $(MAKE) -C CBLAS cblas_example
.PHONY: lapacke_example
lapacke_example: lapackelib lapacklib blaslib lapacke_example: lapackelib lapacklib blaslib
$(MAKE) -C LAPACKE lapacke_example $(MAKE) -C LAPACKE lapacke_example
.PHONY: html
html: html:
@echo "LAPACK HTML PAGES GENERATION with Doxygen" @echo "LAPACK HTML PAGES GENERATION with Doxygen"
doxygen DOCS/Doxyfile doxygen DOCS/Doxyfile
@ -96,6 +127,7 @@ html:
@echo "Online version available at http://www.netlib.org/lapack/explore-html/" @echo "Online version available at http://www.netlib.org/lapack/explore-html/"
@echo "==================" @echo "=================="
.PHONY: man
man: man:
@echo "LAPACK MAN PAGES GENERATION with Doxygen" @echo "LAPACK MAN PAGES GENERATION with Doxygen"
doxygen DOCS/Doxyfile_man doxygen DOCS/Doxyfile_man
@ -105,6 +137,7 @@ man:
@echo "Usage: man dgetrf.f" @echo "Usage: man dgetrf.f"
@echo "==================" @echo "=================="
.PHONY: clean cleanobj cleanlib cleanexe cleantest
clean: clean:
$(MAKE) -C INSTALL clean $(MAKE) -C INSTALL clean
$(MAKE) -C BLAS clean $(MAKE) -C BLAS clean

View File

@ -3,6 +3,7 @@
[![Build Status](https://travis-ci.org/Reference-LAPACK/lapack.svg?branch=master)](https://travis-ci.org/Reference-LAPACK/lapack) [![Build Status](https://travis-ci.org/Reference-LAPACK/lapack.svg?branch=master)](https://travis-ci.org/Reference-LAPACK/lapack)
[![Appveyor](https://ci.appveyor.com/api/projects/status/bh38iin398msrbtr?svg=true)](https://ci.appveyor.com/project/langou/lapack/) [![Appveyor](https://ci.appveyor.com/api/projects/status/bh38iin398msrbtr?svg=true)](https://ci.appveyor.com/project/langou/lapack/)
[![codecov](https://codecov.io/gh/Reference-LAPACK/lapack/branch/master/graph/badge.svg)](https://codecov.io/gh/Reference-LAPACK/lapack) [![codecov](https://codecov.io/gh/Reference-LAPACK/lapack/branch/master/graph/badge.svg)](https://codecov.io/gh/Reference-LAPACK/lapack)
[![Packaging status](https://repology.org/badge/tiny-repos/lapack.svg)](https://repology.org/metapackage/lapack/versions)
* VERSION 1.0 : February 29, 1992 * VERSION 1.0 : February 29, 1992
@ -29,6 +30,7 @@
* VERSION 3.7.0 : December 2016 * VERSION 3.7.0 : December 2016
* VERSION 3.7.1 : June 2017 * VERSION 3.7.1 : June 2017
* VERSION 3.8.0 : November 2017 * VERSION 3.8.0 : November 2017
* VERSION 3.9.0 : November 2019
LAPACK is a library of Fortran subroutines for solving the most commonly LAPACK is a library of Fortran subroutines for solving the most commonly
occurring problems in numerical linear algebra. occurring problems in numerical linear algebra.
@ -70,6 +72,14 @@ CBLAS, a C interface to the BLAS, and (5) LAPACKE, a C interface to LAPACK.
- LAPACK includes also the CMake build. You will need to have CMake installed - LAPACK includes also the CMake build. You will need to have CMake installed
on your machine (CMake is available at http://www.cmake.org/). CMake will on your machine (CMake is available at http://www.cmake.org/). CMake will
allow an easy installation on a Windows Machine. allow an easy installation on a Windows Machine.
An example CMake build is:
```sh
mkdir build
cd build
cmake -DCMAKE_INSTALL_LIBDIR=$HOME/.local/lapack ..
cmake --build -j . --target install
```
That installs the LAPACK library under $HOME/.local/lapack/
- Specific information to run LAPACK under Windows is available at - Specific information to run LAPACK under Windows is available at
http://icl.cs.utk.edu/lapack-for-windows/lapack/. http://icl.cs.utk.edu/lapack-for-windows/lapack/.
@ -115,4 +125,3 @@ LAPACK now includes the LAPACKE package. LAPACKE is a Standard C language API
for LAPACK This was born from a collaboration of the LAPACK and INTEL Math for LAPACK This was born from a collaboration of the LAPACK and INTEL Math
Kernel Library teams. See: Kernel Library teams. See:
http://www.netlib.org/lapack/#_standard_c_language_apis_for_lapack. http://www.netlib.org/lapack/#_standard_c_language_apis_for_lapack.

View File

@ -69,7 +69,8 @@ find_program(HOSTNAME NAMES hostname)
find_program(UNAME NAMES uname) find_program(UNAME NAMES uname)
# Get the build name and hostname # Get the build name and hostname
exec_program(${HOSTNAME} ARGS OUTPUT_VARIABLE hostname) execute_process(${HOSTNAME}
OUTPUT_VARIABLE hostname)
string(REGEX REPLACE "[/\\\\+<> #]" "-" hostname "${hostname}") string(REGEX REPLACE "[/\\\\+<> #]" "-" hostname "${hostname}")
message("HOSTNAME: ${hostname}") message("HOSTNAME: ${hostname}")
@ -83,7 +84,8 @@ find_package(Git REQUIRED)
set(CTEST_GIT_COMMAND ${GIT_EXECUTABLE}) set(CTEST_GIT_COMMAND ${GIT_EXECUTABLE})
set(CTEST_UPDATE_COMMAND ${GIT_EXECUTABLE}) set(CTEST_UPDATE_COMMAND ${GIT_EXECUTABLE})
macro(getuname name flag) macro(getuname name flag)
exec_program("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}") execute_process(COMMAND "${UNAME}" "${flag}"
OUTPUT_VARIABLE "${name}")
string(REGEX REPLACE "[/\\\\+<> #]" "-" "${name}" "${${name}}") string(REGEX REPLACE "[/\\\\+<> #]" "-" "${name}" "${${name}}")
string(REGEX REPLACE "^(......|.....|....|...|..|.).*" "\\1" "${name}" "${${name}}") string(REGEX REPLACE "^(......|.....|....|...|..|.).*" "\\1" "${name}" "${${name}}")
endmacro() endmacro()
@ -167,7 +169,7 @@ endif()
# dashboard then set this variable to the directory # dashboard then set this variable to the directory
# the dashboard should be in # the dashboard should be in
make_directory("${CTEST_DASHBOARD_ROOT}") make_directory("${CTEST_DASHBOARD_ROOT}")
# these are the the name of the source and binary directory on disk. # these are the names of the source and binary directory on disk.
# They will be appended to DASHBOARD_ROOT # They will be appended to DASHBOARD_ROOT
set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_DIR_NAME}") set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_DIR_NAME}")
set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}-${CTEST_BUILD_NAME}") set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}-${CTEST_BUILD_NAME}")

View File

@ -12,8 +12,8 @@ import os, sys, math
import getopt import getopt
# Arguments # Arguments
try: try:
opts, args = getopt.getopt(sys.argv[1:], "hd:srep:t:n", opts, args = getopt.getopt(sys.argv[1:], "hd:b:srep:t:n",
["help", "dir", "short", "run", "error","prec=","test=","number"]) ["help", "dir", "bin", "short", "run", "error","prec=","test=","number"])
except getopt.error as msg: except getopt.error as msg:
print(msg) print(msg)
@ -29,14 +29,13 @@ only_numbers=0
test_dir='TESTING' test_dir='TESTING'
bin_dir='bin/Release' bin_dir='bin/Release'
abs_bin_dir=os.path.normpath(os.path.join(os.getcwd(),bin_dir))
for o, a in opts: for o, a in opts:
if o in ("-h", "--help"): if o in ("-h", "--help"):
print(sys.argv[0]+" [-h|--help] [-d dir |--dir dir] [-s |--short] [-r |--run] [-e |--error] [-p p |--prec p] [-t test |--test test] [-n | --number]") print(sys.argv[0]+" [-h|--help] [-d dir |--dir dir] [-s |--short] [-r |--run] [-e |--error] [-p p |--prec p] [-t test |--test test] [-n | --number]")
print(" - h is to print this message") print(" - h is to print this message")
print(" - r is to use to run the LAPACK tests then analyse the output (.out files). By default, the script will not run all the LAPACK tests") print(" - r is to use to run the LAPACK tests then analyse the output (.out files). By default, the script will not run all the LAPACK tests")
print(" - d [dir] is to indicate where is the LAPACK testing directory (.out files). By default, the script will use .") print(" - d [dir] is to indicate where is the LAPACK testing directory (.out files). By default, the script will use .")
print(" - b [bin] is to indicate where is the LAPACK binary files are located. By default, the script will use .")
print(" LEVEL OF OUTPUT") print(" LEVEL OF OUTPUT")
print(" - x is to print a detailed summary") print(" - x is to print a detailed summary")
print(" - e is to print only the error summary") print(" - e is to print only the error summary")
@ -75,6 +74,8 @@ for o, a in opts:
just_errors = 1 just_errors = 1
if o in ( '-p', '--prec' ): if o in ( '-p', '--prec' ):
prec = a prec = a
if o in ( '-b', '--bin' ):
bin_dir = a
if o in ( '-d', '--dir' ): if o in ( '-d', '--dir' ):
test_dir = a test_dir = a
if o in ( '-t', '--test' ): if o in ( '-t', '--test' ):
@ -85,6 +86,8 @@ for o, a in opts:
# process options # process options
abs_bin_dir=os.path.normpath(os.path.join(os.getcwd(),bin_dir))
os.chdir(test_dir) os.chdir(test_dir)
execution=1 execution=1
@ -114,10 +117,7 @@ def run_summary_test( f, cmdline, short_summary):
pipe = open(cmdline,'r') pipe = open(cmdline,'r')
r=0 r=0
else: else:
if os.name != 'nt': cmdline = os.path.join(abs_bin_dir, cmdline)
cmdline='./' + cmdline
else :
cmdline=abs_bin_dir+os.path.sep+cmdline
outfile=cmdline.split()[4] outfile=cmdline.split()[4]
#pipe = open(outfile,'w') #pipe = open(outfile,'w')
@ -257,16 +257,16 @@ for dtype in range_prec:
else: else:
if dtest==16: if dtest==16:
# LIN TESTS # LIN TESTS
cmdbase="LIN/xlintst"+letter+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out" cmdbase="xlintst"+letter+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out"
elif dtest==17: elif dtest==17:
# PROTO LIN TESTS # PROTO LIN TESTS
cmdbase="LIN/xlintst"+letter+dtypes[0][dtype-1]+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out" cmdbase="xlintst"+letter+dtypes[0][dtype-1]+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out"
elif dtest==18: elif dtest==18:
# PROTO LIN TESTS # PROTO LIN TESTS
cmdbase="LIN/xlintstrf"+letter+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out" cmdbase="xlintstrf"+letter+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out"
else: else:
# EIG TESTS # EIG TESTS
cmdbase="EIG/xeigtst"+letter+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out" cmdbase="xeigtst"+letter+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out"
if (not just_errors and not short_summary): if (not just_errors and not short_summary):
print("Testing "+name+" "+dtests[1][dtest]+"-"+cmdbase, end=' ') print("Testing "+name+" "+dtests[1][dtest]+"-"+cmdbase, end=' ')
# Run the process: either to read the file or run the LAPACK testing # Run the process: either to read the file or run the LAPACK testing

View File

@ -8,10 +8,10 @@ SHELL = /bin/sh
# CC is the C compiler, normally invoked with options CFLAGS. # CC is the C compiler, normally invoked with options CFLAGS.
# #
CC = gcc CC = gcc
CFLAGS = -O3 CFLAGS = -O3
# Modify the FORTRAN and OPTS definitions to refer to the compiler # Modify the FC and FFLAGS definitions to the desired compiler
# and desired compiler options for your machine. NOOPT refers to # and desired compiler options for your machine. NOOPT refers to
# the compiler options desired when NO OPTIMIZATION is selected. # the compiler options desired when NO OPTIMIZATION is selected.
# #
@ -19,23 +19,21 @@ CFLAGS = -O3
# and handle these quantities appropriately. As a consequence, one # and handle these quantities appropriately. As a consequence, one
# should not compile LAPACK with flags such as -ffpe-trap=overflow. # should not compile LAPACK with flags such as -ffpe-trap=overflow.
# #
FORTRAN = gfortran FC = gfortran
OPTS = -O2 -frecursive FFLAGS = -O2 -frecursive
DRVOPTS = $(OPTS) FFLAGS_DRV = $(FFLAGS)
NOOPT = -O0 -frecursive FFLAGS_NOOPT = -O0 -frecursive
# Define LOADER and LOADOPTS to refer to the loader and desired # Define LDFLAGS to the desired linker options for your machine.
# load options for your machine.
# #
LOADER = gfortran LDFLAGS =
LOADOPTS =
# The archiver and the flag(s) to use when building an archive # The archiver and the flag(s) to use when building an archive
# (library). If your system has no ranlib, set RANLIB = echo. # (library). If your system has no ranlib, set RANLIB = echo.
# #
ARCH = ar AR = ar
ARCHFLAGS = cr ARFLAGS = cr
RANLIB = ranlib RANLIB = ranlib
# Timer for the SECOND and DSECND routines # Timer for the SECOND and DSECND routines
# #
@ -78,8 +76,8 @@ TIMER = INT_ETIME
# machine-specific, optimized BLAS library should be used whenever # machine-specific, optimized BLAS library should be used whenever
# possible.) # possible.)
# #
BLASLIB = ../../librefblas.a BLASLIB = $(TOPSRCDIR)/librefblas.a
CBLASLIB = ../../libcblas.a CBLASLIB = $(TOPSRCDIR)/libcblas.a
LAPACKLIB = liblapack.a LAPACKLIB = $(TOPSRCDIR)/liblapack.a
TMGLIB = libtmglib.a TMGLIB = $(TOPSRCDIR)/libtmglib.a
LAPACKELIB = liblapacke.a LAPACKELIB = $(TOPSRCDIR)/liblapacke.a

28
lapack-netlib/meson.build Normal file
View File

@ -0,0 +1,28 @@
# cd build
# meson --buildtype release --prefix=$HOME/.local/lapack ..
# ninja
# ninja install
project('LAPACK', 'fortran',
default_options : ['default_library=static', 'libdir=lib/'],
version : '3.8.0')
subdir('BLAS/SRC')
subdir('SRC')
prec = get_option('realkind')
if prec == 'd'
bsrc = DBLAS1 + DBLAS2 + DBLAS3
lsrc = DZLAUX + DSLASRC
elif prec == 's'
bsrc = SBLAS1 + SBLAS2 + SBLAS3
lsrc = SCLAUX + SLASRC
endif
blas = library('blas', bsrc,
install : true)
lapack = library('lapack', lsrc, ALLAUX,
install : true)

View File

@ -0,0 +1,3 @@
option('realkind', type : 'string', value : 'd',
description : 's: real32 d: real64 c: complex32 z: complex64')