diff --git a/armadillo-flexiblas.patch b/armadillo-flexiblas.patch new file mode 100644 index 0000000..a1c43fa --- /dev/null +++ b/armadillo-flexiblas.patch @@ -0,0 +1,122 @@ +diff -Naur armadillo-9.900.2/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake armadillo-9.900.2-flexiblas/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake +--- armadillo-9.900.2/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake 1970-01-01 10:00:00.000000000 +1000 ++++ armadillo-9.900.2-flexiblas/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake 2020-08-05 19:53:10.573438536 +1000 +@@ -0,0 +1,48 @@ ++set(FlexiBLAS_NAMES) ++set(FlexiBLAS_NAMES ${FlexiBLAS_NAMES} flexiblas) ++ ++set(FlexiBLAS_TMP_LIBRARY) ++set(FlexiBLAS_TMP_LIBRARIES) ++ ++ ++foreach (FlexiBLAS_NAME ${FlexiBLAS_NAMES}) ++ find_library(${FlexiBLAS_NAME}_LIBRARY ++ NAMES ${FlexiBLAS_NAME} ++ PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 /opt/local/lib ++ ) ++ ++ set(FlexiBLAS_TMP_LIBRARY ${${FlexiBLAS_NAME}_LIBRARY}) ++ ++ if(FlexiBLAS_TMP_LIBRARY) ++ set(FlexiBLAS_TMP_LIBRARIES ${FlexiBLAS_TMP_LIBRARIES} ${FlexiBLAS_TMP_LIBRARY}) ++ endif() ++endforeach() ++ ++ ++# use only one library ++ ++if(FlexiBLAS_TMP_LIBRARIES) ++ list(GET FlexiBLAS_TMP_LIBRARIES 0 FlexiBLAS_LIBRARY) ++endif() ++ ++ ++if(FlexiBLAS_LIBRARY) ++ set(FlexiBLAS_LIBRARIES ${FlexiBLAS_LIBRARY}) ++ set(FlexiBLAS_FOUND "YES") ++else() ++ set(FlexiBLAS_FOUND "NO") ++endif() ++ ++ ++if(FlexiBLAS_FOUND) ++ if (NOT FlexiBLAS_FIND_QUIETLY) ++ message(STATUS "Found FlexiBLAS: ${FlexiBLAS_LIBRARIES}") ++ endif() ++else() ++ if(FlexiBLAS_FIND_REQUIRED) ++ message(FATAL_ERROR "Could not find FlexiBLAS") ++ endif() ++endif() ++ ++ ++# mark_as_advanced(FlexiBLAS_LIBRARY) +diff -Naur armadillo-9.900.2/CMakeLists.txt armadillo-9.900.2-flexiblas/CMakeLists.txt +--- armadillo-9.900.2/CMakeLists.txt 2016-06-17 02:21:12.000000000 +1000 ++++ armadillo-9.900.2-flexiblas/CMakeLists.txt 2020-08-05 19:52:44.000439011 +1000 +@@ -134,6 +134,10 @@ + + option(DETECT_HDF5 "Detect HDF5 and include HDF5 support, if found" ON) + ++option(ALLOW_FLEXIBLAS_LINUX "Allow detection of FlexiBLAS on Linux (EXPERIMENTAL)" OFF) ++## Example use on the command line: ++## cmake -D ALLOW_FLEXIBLAS_LINUX=true . ++ + option(ALLOW_OPENBLAS_MACOS "Allow detection of OpenBLAS on macOS" OFF) + ## Example use on the command line: + ## cmake -D ALLOW_OPENBLAS_MACOS=true . +@@ -171,6 +175,7 @@ + message(STATUS "CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}" ) + message(STATUS "BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}" ) + message(STATUS "DETECT_HDF5 = ${DETECT_HDF5}" ) ++message(STATUS "ALLOW_FLEXIBLAS_LINUX = ${ALLOW_FLEXIBLAS_LINUX}" ) + message(STATUS "ALLOW_OPENBLAS_MACOS = ${ALLOW_OPENBLAS_MACOS}" ) + message(STATUS "ALLOW_BLAS_LAPACK_MACOS = ${ALLOW_BLAS_LAPACK_MACOS}" ) + message(STATUS "BUILD_SMOKE_TEST = ${BUILD_SMOKE_TEST}" ) +@@ -259,15 +264,39 @@ + include(ARMA_FindBLAS) + include(ARMA_FindLAPACK) + +- message(STATUS " MKL_FOUND = ${MKL_FOUND}" ) +- message(STATUS " ACMLMP_FOUND = ${ACMLMP_FOUND}" ) +- message(STATUS " ACML_FOUND = ${ACML_FOUND}" ) +- message(STATUS "OpenBLAS_FOUND = ${OpenBLAS_FOUND}") +- message(STATUS " ATLAS_FOUND = ${ATLAS_FOUND}" ) +- message(STATUS " BLAS_FOUND = ${BLAS_FOUND}" ) +- message(STATUS " LAPACK_FOUND = ${LAPACK_FOUND}" ) ++ if(ALLOW_FLEXIBLAS_LINUX AND (${CMAKE_SYSTEM_NAME} MATCHES "Linux")) ++ include(ARMA_FindFlexiBLAS) ++ endif() ++ ++ message(STATUS " MKL_FOUND = ${MKL_FOUND}" ) ++ message(STATUS " ACMLMP_FOUND = ${ACMLMP_FOUND}" ) ++ message(STATUS " ACML_FOUND = ${ACML_FOUND}" ) ++ message(STATUS " OpenBLAS_FOUND = ${OpenBLAS_FOUND}" ) ++ message(STATUS " ATLAS_FOUND = ${ATLAS_FOUND}" ) ++ message(STATUS " BLAS_FOUND = ${BLAS_FOUND}" ) ++ message(STATUS " LAPACK_FOUND = ${LAPACK_FOUND}" ) + +- if(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND) ++ if(FlexiBLAS_FOUND) ++ ++ message(STATUS "FlexiBLAS_FOUND = ${FlexiBLAS_FOUND}" ) ++ ++ set(ARMA_USE_LAPACK true) ++ set(ARMA_USE_BLAS true) ++ ++ set(ARMA_LIBS ${ARMA_LIBS} ${FlexiBLAS_LIBRARIES}) ++ ++ message(STATUS "") ++ message(STATUS "*** Using FlexiBLAS to provide BLAS and LAPACK functions.") ++ message(STATUS "*** If using FlexiBLAS causes problems, please file a bug") ++ message(STATUS "*** report with the FlexiBLAS developers:") ++ message(STATUS "*** https://www.mpi-magdeburg.mpg.de/projects/flexiblas") ++ message(STATUS "") ++ message(STATUS "*** To disable detection of FlexiBLAS,") ++ message(STATUS "*** rerun cmake with FlexiBLAS detection disabled:") ++ message(STATUS "*** cmake -D ALLOW_FLEXIBLAS_LINUX=false .") ++ message(STATUS "") ++ ++ elseif(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND) + + set(ARMA_USE_LAPACK true) + set(ARMA_USE_BLAS true)