aboutsummaryrefslogtreecommitdiff
path: root/arrayfire-lapack-detection.patch
diff options
context:
space:
mode:
authorEfraim Flashner2019-08-06 07:33:47 -0500
committerEfraim Flashner2019-08-06 07:33:47 -0500
commit83c0ba13d35055ff73620ec7163c6e862a06f805 (patch)
treec862ab5a35a50a0286eb0b03afda879cf22bb81e /arrayfire-lapack-detection.patch
parentb0926f0df4f76b24dbb99da3f10a87e606fac993 (diff)
downloadguix-bioinformatics-83c0ba13d35055ff73620ec7163c6e862a06f805.tar.gz
gn: Fix building arrayfire.
Diffstat (limited to 'arrayfire-lapack-detection.patch')
-rw-r--r--arrayfire-lapack-detection.patch277
1 files changed, 277 insertions, 0 deletions
diff --git a/arrayfire-lapack-detection.patch b/arrayfire-lapack-detection.patch
new file mode 100644
index 0000000..1925122
--- /dev/null
+++ b/arrayfire-lapack-detection.patch
@@ -0,0 +1,277 @@
+https://sources.debian.org/data/main/a/arrayfire/3.3.2+dfsg1-4/debian/patches/Fix-LAPACKE-detection.patch
+
+From: Ghislain Antony Vaillant <ghisvail@gmail.com>
+Date: Wed, 2 Mar 2016 10:46:50 +0000
+Subject: Fix LAPACKE detection.
+
+---
+ CMakeModules/FindLAPACKE.cmake | 54 +++++++++++++++------------------------
+ src/backend/cpu/CMakeLists.txt | 18 ++++++-------
+ src/backend/cuda/CMakeLists.txt | 11 ++++----
+ src/backend/opencl/CMakeLists.txt | 19 +++++++-------
+ 4 files changed, 45 insertions(+), 57 deletions(-)
+
+diff --git a/CMakeModules/FindLAPACKE.cmake b/CMakeModules/FindLAPACKE.cmake
+index 9251ee9..1a73632 100644
+--- a/CMakeModules/FindLAPACKE.cmake
++++ b/CMakeModules/FindLAPACKE.cmake
+@@ -4,13 +4,13 @@
+ # FIND_PACKAGE(LAPACKE [REQUIRED] [QUIET] )
+ #
+ # It sets the following variables:
+-# LAPACK_FOUND ... true if LAPACKE is found on the system
+-# LAPACK_LIBRARIES ... full path to LAPACKE library
+-# LAPACK_INCLUDES ... LAPACKE include directory
+-#
++# LAPACKE_FOUND ... true if LAPACKE is found on the system
++# LAPACKE_INCLUDE_DIRS ... LAPACKE include directories
++# LAPACKE_LIBRARIES ... path to LAPACKE libraries
++# LAPACKE_LIBRARY_DIRS ... LAPACKE library directories
+
+ SET(LAPACKE_ROOT_DIR CACHE STRING
+- "Root directory for custom LAPACK implementation")
++ "Root directory for custom LAPACKE implementation")
+
+ IF (NOT INTEL_MKL_ROOT_DIR)
+ SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
+@@ -40,29 +40,20 @@ IF(PKG_CONFIG_FOUND AND NOT LAPACKE_ROOT_DIR)
+ ENDIF()
+
+ IF(PC_LAPACKE_FOUND)
++
++ # Verify sanity of LAPACKE pkg-config file.
+ FOREACH(PC_LIB ${PC_LAPACKE_LIBRARIES})
+ FIND_LIBRARY(${PC_LIB}_LIBRARY NAMES ${PC_LIB} HINTS ${PC_LAPACKE_LIBRARY_DIRS} )
+ IF (NOT ${PC_LIB}_LIBRARY)
+ MESSAGE(FATAL_ERROR "Something is wrong in your pkg-config file - lib ${PC_LIB} not found in ${PC_LAPACKE_LIBRARY_DIRS}")
+ ENDIF (NOT ${PC_LIB}_LIBRARY)
+- LIST(APPEND LAPACKE_LIB ${${PC_LIB}_LIBRARY})
+ ENDFOREACH(PC_LIB)
+
+- FIND_PATH(
+- LAPACKE_INCLUDES
+- NAMES "lapacke.h"
+- PATHS
+- ${PC_LAPACKE_INCLUDE_DIRS}
+- ${INCLUDE_INSTALL_DIR}
+- /usr/include
+- /usr/local/include
+- /sw/include
+- /opt/local/include
+- DOC "LAPACKE Include Directory"
+- )
++ set(LAPACKE_LIBRARIES ${PC_LAPACKE_LIBRARIES})
++ set(LAPACKE_LIBRARY_DIRS ${PC_LAPACKE_LIBRARY_DIRS})
+
+- FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACKE DEFAULT_MSG LAPACKE_LIB)
+- MARK_AS_ADVANCED(LAPACKE_INCLUDES LAPACKE_LIB)
++ FIND_PATH(LAPACKE_INCLUDE_DIRS NAMES "lapacke.h"
++ PATHS ${PC_LAPACKE_INCLUDE_DIRS})
+
+ ELSE(PC_LAPACKE_FOUND)
+
+@@ -97,7 +88,6 @@ ELSE(PC_LAPACKE_FOUND)
+ LAPACKE_LIB
+ NAMES "lapacke" "liblapacke" "openblas" "mkl_rt"
+ PATHS
+- ${PC_LAPACKE_LIBRARY_DIRS}
+ ${LIB_INSTALL_DIR}
+ /opt/intel/mkl/lib/ia32
+ /opt/intel/mkl/lib/intel64
+@@ -113,7 +103,6 @@ ELSE(PC_LAPACKE_FOUND)
+ LAPACK_LIB
+ NAMES "lapack" "liblapack" "openblas" "mkl_rt"
+ PATHS
+- ${PC_LAPACKE_LIBRARY_DIRS}
+ ${LIB_INSTALL_DIR}
+ /opt/intel/mkl/lib/ia32
+ /opt/intel/mkl/lib/intel64
+@@ -129,7 +118,6 @@ ELSE(PC_LAPACKE_FOUND)
+ LAPACKE_INCLUDES
+ NAMES "lapacke.h" "mkl_lapacke.h"
+ PATHS
+- ${PC_LAPACKE_INCLUDE_DIRS}
+ ${INCLUDE_INSTALL_DIR}
+ /opt/intel/mkl/include
+ /usr/include
+@@ -141,17 +129,15 @@ ELSE(PC_LAPACKE_FOUND)
+ lapacke
+ )
+ ENDIF(LAPACKE_ROOT_DIR)
++ SET(LAPACKE_INCLUDE_DIRS ${LAPACKE_INCLUDES})
++ SET(LAPACKE_LIBRARIES ${LAPACKE_LIB} ${LAPACK_LIB})
++ MARK_AS_ADVANCED(LAPACKE_INCLUDES LAPACKE_LIB LAPACK_LIB)
+ ENDIF(PC_LAPACKE_FOUND)
+
+-IF(LAPACKE_LIB AND LAPACK_LIB)
+- SET(LAPACK_LIBRARIES ${LAPACKE_LIB} ${LAPACK_LIB})
+-ENDIF()
+-IF(LAPACKE_INCLUDES)
+- SET(LAPACK_INCLUDE_DIR ${LAPACKE_INCLUDES})
+-ENDIF()
+-
+ INCLUDE(FindPackageHandleStandardArgs)
+-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACK DEFAULT_MSG
+- LAPACK_INCLUDE_DIR LAPACK_LIBRARIES)
+-
+-MARK_AS_ADVANCED(LAPACK_INCLUDES LAPACK_LIBRARIES)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACKE DEFAULT_MSG
++ LAPACKE_LIBRARIES
++ LAPACKE_INCLUDE_DIRS)
++MARK_AS_ADVANCED(LAPACKE_LIBRARIES
++ LAPACKE_INCLUDE_DIRS
++ LAPACKE_LIBRARY_DIRS)
+diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt
+index ea57269..efe50a0 100644
+--- a/src/backend/cpu/CMakeLists.txt
++++ b/src/backend/cpu/CMakeLists.txt
+@@ -55,7 +55,7 @@ MESSAGE(STATUS "FFTW Library: ${FFTW_LIBRARIES}")
+
+ IF(APPLE)
+ FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
+- IF(NOT LAPACK_FOUND)
++ IF(NOT LAPACKE_FOUND)
+ # UNSET THE VARIABLES FROM LAPACKE
+ UNSET(LAPACKE_LIB CACHE)
+ UNSET(LAPACK_LIB CACHE)
+@@ -67,11 +67,10 @@ ELSE(APPLE) # Linux and Windows
+ FIND_PACKAGE(LAPACKE)
+ ENDIF(APPLE)
+
+-IF(NOT LAPACK_FOUND)
+- MESSAGE(WARNING "LAPACK not found. Functionality will be disabled")
+-ELSE(NOT LAPACK_FOUND)
++IF(NOT LAPACKE_FOUND)
++ MESSAGE(WARNING "LAPACKE not found. Functionality will be disabled")
++ELSE(NOT LAPACKE_FOUND)
+ ADD_DEFINITIONS(-DWITH_CPU_LINEAR_ALGEBRA)
+- MESSAGE(STATUS "LAPACK libraries found: ${LAPACK_LIBRARIES}")
+ ENDIF()
+
+ IF(NOT UNIX)
+@@ -99,8 +98,9 @@ INCLUDE_DIRECTORIES(
+ ${CBLAS_INCLUDE_DIR}
+ )
+
+-IF(LAPACK_FOUND)
+- INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
++IF(LAPACKE_FOUND)
++ INCLUDE_DIRECTORIES(${LAPACKE_INCLUDE_DIRS})
++ LINK_DIRECTORIES(${LAPACKE_LIBRARY_DIRS})
+ ENDIF()
+
+ FILE(GLOB cpu_headers
+@@ -213,8 +213,8 @@ IF(FORGE_FOUND AND NOT USE_SYSTEM_FORGE)
+ ADD_DEPENDENCIES(afcpu forge)
+ ENDIF()
+
+-IF(LAPACK_FOUND)
+- TARGET_LINK_LIBRARIES(afcpu PRIVATE ${LAPACK_LIBRARIES})
++IF(LAPACKE_FOUND)
++ TARGET_LINK_LIBRARIES(afcpu PRIVATE ${LAPACKE_LIBRARIES})
+ ENDIF()
+
+ IF(FORGE_FOUND)
+diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt
+index 4efb427..24c6544 100644
+--- a/src/backend/cuda/CMakeLists.txt
++++ b/src/backend/cuda/CMakeLists.txt
+@@ -105,7 +105,7 @@ ELSE(CUDA_cusolver_LIBRARY)
+ ## Try to use CPU side lapack
+ IF(APPLE)
+ FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
+- IF(NOT LAPACK_FOUND)
++ IF(NOT LAPACKE_FOUND)
+ # UNSET THE VARIABLES FROM LAPACKE
+ UNSET(LAPACKE_LIB CACHE)
+ UNSET(LAPACK_LIB CACHE)
+@@ -117,9 +117,9 @@ ELSE(CUDA_cusolver_LIBRARY)
+ FIND_PACKAGE(LAPACKE)
+ ENDIF(APPLE)
+
+- IF(NOT LAPACK_FOUND)
++ IF(NOT LAPACKE_FOUND)
+ MESSAGE(STATUS "CUDA Version ${CUDA_VERSION_STRING} does not contain cusolver library. Linear Algebra will not be available.")
+- ELSE(NOT LAPACK_FOUND)
++ ELSE(NOT LAPACKE_FOUND)
+ MESSAGE(STATUS "CUDA Version ${CUDA_VERSION_STRING} does not contain cusolver library. But CPU LAPACK libraries are available. Will fallback to using host side code.")
+ ADD_DEFINITIONS(-DWITH_CPU_LINEAR_ALGEBRA)
+ IF(USE_CUDA_MKL) # Manual MKL Setup
+@@ -148,7 +148,8 @@ INCLUDE_DIRECTORIES(
+ )
+
+ IF(CUDA_LAPACK_CPU_FALLBACK)
+- INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
++ INCLUDE_DIRECTORIES(${LAPACKE_INCLUDE_DIRS})
++ LINK_DIRECTORIES(${LAPACKE_LIBRARY_DIRS})
+ ENDIF()
+
+ FILE(GLOB cuda_headers
+@@ -379,7 +380,7 @@ ENDIF()
+ IF(CUDA_cusolver_LIBRARY)
+ TARGET_LINK_LIBRARIES(afcuda PRIVATE ${CUDA_cusolver_LIBRARY})
+ ELSEIF(CUDA_LAPACK_CPU_FALLBACK)
+- TARGET_LINK_LIBRARIES(afcuda PRIVATE ${LAPACK_LIBRARIES})
++ TARGET_LINK_LIBRARIES(afcuda PRIVATE ${LAPACKE_LIBRARIES})
+ ENDIF()
+
+ SET_TARGET_PROPERTIES(afcuda PROPERTIES
+diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt
+index 71247ce..ded53bf 100644
+--- a/src/backend/opencl/CMakeLists.txt
++++ b/src/backend/opencl/CMakeLists.txt
+@@ -12,7 +12,7 @@ ENDIF()
+
+ IF(APPLE)
+ FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
+- IF(NOT LAPACK_FOUND)
++ IF(NOT LAPACKE_FOUND)
+ # UNSET THE VARIABLES FROM LAPACKE
+ UNSET(LAPACKE_LIB CACHE)
+ UNSET(LAPACK_LIB CACHE)
+@@ -24,9 +24,9 @@ ELSE(APPLE) # Linux and Windows
+ FIND_PACKAGE(LAPACKE)
+ ENDIF(APPLE)
+
+-IF(NOT LAPACK_FOUND)
+- MESSAGE(WARNING "LAPACK not found. Functionality will be disabled")
+-ELSE(NOT LAPACK_FOUND)
++IF(NOT LAPACKE_FOUND)
++ MESSAGE(WARNING "LAPACKE not found. Functionality will be disabled")
++ELSE(NOT LAPACKE_FOUND)
+ ADD_DEFINITIONS(-DWITH_OPENCL_LINEAR_ALGEBRA)
+
+ IF(NOT USE_OPENCL_MKL)
+@@ -105,8 +105,9 @@ INCLUDE_DIRECTORIES(
+ ${BoostCompute_INCLUDE_DIRS}
+ ${CBLAS_INCLUDE_DIR}
+ )
+-IF(LAPACK_FOUND)
+- INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
++IF(LAPACKE_FOUND)
++ INCLUDE_DIRECTORIES(${LAPACKE_INCLUDE_DIRS})
++ LINK_DIRECTORIES(${LAPACKE_LIBRARY_DIRS})
+ ENDIF()
+
+ FILE(GLOB opencl_headers
+@@ -163,7 +164,7 @@ source_group(backend\\opencl\\kernel\\convolve\\Sources FILES ${conv_ker_sources
+ source_group(backend\\opencl\\cpu\\Headers FILES ${cpu_headers})
+ source_group(backend\\opencl\\cpu\\Sources FILES ${cpu_sources})
+
+-IF(LAPACK_FOUND)
++IF(LAPACKE_FOUND)
+ FILE(GLOB magma_sources
+ "magma/*.cpp")
+
+@@ -313,9 +314,9 @@ IF(FORGE_FOUND AND NOT USE_SYSTEM_FORGE)
+ ADD_DEPENDENCIES(afopencl forge)
+ ENDIF()
+
+-IF(LAPACK_FOUND)
++IF(LAPACKE_FOUND)
+ TARGET_LINK_LIBRARIES(afopencl
+- PRIVATE ${LAPACK_LIBRARIES}
++ PRIVATE ${LAPACKE_LIBRARIES}
+ PRIVATE ${CBLAS_LIBRARIES})
+ ENDIF()
+