[arrayfire] 06/09: Add patch fixing LAPACKE detection.

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Thu Mar 3 17:02:20 UTC 2016


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch debian/experimental
in repository arrayfire.

commit 71edd03bed7e8683af9432f8f3ae5d39b9af5dd7
Author: Ghislain Antony Vaillant <ghisvail at gmail.com>
Date:   Wed Mar 2 10:47:16 2016 +0000

    Add patch fixing LAPACKE detection.
---
 debian/patches/Fix-LAPACKE-detection.patch | 275 +++++++++++++++++++++++++++++
 debian/patches/series                      |   1 +
 2 files changed, 276 insertions(+)

diff --git a/debian/patches/Fix-LAPACKE-detection.patch b/debian/patches/Fix-LAPACKE-detection.patch
new file mode 100644
index 0000000..8680d24
--- /dev/null
+++ b/debian/patches/Fix-LAPACKE-detection.patch
@@ -0,0 +1,275 @@
+From: Ghislain Antony Vaillant <ghisvail at 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 0732cfa..4b7e407 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
+@@ -139,17 +127,15 @@ ELSE(PC_LAPACKE_FOUND)
+             DOC "LAPACKE Include Directory"
+             )
+     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 9387323..3f409b5 100644
+--- a/src/backend/cpu/CMakeLists.txt
++++ b/src/backend/cpu/CMakeLists.txt
+@@ -40,7 +40,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)
+@@ -52,11 +52,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)
+@@ -84,8 +83,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
+@@ -185,8 +185,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 ae0690d..5efdac8 100644
+--- a/src/backend/cuda/CMakeLists.txt
++++ b/src/backend/cuda/CMakeLists.txt
+@@ -103,7 +103,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)
+@@ -115,9 +115,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
+@@ -146,7 +146,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
+@@ -343,7 +344,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 bbe430d..c1484db 100644
+--- a/src/backend/opencl/CMakeLists.txt
++++ b/src/backend/opencl/CMakeLists.txt
+@@ -22,7 +22,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)
+@@ -34,9 +34,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
+@@ -153,7 +154,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")
+ 
+@@ -289,9 +290,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()
+ 
diff --git a/debian/patches/series b/debian/patches/series
index f64c3c8..f5a4238 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ Use-system-mathjax.patch
 Disable-privacy-breaching-settings.patch
 Use-system-gtest.patch
 Disable-git-usage-in-Doxygen-settings.patch
+Fix-LAPACKE-detection.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git



More information about the debian-science-commits mailing list