diff --git a/cmake_modules/morse/find/FindCHAMELEON.cmake b/cmake_modules/morse/find/FindCHAMELEON.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..e32ee50b77bcfb9978557e8c1c9a890663ab44ea
--- /dev/null
+++ b/cmake_modules/morse/find/FindCHAMELEON.cmake
@@ -0,0 +1,535 @@
+###
+#
+# @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.
+# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+#
+###
+#
+# - Find CHAMELEON include dirs and libraries
+# Use this module by invoking find_package with the form:
+#  find_package(CHAMELEON
+#               [REQUIRED]             # Fail with error if chameleon is not found
+#               [COMPONENTS <libs>...] # required dependencies
+#              )
+#  Components available:
+#   STARPU (default) or QUARK (not both can be activated): choose one of these runtimes
+#   CUDA (comes with cuBLAS): for use of GPUs
+#   MAGMA: for linear algebra on GPUs
+#   MPI: for use of multiple nodes of distributed memory
+# This module finds headers and chameleon library.
+# Results are reported in variables:
+#  CHAMELEON_FOUND           - True if headers and requested libraries were found
+#  CHAMELEON_INCLUDE_DIRS    - chameleon include directories
+#  CHAMELEON_LIBRARY_DIRS    - Link directories for chameleon libraries
+# The user can give specific paths where to find the libraries adding cmake
+# options at configure (ex: cmake path/to/project -DCHAMELEON_DIR=path/to/chameleon):
+#  CHAMELEON_DIR             - Where to find the base directory of chameleon
+#  CHAMELEON_INCDIR          - Where to find the header files
+#  CHAMELEON_LIBDIR          - Where to find the library files
+
+#=============================================================================
+# Copyright 2012-2013 Inria
+# Copyright 2012-2013 Emmanuel Agullo
+# Copyright 2012-2013 Mathieu Faverge
+# Copyright 2012      Cedric Castagnede
+# Copyright 2013      Florent Pruvost
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file MORSE-Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of Morse, substitute the full
+#  License text for the above reference.)
+
+
+if (NOT CHAMELEON_FOUND)
+    set(CHAMELEON_DIR "" CACHE PATH "Root directory of CHAMELEON library")
+endif()
+
+# Try to find CHAMELEON dependencies if specified as COMPONENTS during the call
+if( CHAMELEON_FIND_COMPONENTS )
+    foreach( component ${CHAMELEON_FIND_COMPONENTS} )
+        if(${CHAMELEON_FIND_REQUIRED_${component}} STREQUAL 1)
+            find_package(${component} REQUIRED)
+        else()
+            find_package(${component})
+        endif()
+        if(${component}_FOUND)
+            set(CHAMELEON_${component}_FOUND TRUE)
+            # should we have these variables available in gui modes?
+            if (MPI_FOUND)
+                mark_as_advanced(MPI_LIBRARY)
+                mark_as_advanced(MPI_EXTRA_LIBRARY)
+            endif()
+            if (CUDA_FOUND)
+                mark_as_advanced(CUDA_BUILD_CUBIN)
+                mark_as_advanced(CUDA_BUILD_EMULATION)
+                mark_as_advanced(CUDA_SDK_ROOT_DIR)
+                mark_as_advanced(CUDA_TOOLKIT_ROOT_DIR)
+                mark_as_advanced(CUDA_VERBOSE_BUILD)
+            endif()
+        else()
+            set(CHAMELEON_${component}_FOUND FALSE)
+        endif()
+    endforeach()
+endif()
+
+# Optionally use pkg-config to detect include/library dirs (if pkg-config is available)
+# -------------------------------------------------------------------------------------
+include(FindPkgConfig)
+find_package(PkgConfig QUIET)
+if(PKG_CONFIG_EXECUTABLE)
+
+    pkg_search_module(CHAMELEON chameleon)
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        if (CHAMELEON_FOUND AND CHAMELEON_LIBRARIES)
+            message(STATUS "Looking for CHAMELEON - found using PkgConfig")
+            #if(NOT CHAMELEON_INCLUDE_DIRS)
+            #    message("${Magenta}CHAMELEON_INCLUDE_DIRS is empty using PkgConfig."
+            #        "Perhaps the path to chameleon headers is already present in your"
+            #        "C(PLUS)_INCLUDE_PATH environment variable.${ColourReset}")
+            #endif()
+        else()
+            message("${Magenta}Looking for CHAMELEON - not found using PkgConfig."
+                "Perhaps you should add the directory containing chameleon.pc"
+                "to the PKG_CONFIG_PATH environment variable.${ColourReset}")
+        endif()
+    endif()
+
+    if (CHAMELEON_FIND_VERSION_EXACT STREQUAL 1)
+        if( NOT (CHAMELEON_FIND_VERSION_MAJOR STREQUAL CHAMELEON_VERSION_MAJOR) OR
+            NOT (CHAMELEON_FIND_VERSION_MINOR STREQUAL CHAMELEON_VERSION_MINOR) )
+            if(NOT CHAMELEON_FIND_QUIETLY)
+                message(FATAL_ERROR
+                        "CHAMELEON version found is ${CHAMELEON_VERSION_STRING}"
+                        "when required is ${CHAMELEON_FIND_VERSION}")
+            endif()
+        endif()
+    else()
+        # if the version found is older than the required then error
+        if( (CHAMELEON_FIND_VERSION_MAJOR STRGREATER CHAMELEON_VERSION_MAJOR) OR
+            (CHAMELEON_FIND_VERSION_MINOR STRGREATER CHAMELEON_VERSION_MINOR) )
+            if(NOT CHAMELEON_FIND_QUIETLY)
+                message(FATAL_ERROR
+                        "CHAMELEON version found is ${CHAMELEON_VERSION_STRING}"
+                        "when required is ${CHAMELEON_FIND_VERSION} or newer")
+            endif()
+        endif()
+    endif()
+
+endif(PKG_CONFIG_EXECUTABLE)
+
+if(NOT CHAMELEON_FOUND OR NOT CHAMELEON_LIBRARIES)
+
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        message(STATUS "Looking for CHAMELEON - PkgConfig not used")
+    endif()
+
+    # Dependencies detection
+    # ----------------------
+
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        message(STATUS "Looking for CHAMELEON - Try to detect pthread")
+    endif()
+    if (CHAMELEON_FIND_REQUIRED)
+        find_package(Threads REQUIRED)
+    else()
+        find_package(Threads)
+    endif()
+    set(CHAMELEON_EXTRA_LIBRARIES "")
+    if( THREADS_FOUND )
+        list(APPEND CHAMELEON_EXTRA_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+    endif ()
+
+    # Add math library to the list of extra
+    # it normally exists on all common systems provided with a C compiler
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        message(STATUS "Looking for CHAMELEON - Try to detect libm")
+    endif()
+    set(CHAMELEON_M_LIBRARIES "")
+    if(UNIX OR WIN32)
+        find_library(
+            CHAMELEON_M_m_LIBRARY
+            NAMES m
+            )
+        mark_as_advanced(CHAMELEON_M_m_LIBRARY)
+        if (CHAMELEON_M_m_LIBRARY)
+            list(APPEND CHAMELEON_M_LIBRARIES "${CHAMELEON_M_m_LIBRARY}")
+            list(APPEND CHAMELEON_EXTRA_LIBRARIES "${CHAMELEON_M_m_LIBRARY}")
+        else()
+            if (CHAMELEON_FIND_REQUIRED)
+                message(FATAL_ERROR "Could NOT find libm on your system."
+                    "Are you sure to a have a C compiler installed?")
+            endif()
+        endif()
+    endif()
+
+    # Try to find librt (libposix4 - POSIX.1b Realtime Extensions library)
+    # on Unix systems except Apple ones because it does not exist on it
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        message(STATUS "Looking for CHAMELEON - Try to detect librt")
+    endif()
+    set(CHAMELEON_RT_LIBRARIES "")
+    if(UNIX AND NOT APPLE)
+        find_library(
+            CHAMELEON_RT_rt_LIBRARY
+            NAMES rt
+            )
+        mark_as_advanced(CHAMELEON_RT_rt_LIBRARY)
+        if (CHAMELEON_RT_rt_LIBRARY)
+            list(APPEND CHAMELEON_RT_LIBRARIES "${CHAMELEON_RT_rt_LIBRARY}")
+            list(APPEND CHAMELEON_EXTRA_LIBRARIES "${CHAMELEON_RT_rt_LIBRARY}")
+        else()
+            if (CHAMELEON_FIND_REQUIRED)
+                message(FATAL_ERROR "Could NOT find librt on your system")
+            endif()
+        endif()
+    endif()
+
+    # CHAMELEON depends on CBLAS
+    #---------------------------
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        message(STATUS "Looking for CHAMELEON - Try to detect CBLAS (depends on BLAS)")
+    endif()
+    if (CHAMELEON_FIND_REQUIRED)
+        find_package(CBLAS REQUIRED COMPONENTS BLASEXT)
+    else()
+        find_package(CBLAS COMPONENTS BLASEXT)
+    endif()
+
+    # CHAMELEON depends on LAPACKE
+    #-----------------------------
+
+    # standalone version of lapacke seems useless for now
+    # let the comment in case we meet some problems of non existing lapacke
+    # functions in lapack library such as mkl, acml, ...
+    #set(LAPACKE_STANDALONE TRUE)
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        message(STATUS "Looking for CHAMELEON - Try to detect LAPACKE (depends on LAPACK)")
+    endif()
+    if (CHAMELEON_FIND_REQUIRED)
+        find_package(LAPACKE REQUIRED COMPONENTS LAPACKEXT)
+    else()
+        find_package(LAPACKE COMPONENTS LAPACKEXT)
+    endif()
+
+    # CHAMELEON depends on TMG
+    #-------------------------
+    if (NOT CHAMELEON_FIND_QUIETLY)
+        message(STATUS "Looking for CHAMELEON - Try to detect TMG (depends on LAPACK)")
+    endif()
+    if (CHAMELEON_FIND_REQUIRED)
+        find_package(TMG REQUIRED)
+    else()
+        find_package(TMG)
+    endif()
+
+    # CHAMELEON may depend on CUDA/CUBLAS
+    #------------------------------------
+    if (NOT CUDA_FOUND)
+        find_package(CUDA)
+    endif()
+
+    # CHAMELEON may depend on MAGMA gpu kernels
+    # call our cmake module to test (in cmake_modules)
+    # change this call position if not appropriated
+    #-------------------------------------------------
+    if ( CUDA_FOUND )
+        set(CHAMELEON_MAGMA_VERSION "1.4" CACHE STRING "oldest MAGMA version desired")
+        find_package(MAGMA ${CHAMELEON_MAGMA_VERSION} COMPONENTS CBLAS LAPACK CUDA)
+    endif()
+
+    # CHAMELEON depends on MPI
+    #-------------------------
+    if (NOT MPI_FOUND)
+
+        # allows to use an external mpi compilation by setting compilers with
+        # -DMPI_C_COMPILER=path/to/mpicc -DMPI_Fortran_COMPILER=path/to/mpif90
+        # at cmake configure
+        if(NOT MPI_C_COMPILER)
+            set(MPI_C_COMPILER mpicc)
+        endif()
+        find_package(MPI)
+
+    endif (NOT MPI_FOUND)
+
+    if( NOT STARPU_FOUND )
+
+        set(CHAMELEON_STARPU_VERSION "1.1" CACHE STRING "oldest STARPU version desired")
+
+        # create list of components in order to make a single call to find_package(starpu...)
+        # we explicitly need a StarPU version built with hwloc
+        set(STARPU_COMPONENT_LIST "HWLOC")
+
+        # StarPU may depend on MPI
+        # allows to use an external mpi compilation by setting compilers with
+        # -DMPI_C_COMPILER=path/to/mpicc -DMPI_Fortran_COMPILER=path/to/mpif90
+        # at cmake configure
+        if(NOT MPI_C_COMPILER)
+            set(MPI_C_COMPILER mpicc)
+        endif()
+        if (CHAMELEON_FIND_REQUIRED_MPI)
+            if(${CHAMELEON_FIND_REQUIRED_MPI} STREQUAL 1)
+                list(APPEND STARPU_COMPONENT_LIST "MPI")
+            endif()
+        endif()
+        if (CHAMELEON_FIND_REQUIRED_CUDA)
+            if(${CHAMELEON_FIND_REQUIRED_CUDA} STREQUAL 1)
+                list(APPEND STARPU_COMPONENT_LIST "CUDA")
+            endif()
+        endif()
+        # set the list of optional dependencies we may discover
+        set(STARPU_OPTIONAL_COMPONENT_LIST "MPI" "CUDA" "MAGMA")
+        find_package(STARPU ${CHAMELEON_STARPU_VERSION}
+                     COMPONENTS ${STARPU_COMPONENT_LIST}
+                     OPTIONAL_COMPONENTS ${STARPU_OPTIONAL_COMPONENT_LIST})
+
+    endif( NOT STARPU_FOUND )
+
+    if( NOT STARPU_FOUND AND NOT QUARK_FOUND)
+
+        # try to find quark runtime
+        find_package(QUARK COMPONENTS HWLOC)
+
+        if (NOT QUARK_FOUND)
+            message(FATAL_ERROR "Nor StarPU (default runtime) neither QUARK"
+            "runtimes have been found while at least one of them should be installed")
+        endif()
+
+    endif( NOT STARPU_FOUND AND NOT QUARK_FOUND)
+
+    # Looking for include
+    # -------------------
+
+    # Add system include paths to search include
+    # ------------------------------------------
+    unset(_inc_env)
+    if(WIN32)
+        string(REPLACE ":" ";" _inc_env "$ENV{INCLUDE}")
+    else()
+        string(REPLACE ":" ";" _path_env "$ENV{INCLUDE}")
+        list(APPEND _inc_env "${_path_env}")
+        string(REPLACE ":" ";" _path_env "$ENV{C_INCLUDE_PATH}")
+        list(APPEND _inc_env "${_path_env}")
+        string(REPLACE ":" ";" _path_env "$ENV{CPATH}")
+        list(APPEND _inc_env "${_path_env}")
+        string(REPLACE ":" ";" _path_env "$ENV{INCLUDE_PATH}")
+        list(APPEND _inc_env "${_path_env}")
+    endif()
+    list(APPEND _inc_env "${CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES}")
+    list(APPEND _inc_env "${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}")
+    list(REMOVE_DUPLICATES _inc_env)
+
+
+    # Try to find the chameleon header in the given paths
+    # ---------------------------------------------------
+    # call cmake macro to find the header path
+    if(CHAMELEON_INCDIR)
+        set(CHAMELEON_morse.h_DIRS "CHAMELEON_morse.h_DIRS-NOTFOUND")
+        find_path(CHAMELEON_morse.h_DIRS
+          NAMES morse.h
+          HINTS ${CHAMELEON_INCDIR})
+    else()
+        if(CHAMELEON_DIR)
+            set(CHAMELEON_morse.h_DIRS "CHAMELEON_morse.h_DIRS-NOTFOUND")
+            find_path(CHAMELEON_morse.h_DIRS
+              NAMES morse.h
+              HINTS ${CHAMELEON_DIR}
+              PATH_SUFFIXES include)
+        else()
+            set(CHAMELEON_morse.h_DIRS "CHAMELEON_morse.h_DIRS-NOTFOUND")
+            find_path(CHAMELEON_morse.h_DIRS
+              NAMES morse.h
+              HINTS ${_inc_env})
+        endif()
+    endif()
+    mark_as_advanced(CHAMELEON_morse.h_DIRS)
+
+    # If found, add path to cmake variable
+    # ------------------------------------
+    if (CHAMELEON_morse.h_DIRS)
+        set(CHAMELEON_INCLUDE_DIRS "${CHAMELEON_morse.h_DIRS}")
+    else ()
+        set(CHAMELEON_INCLUDE_DIRS "CHAMELEON_INCLUDE_DIRS-NOTFOUND")
+        if(NOT CHAMELEON_FIND_QUIETLY)
+            message(STATUS "Looking for chameleon -- morse.h not found")
+        endif()
+    endif()
+
+
+    # Looking for lib
+    # ---------------
+
+    # Add system library paths to search lib
+    # --------------------------------------
+    unset(_lib_env)
+    if(WIN32)
+        string(REPLACE ":" ";" _lib_env "$ENV{LIB}")
+    else()
+        if(APPLE)
+            string(REPLACE ":" ";" _lib_env "$ENV{DYLD_LIBRARY_PATH}")
+        else()
+            string(REPLACE ":" ";" _lib_env "$ENV{LD_LIBRARY_PATH}")
+        endif()
+        list(APPEND _lib_env "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES}")
+        list(APPEND _lib_env "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
+    endif()
+    list(REMOVE_DUPLICATES _lib_env)
+
+    # Try to find the chameleon lib in the given paths
+    # ------------------------------------------------
+
+    # create list of libs to find
+    set(CHAMELEON_libs_to_find "chameleon")
+    if (STARPU_FOUND)
+        list(APPEND CHAMELEON_libs_to_find "chameleon_starpu")
+    elseif (QUARK_FOUND)
+        list(APPEND CHAMELEON_libs_to_find "chameleon_quark")
+    endif()
+    list(APPEND CHAMELEON_libs_to_find "coreblas")
+
+    # call cmake macro to find the lib path
+    if(CHAMELEON_LIBDIR)
+        foreach(chameleon_lib ${CHAMELEON_libs_to_find})
+            set(CHAMELEON_${chameleon_lib}_LIBRARY "CHAMELEON_${chameleon_lib}_LIBRARY-NOTFOUND")
+            find_library(CHAMELEON_${chameleon_lib}_LIBRARY
+                         NAMES ${chameleon_lib}
+                         HINTS ${CHAMELEON_LIBDIR})
+        endforeach()
+    else()
+        if(CHAMELEON_DIR)
+            foreach(chameleon_lib ${CHAMELEON_libs_to_find})
+                set(CHAMELEON_${chameleon_lib}_LIBRARY "CHAMELEON_${chameleon_lib}_LIBRARY-NOTFOUND")
+                find_library(CHAMELEON_${chameleon_lib}_LIBRARY
+                             NAMES ${chameleon_lib}
+                             HINTS ${CHAMELEON_DIR}
+                             PATH_SUFFIXES lib lib32 lib64)
+            endforeach()
+        else()
+            foreach(chameleon_lib ${CHAMELEON_libs_to_find})
+                set(CHAMELEON_${chameleon_lib}_LIBRARY "CHAMELEON_${chameleon_lib}_LIBRARY-NOTFOUND")
+                find_library(CHAMELEON_${chameleon_lib}_LIBRARY
+                             NAMES ${chameleon_lib}
+                             HINTS ${_lib_env})
+            endforeach()
+        endif()
+    endif()
+
+    # If found, add path to cmake variable
+    # ------------------------------------
+    foreach(chameleon_lib ${CHAMELEON_libs_to_find})
+
+        get_filename_component(${chameleon_lib}_lib_path ${CHAMELEON_${chameleon_lib}_LIBRARY} PATH)
+        # set cmake variables (respects naming convention)
+        if (CHAMELEON_LIBRARIES)
+            list(APPEND CHAMELEON_LIBRARIES "${CHAMELEON_${chameleon_lib}_LIBRARY}")
+        else()
+            set(CHAMELEON_LIBRARIES "${CHAMELEON_${chameleon_lib}_LIBRARY}")
+        endif()
+        if (CHAMELEON_LIBRARY_DIRS)
+            list(APPEND CHAMELEON_LIBRARY_DIRS "${${chameleon_lib}_lib_path}")
+        else()
+            set(CHAMELEON_LIBRARY_DIRS "${${chameleon_lib}_lib_path}")
+        endif()
+        mark_as_advanced(CHAMELEON_${chameleon_lib}_LIBRARY)
+
+    endforeach(chameleon_lib ${CHAMELEON_libs_to_find})
+
+    if(CHAMELEON_LIBRARIES)
+        # check a function to validate the find
+        set(CMAKE_REQUIRED_INCLUDES "${CHAMELEON_INCLUDE_DIRS}")
+        set(CMAKE_REQUIRED_FLAGS)
+        foreach(libdir ${CHAMELEON_LIBRARY_DIRS})
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${libdir}")
+        endforeach()
+        set(CMAKE_REQUIRED_LIBRARIES "${CHAMELEON_LIBRARIES}")
+        if (STARPU_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${STARPU_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${STARPU_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${STARPU_LIBRARIES}")
+        endif()
+        if (QUARK_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "$QUARK_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${QUARK_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${QUARK_LIBRARIES}")
+        endif()
+        if (CUDA_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${CUDA_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${CUDA_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${CUDA_CUBLAS_LIBRARIES};${CUDA_LIBRARIES}")
+        endif()
+        if (MAGMA_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${MAGMA_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${MAGMA_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${${MAGMA_LIBRARIES}}")
+        endif()
+        if (MPI_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${MPI_C_INCLUDE_PATH}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${MPI_C_LINK_FLAGS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${MPI_C_LIBRARIES}")
+        endif()
+        if (HWLOC_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${HWLOC_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${HWLOC_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${HWLOC_LIBRARIES}")
+        endif()
+        if (TMG_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${TMG_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${TMG_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${TMG_LIBRARIES}")
+        endif()
+        if (LAPACKE_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${LAPACKE_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${LAPACKE_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${LAPACKE_LIBRARIES}")
+        endif()
+        if (CBLAS_FOUND)
+            list(APPEND CMAKE_REQUIRED_INCLUDES "${CBLAS_INCLUDE_DIRS}")
+            #list(APPEND CMAKE_REQUIRED_FLAGS "-L${CBLAS_LIBRARY_DIRS}")
+            list(APPEND CMAKE_REQUIRED_LIBRARIES "${CBLAS_LIBRARIES}")
+        endif()
+        list(APPEND CMAKE_REQUIRED_LIBRARIES ${CHAMELEON_EXTRA_LIBRARIES})
+        #string(REPLACE ";" " " CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
+
+        unset(CHAMELEON_WORKS CACHE)
+        include(CheckFunctionExists)
+        check_function_exists(MORSE_Init CHAMELEON_WORKS)
+        mark_as_advanced(CHAMELEON_WORKS)
+
+        if(CHAMELEON_WORKS)
+            string(REPLACE " -L" ";" CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
+            set(CHAMELEON_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}")
+            set(CHAMELEON_LIBRARY_DIRS "${CMAKE_REQUIRED_FLAGS}")
+            set(CHAMELEON_INCLUDE_DIRS "${CMAKE_REQUIRED_INCLUDES}")
+        else()
+            if (CHAMELEON_FIND_REQUIRED)
+                if(NOT CHAMELEON_FIND_QUIETLY)
+                    message(STATUS "Looking for chameleon : test of MORSE_Init fails")
+                    message(STATUS "CHAMELEON_LIBRARIES: ${CMAKE_REQUIRED_LIBRARIES}")
+                    message(STATUS "CHAMELEON_LIBRARY_DIRS: ${CMAKE_REQUIRED_FLAGS}")
+                    message(STATUS "CHAMELEON_INCLUDE_DIRS: ${CMAKE_REQUIRED_INCLUDES}")
+                    message(STATUS "Check in CMakeFiles/CMakeError.log to figure out why it fails")
+                    message(STATUS "Looking for chameleon : set CHAMELEON_LIBRARIES to NOTFOUND")
+                endif()
+                set(CHAMELEON_LIBRARIES "CHAMELEON_LIBRARIES-NOTFOUND")
+            endif()
+        endif()
+        set(CMAKE_REQUIRED_INCLUDES)
+        set(CMAKE_REQUIRED_FLAGS)
+        set(CMAKE_REQUIRED_LIBRARIES)
+    endif(CHAMELEON_LIBRARIES)
+
+endif(NOT CHAMELEON_FOUND OR NOT CHAMELEON_LIBRARIES)
+
+
+# check that CHAMELEON has been found
+# ---------------------------------
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(CHAMELEON DEFAULT_MSG
+                                  CHAMELEON_LIBRARIES)