CMakeLists.txt 4.39 KB
Newer Older
1 2 3 4 5 6
###
#
# @copyright (c) 2009-2014 The University of Tennessee and The University
#                          of Tennessee Research Foundation.
#                          All rights reserved.
# @copyright (c) 2012-2014 Inria. All rights reserved.
7
# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
#
###
#
# @file CMakeLists.c
#
#  MORSE example routines
#  MORSE is a software package provided by Inria Bordeaux - Sud-Ouest, LaBRI,
#  University of Bordeaux, Bordeaux INP
#
#  @version 1.0.0
#  @author Florent Pruvost
#  @date 2014-10-13
#
###


include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

# compilation for other sources step1 and >
set(LTM_SOURCES 
    step1.c
    step2.c
    step3.c
    step4.c
    step5.c
    step6.c
   )

# Define what libraries we have to link with
# ------------------------------------------
unset(libs_for_ltm)
list(APPEND libs_for_ltm
41
     chameleon
42 43
)

44 45
if(CHAMELEON_SCHED_STARPU)
    if ( CHAMELEON_USE_MPI )
46
        list(APPEND libs_for_ltm
47
             chameleon_starpu
48 49 50 51
             ${STARPU_MPI_LIBRARIES}
        )
    else()
        list(APPEND libs_for_ltm
52
             chameleon_starpu
53 54 55 56
             ${STARPU_SHM_LIBRARIES}
        )
    endif()
    link_directories(${STARPU_LIBRARY_DIRS})
57
elseif(CHAMELEON_SCHED_QUARK)
58
    list(APPEND libs_for_ltm
59
         chameleon_quark
60 61 62 63 64 65 66 67 68 69 70
         ${QUARK_LIBRARIES}
      )
    link_directories(${QUARK_LIBRARY_DIRS})
endif()


# specific compilation for step0 because we potentially want to use 
# multithreaded BLAS and LAPACK libraries for this step
unset(libs_for_step0)
list(APPEND libs_for_step0 ${libs_for_ltm})

71
if(NOT CHAMELEON_SIMULATION)
72

73
    if(CHAMELEON_USE_CUDA)
74 75 76 77 78
        list(APPEND libs_for_ltm
             ${CUDA_LIBRARIES}
        )
        link_directories(${CUDA_LIBRARY_DIRS})
    endif()
79
    if(CHAMELEON_USE_MAGMA)
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
        list(APPEND libs_for_ltm
             ${MAGMA_LIBRARIES}
        )
        link_directories(${MAGMA_LIBRARY_DIRS})
    endif()
    
    list(APPEND libs_for_ltm
         coreblas
         ${LAPACKE_LIBRARIES}
         ${CBLAS_LIBRARIES}         
         ${LAPACK_SEQ_LIBRARIES}
         ${BLAS_SEQ_LIBRARIES}
         ${HWLOC_LIBRARIES}
         ${EXTRA_LIBRARIES}
    )
    
    if( BLA_VENDOR MATCHES "Intel10_64lp*" OR BLA_VENDOR MATCHES "ACML*")
        if(BLAS_PAR_LIBRARIES)
            set(CBLAS_LIBRARIES "${BLAS_PAR_LIBRARIES}")
        endif()
        if(LAPACK_PAR_LIBRARIES)
            set(LAPACKE_LIBRARIES "${LAPACK_PAR_LIBRARIES}")
        endif()
    endif()
    if (BLAS_PAR_LIBRARIES AND LAPACK_PAR_LIBRARIES)
        list(APPEND libs_for_step0
             coreblas
             ${LAPACKE_LIBRARIES}
             ${CBLAS_LIBRARIES} 
             ${LAPACK_PAR_LIBRARIES}
             ${BLAS_PAR_LIBRARIES}
             ${HWLOC_LIBRARIES}
             ${EXTRA_LIBRARIES}
        )       
        
    else()
        list(APPEND libs_for_step0
             coreblas
             ${LAPACKE_LIBRARIES}
             ${CBLAS_LIBRARIES}         
             ${LAPACK_SEQ_LIBRARIES}
             ${BLAS_SEQ_LIBRARIES}
             ${HWLOC_LIBRARIES}
             ${EXTRA_LIBRARIES}
        )
    endif ()    
    
    link_directories(${LAPACKE_LIBRARY_DIRS})
    link_directories(${LAPACK_LIBRARY_DIRS})
    link_directories(${CBLAS_LIBRARY_DIRS})
    link_directories(${BLAS_LIBRARY_DIRS})

else()

    list(APPEND libs_for_ltm
         coreblas
         simulapacke         
         simucblas
         ${HWLOC_LIBRARIES}
         ${EXTRA_LIBRARIES}
    )
    list(APPEND libs_for_step0
         coreblas
         simulapacke         
         simucblas
         ${HWLOC_LIBRARIES}
         ${EXTRA_LIBRARIES}
    )
    
endif()

link_directories(${HWLOC_LIBRARY_DIRS})

# message(STATUS "libs timings: ${libs_for_ltm}")
foreach(_ltm ${LTM_SOURCES})
    get_filename_component(_name_exe ${_ltm} NAME_WE)
    add_executable(${_name_exe} ${_ltm})
    set_property(TARGET ${_name_exe} PROPERTY LINKER_LANGUAGE Fortran)
    target_link_libraries(${_name_exe} ${libs_for_ltm})
    install(TARGETS ${_name_exe}
            DESTINATION ${CMAKE_INSTALL_PREFIX}/example/lapack_to_morse)
endforeach()

add_executable(step0 step0.c)
set_property(TARGET step0 PROPERTY LINKER_LANGUAGE Fortran)
target_link_libraries(step0 ${libs_for_step0})
install(TARGETS step0
        DESTINATION ${CMAKE_INSTALL_PREFIX}/example/lapack_to_morse)

###
### END CMakeLists.txt
###