/normxcorr/trunk

To get this branch, use:
bzr branch http://suren.me/webbzr/normxcorr/trunk

« back to all changes in this revision

Viewing changes to dict_hw/cmake/FindMKL.cmake

  • Committer: Suren A. Chilingaryan
  • Date: 2009-12-12 01:38:41 UTC
  • Revision ID: csa@dside.dyndns.org-20091212013841-feih3qa4i28x75j4
Provide stand-alone library

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# - Try to find the Intel Math Kernel Library
 
2
# Once done this will define
 
3
#
 
4
#  MKL_FOUND - system has MKL
 
5
#  MKL_ROOT_DIR - path to the MKL base directory
 
6
#  MKL_INCLUDE_DIR - the MKL include directory
 
7
#  MKL_LIBRARIES - MKL libraries
 
8
#
 
9
# There are few sets of libraries:
 
10
# Array indexes modes:
 
11
# LP - 32 bit indexes of arrays
 
12
# ILP - 64 bit indexes of arrays
 
13
# Threading:
 
14
# SEQUENTIAL - no threading
 
15
# INTEL - Intel threading library
 
16
# GNU - GNU threading library
 
17
# MPI support
 
18
# NOMPI - no MPI support
 
19
# INTEL - Intel MPI library
 
20
# OPEN - Open MPI library
 
21
# SGI - SGI MPT Library
 
22
 
 
23
if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
 
24
    set(MKL_ARCH_DIR "em64t")
 
25
else(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
 
26
    set(MKL_ARCH_DIR "32")
 
27
endif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
 
28
 
 
29
 
 
30
set (MKL_THREAD_VARIANTS SEQUENTIAL GNUTHREAD INTELTHREAD)
 
31
set (MKL_MODE_VARIANTS ILP LP)
 
32
set (MKL_MPI_VARIANTS NOMPI INTELMPI OPENMPI SGIMPT) 
 
33
 
 
34
 
 
35
find_path(MKL_ROOT_DIR
 
36
    include/mkl_cblas.h
 
37
    PATHS
 
38
        $ENV{MKLDIR}
 
39
        /opt/intel/mkl/*/
 
40
        /opt/intel/cmkl/*/
 
41
)
 
42
 
 
43
find_path(MKL_INCLUDE_DIR
 
44
  mkl_cblas.h
 
45
  PATHS
 
46
    ${MKL_ROOT_DIR}/include
 
47
    ${INCLUDE_INSTALL_DIR}
 
48
)
 
49
 
 
50
find_path(MKL_FFTW_INCLUDE_DIR
 
51
  fftw3.h
 
52
  PATH_SUFFIXES fftw
 
53
  PATHS
 
54
    ${MKL_ROOT_DIR}/include
 
55
    ${INCLUDE_INSTALL_DIR}
 
56
  NO_DEFAULT_PATH
 
57
  
 
58
)
 
59
 
 
60
 
 
61
find_library(MKL_CORE_LIBRARY
 
62
  mkl_core
 
63
  PATHS
 
64
    ${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
 
65
    ${LIB_INSTALL_DIR}
 
66
)
 
67
 
 
68
# Threading libraries
 
69
find_library(MKL_SEQUENTIAL_LIBRARY
 
70
  mkl_sequential
 
71
  PATHS
 
72
    ${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
 
73
    ${LIB_INSTALL_DIR}
 
74
)
 
75
 
 
76
find_library(MKL_INTELTHREAD_LIBRARY
 
77
  mkl_intel_thread
 
78
  PATHS
 
79
    ${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
 
80
    ${LIB_INSTALL_DIR}
 
81
)
 
82
 
 
83
find_library(MKL_GNUTHREAD_LIBRARY
 
84
  mkl_gnu_thread
 
85
  PATHS
 
86
    ${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
 
87
    ${LIB_INSTALL_DIR}
 
88
)
 
89
 
 
90
# Intel Libraries
 
91
find_library(MKL_LP_LIBRARY
 
92
  mkl_intel_lp64
 
93
  PATHS
 
94
    ${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
 
95
    ${LIB_INSTALL_DIR}
 
96
)
 
97
 
 
98
find_library(MKL_ILP_LIBRARY
 
99
  mkl_intel_ilp64
 
100
  PATHS
 
101
    ${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
 
102
    ${LIB_INSTALL_DIR}
 
103
)
 
104
 
 
105
 
 
106
foreach (MODEVAR ${MKL_MODE_VARIANTS})
 
107
    foreach (THREADVAR ${MKL_THREAD_VARIANTS})
 
108
        if (MKL_CORE_LIBRARY AND MKL_${MODEVAR}_LIBRARY AND MKL_${THREADVAR}_LIBRARY)
 
109
            set(MKL_${MODEVAR}_${THREADVAR}_LIBRARIES ${MKL_${MODEVAR}_LIBRARY} ${MKL_${THREADVAR}_LIBRARY} ${MKL_CORE_LIBRARY} )
 
110
        endif()
 
111
    endforeach()
 
112
endforeach()
 
113
 
 
114
set(MKL_LIBRARIES ${MKL_LP_SEQUENTIAL_LIBRARIES})
 
115
 
 
116
include(FindPackageHandleStandardArgs)
 
117
find_package_handle_standard_args(MKL DEFAULT_MSG MKL_INCLUDE_DIR MKL_LIBRARIES)
 
118
    
 
119
 
 
120
mark_as_advanced(MKL_INCLUDE_DIR MKL_LIBRARIES 
 
121
    MKL_CORE_LIBRARY MKL_LP_LIBRARY MKL_ILP_LIBRARY
 
122
    MKL_SEQUENTIAL_LIBRARY MKL_INTELTHREAD_LIBRARY MKL_GNUTHREAD_LIBRARY
 
123
)