diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2bdf76fc33c6aa2800b85943092baaead02c1744..1a82be7e47c91aac7e4976820697ceec20a906f9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,8 +3,8 @@
 # @copyright (c) 2009-2014 The University of Tennessee and The University
 #                          of Tennessee Research Foundation.
 #                          All rights reserved.
-# @copyright (c) 2012-2016 Inria. All rights reserved.
-# @copyright (c) 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+# @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+#                          Univ. Bordeaux. All rights reserved.
 #
 ###
 #
@@ -57,13 +57,15 @@ else()
     "https://gitlab.inria.fr/solverstack/morse_cmake. Please set MORSE_CMAKE_DIR to this source "
     "directory.")
 endif()
+
 include(MorseInit)
 include(GenPkgConfig)
-include(FortranCInterface)
+
 # Ensure that the fortran compiler and c compiler specified are compatible
 # ------------------------------------------------------------------------
+include(FortranCInterface)
 FortranCInterface_VERIFY()
-FortranCInterface_HEADER(${CMAKE_CURRENT_BINARY_DIR}/include/morse_mangling.h
+FortranCInterface_HEADER(${CMAKE_CURRENT_BINARY_DIR}/include/chameleon/morse_mangling.h
                          MACRO_NAMESPACE "MORSE_")
 
 #############################################
@@ -610,10 +612,9 @@ endif(NOT CHAMELEON_SIMULATION)
 
 # CHAMELEON depends on a runtime
 # -------------------------------
-
 if( CHAMELEON_SCHED_STARPU )
 
-  set(CHAMELEON_STARPU_VERSION "1.1" CACHE STRING "oldest STARPU version desired")
+    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...)
     if(NOT CHAMELEON_SIMULATION)
@@ -1005,53 +1006,46 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
 include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
 
-
-###############################################################################
-# Coreblas library (kernels for CPUs) #
-#######################################
-
-add_subdirectory(coreblas)
-#------------------------------------------------------------------------------
-
-
-###############################################################################
-# Cudablas library (kernels for CUDAs) #
-########################################
-
-if(CHAMELEON_USE_CUDA)
+if (NOT CHAMELEON_SIMULATION)
+  ###############################################################################
+  # Coreblas library (kernels for CPUs) #
+  #######################################
+  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/coreblas/include)
+  include_directories(${CMAKE_CURRENT_BINARY_DIR}/coreblas/include)
+  add_subdirectory(coreblas)
+
+  ###############################################################################
+  # Cudablas library (kernels for CUDAs) #
+  ########################################
+  if(CHAMELEON_USE_CUDA)
+    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/cudablas/include)
+    include_directories(${CMAKE_CURRENT_BINARY_DIR}/cudablas/include)
     add_subdirectory(cudablas)
+  endif()
+
 endif()
-#------------------------------------------------------------------------------
 
 ###############################################################################
 # Add HQR library #
 ###################
 add_subdirectory(hqr)
 include_directories(hqr/include)
-#------------------------------------------------------------------------------
 
 ###############################################################################
 # Main library #
 ################
-
 add_subdirectory(include)
 add_subdirectory(control)
 add_subdirectory(compute)
-#------------------------------------------------------------------------------
-
 
 ###############################################################################
-# Runtime library #
-###################
-
+# Runtimes libraries #
+######################
 add_subdirectory(runtime)
-#------------------------------------------------------------------------------
-
 
 ###############################################################################
 # Executables and Tests #
 #########################
-
 enable_testing()
 include(CTest)
 
diff --git a/cmake_modules/GenPkgConfig.cmake b/cmake_modules/GenPkgConfig.cmake
index e10b77ea1786de4725cb8549ee7c70d78794a19a..85c8cfc11e1a4bf3310c303c915cf7e74d4aa791 100644
--- a/cmake_modules/GenPkgConfig.cmake
+++ b/cmake_modules/GenPkgConfig.cmake
@@ -98,7 +98,7 @@ MACRO(GENERATE_PKGCONFIG_FILE)
     set(CUDABLAS_PKGCONFIG_LIBS_PRIVATE  "")
 
     # A list of packages required by this package
-    set(CHAMELEON_PKGCONFIG_REQUIRED "")
+    set(CHAMELEON_PKGCONFIG_REQUIRED "hqr")
     set(COREBLAS_PKGCONFIG_REQUIRED  "")
     set(CUDABLAS_PKGCONFIG_REQUIRED  "")
 
@@ -148,8 +148,6 @@ MACRO(GENERATE_PKGCONFIG_FILE)
 
     endif(NOT CHAMELEON_SIMULATION)
 
-    list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE hwloc)
-
     # Define required package
     # -----------------------
     CLEAN_LIB_LIST(CHAMELEON)
diff --git a/cmake_modules/morse_cmake b/cmake_modules/morse_cmake
index 41120c395d72ac2d7602e3d5722bcfe033be1790..b356d3a5b5a417e49a60aa3b6127221717fe0f1d 160000
--- a/cmake_modules/morse_cmake
+++ b/cmake_modules/morse_cmake
@@ -1 +1 @@
-Subproject commit 41120c395d72ac2d7602e3d5722bcfe033be1790
+Subproject commit b356d3a5b5a417e49a60aa3b6127221717fe0f1d
diff --git a/compute/CMakeLists.txt b/compute/CMakeLists.txt
index 9a98f52459b9d01b391e2d3869442d1f688543dd..1f6592d6923ba811c4c33dc8f1ec542b921f97f0 100644
--- a/compute/CMakeLists.txt
+++ b/compute/CMakeLists.txt
@@ -296,19 +296,17 @@ elseif(CHAMELEON_SCHED_QUARK)
   list(INSERT CHAMELEON_DEP 0 -lchameleon_quark)
 endif()
 if (NOT CHAMELEON_SIMULATION)
-    target_link_libraries(chameleon coreblas)
+  add_dependencies(chameleon
+    coreblas_include)
+  target_link_libraries(chameleon coreblas)
 endif()
 target_link_libraries(chameleon hqr)
 list(INSERT CHAMELEON_DEP 0 -lchameleon)
 
 add_dependencies(chameleon
   chameleon_include
-  coreblas_include
   control_include
 )
-if (NOT CHAMELEON_SIMULATION)
-    add_dependencies(chameleon coreblas_include)
-endif()
 
 set_property(TARGET chameleon PROPERTY LINKER_LANGUAGE Fortran)
 set_property(TARGET chameleon PROPERTY Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/include")
diff --git a/compute/pzgelqf.c b/compute/pzgelqf.c
index 46023eb1ae2049fc09a1aa0ff1d201a89b33eb0c..14b8d1c94eb0db12fc8e76d29552edf93c5d3a70 100644
--- a/compute/pzgelqf.c
+++ b/compute/pzgelqf.c
@@ -155,4 +155,5 @@ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c
index d82f451d375615d8bef17c657b93fc9c692f327b..4ab23160fb6e5b6ced1d4cc67bcd8fadcd58019a 100644
--- a/compute/pzgelqf_param.c
+++ b/compute/pzgelqf_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 #include "libhqr.h"
 
 #define A(m,n)  A,  (m), (n)
@@ -82,8 +83,7 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
 
     /* Initialisation of tiles */
 
-    tiles = (int*)malloc((qrtree->mt)*sizeof(int));
-    memset( tiles, 0, (qrtree->mt)*sizeof(int) );
+    tiles = (int*)calloc(qrtree->mt, sizeof(int));
 
     ws_worker *= sizeof(MORSE_Complex64_t);
     ws_host   *= sizeof(MORSE_Complex64_t);
@@ -139,9 +139,9 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
         }
 
         /* Setting the order of the tiles */
-        libhqr_treewalk(qrtree, k, tiles);
+        libhqr_walk_stepk( qrtree, k, tiles + (k+1) );
 
-        for (i = k; i < A->nt-1; i++) {
+        for (i = k+1; i < A->nt; i++) {
             n = tiles[i];
             p = qrtree->currpiv(qrtree, k, n);
 
diff --git a/compute/pzgelqfrh.c b/compute/pzgelqfrh.c
index 0e8afc068eafdd010cb3843a8bb7a1effdc7a88b..5f906d0acdb21db271991315cf2ae60f1ad2d368 100644
--- a/compute/pzgelqfrh.c
+++ b/compute/pzgelqfrh.c
@@ -183,4 +183,5 @@ void morse_pzgelqfrh(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, int BS,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzgeqrf.c b/compute/pzgeqrf.c
index f9574d9f3fc87c17308fb6b83d1d75d142bd3b39..1944e03d80ab5f6d50e23dd9c754d0146a584a91 100644
--- a/compute/pzgeqrf.c
+++ b/compute/pzgeqrf.c
@@ -149,4 +149,5 @@ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c
index 89585c40824ec25e09c02a4a83f2b0ade2f1a478..945a07029ea0865a843836704f59d5c5c12e0e88 100644
--- a/compute/pzgeqrf_param.c
+++ b/compute/pzgeqrf_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 #include "libhqr.h"
 
 #define A(m,n)  A,  (m), (n)
@@ -82,8 +83,7 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
 
     /* Initialisation of tiles */
 
-    tiles = (int*)malloc((qrtree->mt)*sizeof(int));
-    memset( tiles, 0, (qrtree->mt)*sizeof(int) );
+    tiles = (int*)calloc(qrtree->mt, sizeof(int));
 
     ws_worker *= sizeof(MORSE_Complex64_t);
     ws_host   *= sizeof(MORSE_Complex64_t);
@@ -138,9 +138,9 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
         }
 
         /* Setting the order of the tiles */
-        libhqr_treewalk(qrtree, k, tiles);
+        libhqr_walk_stepk( qrtree, k, tiles + (k+1) );
 
-        for (i = k; i < A->mt-1; i++) {
+        for (i = k+1; i < A->mt; i++) {
             m = tiles[i];
             p = qrtree->currpiv(qrtree, k, m);
 
diff --git a/compute/pzgeqrfrh.c b/compute/pzgeqrfrh.c
index 5355b97b7357926872ecb36e9cc30bafd6f98342..0176d8c19cd42dbb84b5ad1d8103ba6b665d1f34 100644
--- a/compute/pzgeqrfrh.c
+++ b/compute/pzgeqrfrh.c
@@ -183,4 +183,5 @@ void morse_pzgeqrfrh(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, int BS,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzgetrf_incpiv.c b/compute/pzgetrf_incpiv.c
index 5da79407cf9855db1d9c97ed607c53b6c0094516..83efd149d6d53fffe8b3f87459877b46b0cd57ea 100644
--- a/compute/pzgetrf_incpiv.c
+++ b/compute/pzgetrf_incpiv.c
@@ -31,6 +31,7 @@
 //ALLOC_WS :  ib*L->nb
 //WS_ADD :  ib*L->nb
 #include "control/common.h"
+#include <stdlib.h>
 
 #define A(_m_,_n_) A, _m_, _n_
 #if defined(CHAMELEON_COPY_DIAG)
diff --git a/compute/pzhetrd_he2hb.c b/compute/pzhetrd_he2hb.c
index 2230bd0c20244c7d7eb397670cfab357d464fab4..090f185fb6431225d8a1a884f4f4650a9231ceb7 100644
--- a/compute/pzhetrd_he2hb.c
+++ b/compute/pzhetrd_he2hb.c
@@ -24,6 +24,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 #define A(m, n) A,  m,  n
 #define T(m, n) T,  m,  n
@@ -444,4 +445,6 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo,
 
     morse_desc_mat_free(AT);
     free(AT);
+
+    (void)E;
 }
diff --git a/compute/pztpgqrt.c b/compute/pztpgqrt.c
index 27f2c17018934fee64173c65c5a2dd357d2151f8..6abd4af7a86c5c439d6c2a6d962a99cbd20b2840 100644
--- a/compute/pztpgqrt.c
+++ b/compute/pztpgqrt.c
@@ -165,4 +165,6 @@ void morse_pztpgqrt( int L,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+
+    (void)D;
 }
diff --git a/compute/pzunglq.c b/compute/pzunglq.c
index 9ba7783179b094636cbb3867c47477870d05b3fe..3ae06f9cdf6a8db447c1917a518fdaa592e50e50 100644
--- a/compute/pzunglq.c
+++ b/compute/pzunglq.c
@@ -144,4 +144,5 @@ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c
index 0bca71880c0936abb5a394b729a802e10af7017f..4a5d7c21c60ea1bdf92997eb166cb630c612057e 100644
--- a/compute/pzunglq_param.c
+++ b/compute/pzunglq_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 #define A(m,n) A,  (m),  (n)
 #define Q(m,n) Q,  (m),  (n)
@@ -78,8 +79,7 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des
 
     /* Initialisation of tiles */
 
-    tiles = (int*)malloc((qrtree->mt)*sizeof(int));
-    memset( tiles, 0, (qrtree->mt)*sizeof(int) );
+    tiles = (int*)calloc( qrtree->mt, sizeof(int));
 
     ws_worker *= sizeof(MORSE_Complex64_t);
     ws_host   *= sizeof(MORSE_Complex64_t);
@@ -95,9 +95,9 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des
         ldak = BLKLDD(A, k);
 
         /* Setting the order of the tiles*/
-        libhqr_treewalk(qrtree, k, tiles);
+        libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-        for (i = A->nt-2; i >= k; i--) {
+        for (i = A->nt-1; i > k; i--) {
             n = tiles[i];
             p = qrtree->currpiv(qrtree, k, n);
 
diff --git a/compute/pzunglqrh.c b/compute/pzunglqrh.c
index a3b360d99d63140869ea3ec81d4300513f3ec231..ae0bd1f35e2b435f77393b75b89f6db8352cac53 100644
--- a/compute/pzunglqrh.c
+++ b/compute/pzunglqrh.c
@@ -167,4 +167,5 @@ void morse_pzunglqrh(MORSE_desc_t *A, MORSE_desc_t *Q,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzungqr.c b/compute/pzungqr.c
index da851bcc94e392cd8dc4e7001a98ce669c4495b1..15d2d6a553aaac143be6a8c9d830a3ff29a02a27 100644
--- a/compute/pzungqr.c
+++ b/compute/pzungqr.c
@@ -145,4 +145,5 @@ void morse_pzungqr(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c
index 32ab51de1ac869a407870f20bf1888c26a51365e..5c9df7ac554cf33d3b176fdaf36a9e983b1e9534 100644
--- a/compute/pzungqr_param.c
+++ b/compute/pzungqr_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 #define A(m,n) A,  m,  n
 #define Q(m,n) Q,  m,  n
@@ -84,8 +85,7 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
 
     /* Initialisation of tiles */
 
-    tiles = (int*)malloc((qrtree->mt)*sizeof(int));
-    memset( tiles, 0, (qrtree->mt)*sizeof(int) );
+    tiles = (int*)calloc(qrtree->mt, sizeof(int));
 
     ws_worker *= sizeof(MORSE_Complex64_t);
     ws_host   *= sizeof(MORSE_Complex64_t);
@@ -98,9 +98,9 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
         /* Setting the order of tiles */
-        libhqr_treewalk(qrtree, k, tiles);
+        libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-        for (i = Q->mt - 2; i >= k; i--) {
+        for (i = Q->mt-1; i > k; i--) {
             m = tiles[i];
             p = qrtree->currpiv(qrtree, k, m);
 
@@ -179,6 +179,5 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
-
     (void)D;
 }
diff --git a/compute/pzungqrrh.c b/compute/pzungqrrh.c
index 49565edb59298c7393ff862135b2b2129031478d..46d4412a183ea73b07ba3f5c36f3fa5e77ea4bbd 100644
--- a/compute/pzungqrrh.c
+++ b/compute/pzungqrrh.c
@@ -172,4 +172,5 @@ void morse_pzungqrrh(MORSE_desc_t *A, MORSE_desc_t *Q,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzunmlq.c b/compute/pzunmlq.c
index 577ddbfc0eb7bb8052be6d6c26fe89148cfaeb6f..572ac0254d9c0c58e3a865808c91e284f328ca30 100644
--- a/compute/pzunmlq.c
+++ b/compute/pzunmlq.c
@@ -315,4 +315,5 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c
index 8838be440eafaf5f6f5aed7efa04f26b4f119152..10731ba0534956c130c39c442850cb7e5e365084 100644
--- a/compute/pzunmlq_param.c
+++ b/compute/pzunmlq_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 #define A(m,n) A,  m,  n
 #define B(m,n) B,  m,  n
@@ -80,8 +81,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
 #endif
 
     /* Initialisation of tiles */
-    tiles = (int*)malloc((qrtree->mt)*sizeof(int));
-    memset( tiles, 0, (qrtree->mt)*sizeof(int) );
+    tiles = (int*)calloc( qrtree->mt, sizeof(int) );
 
     ws_worker *= sizeof(MORSE_Complex64_t);
     ws_host   *= sizeof(MORSE_Complex64_t);
@@ -133,9 +133,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                 }
 
                 /* Setting the order of the tiles*/
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = k; i < A->nt-1; i++) {
+                for (i = k+1; i < A->nt; i++) {
                     m = tiles[i];
                     p = qrtree->currpiv(qrtree, k, m);
 
@@ -186,9 +186,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                 ldak = BLKLDD(A, k);
 
                 /* Setting the order of the tiles*/
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = A->nt-2; i >= k; i--) {
+                for (i = A->nt-1; i > k; i--) {
                     m = tiles[i];
                     p = qrtree->currpiv(qrtree, k, m);
 
@@ -271,9 +271,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                 ldak = BLKLDD(A, k);
 
                 /* Setting the order of the tiles*/
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = A->nt-2; i >= k; i--) {
+                for (i = A->nt-1; i > k; i--) {
                     n = tiles[i];
                     p = qrtree->currpiv(qrtree, k, n);
 
@@ -388,9 +388,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                     }
                 }
                 /* Setting the order of tiles */
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = k; i < A->nt-1; i++) {
+                for (i = k+1; i < A->nt; i++) {
                     n = tiles[i];
                     p = qrtree->currpiv(qrtree, k, n);
 
diff --git a/compute/pzunmlqrh.c b/compute/pzunmlqrh.c
index e29ba396482cb6bdc7148dc4f142438b5e763025..7d7c142ebc7a20f5e4963ae756ee970c831a96f9 100644
--- a/compute/pzunmlqrh.c
+++ b/compute/pzunmlqrh.c
@@ -410,4 +410,5 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzunmqr.c b/compute/pzunmqr.c
index c0eff1c9579002a1514664ad4be9c4cef47354b0..da5d917970a954d2077197bdf7b384bec5c2fad4 100644
--- a/compute/pzunmqr.c
+++ b/compute/pzunmqr.c
@@ -320,4 +320,5 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c
index cb5d4f59c2a547407afbe186613c4dbf01fbbb34..6dc3e7dacb25e2516d2c8f887a0f79243216e253 100644
--- a/compute/pzunmqr_param.c
+++ b/compute/pzunmqr_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 #define A(m,n) A,  m,  n
 #define B(m,n) B,  m,  n
@@ -80,8 +81,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
 
     /* Initialisation of tiles */
 
-    tiles = (int*)malloc((qrtree->mt)*sizeof(int));
-    memset( tiles, 0, (qrtree->mt)*sizeof(int) );
+    tiles = (int*)calloc( qrtree->mt, sizeof(int) );
 
     ws_worker *= sizeof(MORSE_Complex64_t);
     ws_host   *= sizeof(MORSE_Complex64_t);
@@ -132,9 +132,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                     }
                 }
                 /* Setting the order of the tiles*/
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = k; i < B->mt-1; i++) {
+                for (i = k+1; i < B->mt; i++) {
                     m = tiles[i];
                     p = qrtree->currpiv(qrtree, k, m);
 
@@ -181,9 +181,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
                 /* Setting the order of the tiles*/
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = B->mt-2; i >= k; i--) {
+                for (i = B->mt-1; i > k; i--) {
                     m = tiles[i];
                     p = qrtree->currpiv(qrtree, k, m);
 
@@ -268,9 +268,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                 tempkn = k == A->nt-1 ? A->n - k*A->nb : A->nb;
 
                 /* Setting the order of tiles */
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = B->nt-2; i >= k; i--) {
+                for (i = B->nt-1; i > k; i--) {
                     n = tiles[i];
                     p = qrtree->currpiv(qrtree, k, n);
 
@@ -387,9 +387,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                     }
                 }
                 /* Setting the order of tiles */
-                libhqr_treewalk(qrtree, k, tiles);
+                libhqr_walk_stepk(qrtree, k, tiles + (k+1));
 
-                for (i = k; i < B->nt-1; i++) {
+                for (i = k+1; i < B->nt; i++) {
                     n = tiles[i];
                     p = qrtree->currpiv(qrtree, k, n);
 
diff --git a/compute/pzunmqrrh.c b/compute/pzunmqrrh.c
index 76a6eef59a7a1b5c3c4c7370717a544683c01647..f077cac7544b6e2c222487f2d8f93181c91c3bb0 100644
--- a/compute/pzunmqrrh.c
+++ b/compute/pzunmqrrh.c
@@ -415,4 +415,5 @@ void morse_pzunmqrrh(MORSE_enum side, MORSE_enum trans,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
+    (void)D;
 }
diff --git a/compute/zgelqs.c b/compute/zgelqs.c
index 1c8186c47914c86502754696f1e243363ec25322..23cdd4d022d705afab6a683d282ecce90f8f3cc5 100644
--- a/compute/zgelqs.c
+++ b/compute/zgelqs.c
@@ -28,6 +28,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 /**
  *******************************************************************************
diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c
index ef1cc2505a6d2b1a0cd676063bcbb0b4c3952bef..cf2e853634609914c3c960a3d7e8b5508e40a55e 100644
--- a/compute/zgelqs_param.c
+++ b/compute/zgelqs_param.c
@@ -24,6 +24,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 /**
  *******************************************************************************
diff --git a/compute/zgels.c b/compute/zgels.c
index 53314a3fe1388299402c1672a0fd026dbb8d7fc4..f80cc4ef65b4268e41b92453a924553020d5b610 100644
--- a/compute/zgels.c
+++ b/compute/zgels.c
@@ -28,6 +28,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 /**
  *
diff --git a/compute/zgels_param.c b/compute/zgels_param.c
index fac618e1e64da9be97f1638c13903a80f415e728..d862c63267b877f276740af544336a90087503b5 100644
--- a/compute/zgels_param.c
+++ b/compute/zgels_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 /**
  *******************************************************************************
diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c
index 757568882712e140b66c622f5d461bcaddbbb056..32e618550fb35324d019990f64afa0a9eeca51fd 100644
--- a/compute/zgeqrs.c
+++ b/compute/zgeqrs.c
@@ -28,6 +28,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 /***************************************************************************//**
  *
diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c
index ed6aef62f7034a169d69cf304db82f9448c518a7..611b136fa92b6e770d903401fc53ff13104c06de 100644
--- a/compute/zgeqrs_param.c
+++ b/compute/zgeqrs_param.c
@@ -23,6 +23,7 @@
  *
  **/
 #include "control/common.h"
+#include <stdlib.h>
 
 /**
  *******************************************************************************
diff --git a/compute/zgesvd.c b/compute/zgesvd.c
index 4aea26f51876378bf7435b626237f9c3f31afe1f..b2d7e48d430c43bfef24fbde3dbd6a404bc10620 100644
--- a/compute/zgesvd.c
+++ b/compute/zgesvd.c
@@ -23,8 +23,13 @@
  * @precisions normal z -> s d c
  *
  **/
-#include <coreblas/include/lapacke.h>
 #include "control/common.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#if !defined(CHAMELEON_SIMULATION)
+#include <coreblas/lapacke.h>
+#endif
 
 /***************************************************************************//**
  *
diff --git a/compute/zheevd.c b/compute/zheevd.c
index 671ffc5c16a668ce5c046075bde6b9841eee5dda..e4a85b98b380b7217225252031dd29b7cb4a21c5 100644
--- a/compute/zheevd.c
+++ b/compute/zheevd.c
@@ -23,8 +23,12 @@
  * @precisions normal z -> s d c
  *
  **/
-#include <coreblas/include/lapacke.h>
 #include "control/common.h"
+#include <stdlib.h>
+#include <string.h>
+#if !defined(CHAMELEON_SIMULATION)
+#include <coreblas/lapacke.h>
+#endif
 
 /***************************************************************************//**
  *
diff --git a/compute/zhetrd.c b/compute/zhetrd.c
index e3a6179cc2d1f430bdca9ff15308364c7ea27297..e3390e8fb0f56e45a2c21e35288bbefc2ed79d94 100644
--- a/compute/zhetrd.c
+++ b/compute/zhetrd.c
@@ -25,8 +25,10 @@
  * @precisions normal z -> s d c
  *
  **/
-#include <coreblas/include/lapacke.h>
 #include "control/common.h"
+#if !defined(CHAMELEON_SIMULATION)
+#include <coreblas/lapacke.h>
+#endif
 
 /***************************************************************************//**
  *
@@ -429,5 +431,6 @@ int MORSE_zhetrd_Tile_Async(MORSE_enum jobz,
         morse_desc_mat_free(Dptr);
     }
     morse_desc_mat_free(&descAB);
+    (void)D;
     return MORSE_SUCCESS;
 }
diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c
index 3943a31d8b13e452e163789721c1a7017a1e59f7..2df25d010ceccca96fb923b6c765e41204d520d1 100644
--- a/compute/ztpgqrt.c
+++ b/compute/ztpgqrt.c
@@ -420,5 +420,6 @@ int MORSE_ztpgqrt_Tile_Async( int L,
     if (Dptr != NULL) {
         morse_desc_mat_free(Dptr);
     }
+    (void)D;
     return MORSE_SUCCESS;
 }
diff --git a/control/CMakeLists.txt b/control/CMakeLists.txt
index e1861ba32614c3f29d30a5ead45bc5fecb0ae53e..6813bbf279912b93ec3dbd9c88d0de1a67d8c0fd 100644
--- a/control/CMakeLists.txt
+++ b/control/CMakeLists.txt
@@ -38,16 +38,11 @@ set(ZHDR
 precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
                     PRECISIONS "s;d;c;z;ds;zc")
 
-configure_file("config.h.in"
-               "config.h"
-               @ONLY)
-
 # Define the list of headers
 # --------------------------
 set(CHAMELEON_HDRS
     async.h
     auxiliary.h
-    config.h
     common.h
     context.h
     descriptor.h
diff --git a/control/async.c b/control/async.c
index 82d99893050d2539f1a1938e3c593dec53ba9a5e..4e273b724351dee19a6bffb14e1dc7181e4add81 100644
--- a/control/async.c
+++ b/control/async.c
@@ -32,7 +32,7 @@
  */
 #include <stdlib.h>
 #include "control/common.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 /*******************************************************************************
  *  Register an exception.
diff --git a/control/async.h b/control/async.h
index fda4143c1f6b2dec461c5a295c90e05598e282d0..8cfef81bf164250414dcf833380981d215724896 100644
--- a/control/async.h
+++ b/control/async.h
@@ -9,7 +9,7 @@
  **/
 
 /***
- * 
+ *
  *
  * @file async.h
  *
@@ -26,7 +26,7 @@
 #ifndef _MORSE_ASYNC_H_
 #define _MORSE_ASYNC_H_
 
-#include "morse_struct.h"
+#include "chameleon/morse_struct.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/control/auxiliary.c b/control/auxiliary.c
index b00ed6efe4e6db2664278575696bf6b8b52fe119..00c6bdc59428844f8c34c96217aa0f8f237b484a 100644
--- a/control/auxiliary.c
+++ b/control/auxiliary.c
@@ -266,7 +266,7 @@ void update_progress(int currentValue, int maximumValue) {
 void (*update_progress_callback)(int, int) = update_progress;
 
 int MORSE_Set_update_progress_callback(void (*p)(int, int)) {
-  update_progress_callback=p ;
+  update_progress_callback = p;
   return MORSE_SUCCESS;
 }
 
diff --git a/control/auxiliary.h b/control/auxiliary.h
index 147fe1694635c905accafddd9c847ff930f05914..5cc85d6dc50488bc9e1d0116d885c5c6a1f97b26 100644
--- a/control/auxiliary.h
+++ b/control/auxiliary.h
@@ -27,7 +27,7 @@
 #ifndef _MORSE_AUXILIARY_H_
 #define _MORSE_AUXILIARY_H_
 
-#include "morse_struct.h"
+#include "chameleon/morse_struct.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/control/common.h b/control/common.h
index a6890efa05c744634e2c4993988757cdeb725d9d..81bce72c4f73839e0f48a2bcfaba627df088d34f 100644
--- a/control/common.h
+++ b/control/common.h
@@ -38,9 +38,6 @@
 #include <unistd.h>
 #endif
 
-/* need the config to get definitions */
-#include "control/config.h"
-
 /** ****************************************************************************
  * Implementation headers
  **/
@@ -77,11 +74,6 @@
  **/
 #include "morse.h"
 
-#include "coreblas/include/coreblas.h"
-#if defined(CHAMELEON_USE_CUDA) && !defined(CHAMELEON_SIMULATION)
-#include "cudablas/include/cudablas.h"
-#endif
-
 #include "control/global.h"
 #include "control/auxiliary.h"
 #include "control/context.h"
diff --git a/control/config.h.in b/control/config.h.in
deleted file mode 100644
index 1194dc083e6de219d4f5db6eefd1aba10ed1f8dc..0000000000000000000000000000000000000000
--- a/control/config.h.in
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- *
- * @copyright (c) 2009-2014 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2017 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
- *
- **/
-
-/**
- *
- *  @file config.h
- *
- *  Chameleon's internal definitions
- *  MORSE is a software package provided by Univ. of Tennessee,
- *  Univ. of California Berkeley and Univ. of Colorado Denver,
- *  and INRIA Bordeaux Sud-Ouest
- *
- *  @version 0.9.1
- *  @author Florent Pruvost
- *  @date 2017-01-09
- *
- **/
-#ifndef CONFIG_H_HAS_BEEN_INCLUDED
-#define CONFIG_H_HAS_BEEN_INCLUDED
-
-/* inherit from public chameleon's definitions */
-#include "include/chameleon_config.h"
-
-/* StarPU functions */
-#cmakedefine HAVE_STARPU_FXT_PROFILING
-#cmakedefine HAVE_STARPU_IDLE_PREFETCH
-#cmakedefine HAVE_STARPU_ITERATION_PUSH
-#cmakedefine HAVE_STARPU_DATA_WONT_USE
-#cmakedefine HAVE_STARPU_DATA_SET_COORDINATES
-#cmakedefine HAVE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS
-#cmakedefine HAVE_STARPU_MPI_DATA_REGISTER
-#cmakedefine HAVE_STARPU_MPI_COMM_RANK
-#cmakedefine HAVE_STARPU_MPI_CACHED_RECEIVE
-
-#endif  /* CONFIG_H_HAS_BEEN_INCLUDED */
diff --git a/control/context.c b/control/context.c
index 4d901902d3588b955fb6a62bd86ee8e8804363d9..7f0d67fc96f0aa0b6030c50209996b36ab5f03f9 100644
--- a/control/context.c
+++ b/control/context.c
@@ -41,7 +41,11 @@
 #include "control/common.h"
 #include "control/auxiliary.h"
 #include "control/context.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
+
+#if !defined(CHAMELEON_SIMULATION)
+#include "coreblas.h"
+#endif
 
 /*******************************************************************************
  *  Global data
@@ -163,7 +167,7 @@ int MORSE_Enable(MORSE_enum option)
             morse->progress_enabled = MORSE_TRUE;
             break;
         case MORSE_GEMM3M:
-#ifdef CBLAS_HAS_ZGEMM3M
+#if defined(CBLAS_HAS_ZGEMM3M) && !defined(CHAMELEON_SIMULATION)
             set_coreblas_gemm3m_enabled(1);
 #else
             morse_error("MORSE_Enable", "cannot enable GEMM3M (not available in cblas)");
@@ -231,7 +235,7 @@ int MORSE_Disable(MORSE_enum option)
             morse->progress_enabled = MORSE_FALSE;
             break;
         case MORSE_GEMM3M:
-#if !defined(CHAMELEON_SIMULATION)
+#if defined(CBLAS_HAS_ZGEMM3M) && !defined(CHAMELEON_SIMULATION)
             set_coreblas_gemm3m_enabled(0);
 #endif
             break;
diff --git a/control/context.h b/control/context.h
index 948a2d6c5fbe6512fca59564b0bad0f8500d95ed..0c9191c49439cace1991bb500158538ef1541ad4 100644
--- a/control/context.h
+++ b/control/context.h
@@ -27,7 +27,7 @@
 #ifndef _MORSE_CONTEXT_H_
 #define _MORSE_CONTEXT_H_
 
-#include "morse_struct.h"
+#include "chameleon/morse_struct.h"
 
 /*******************************************************************************
  *  Routines to handle threads context
diff --git a/control/control.c b/control/control.c
index 7bb54781d91930dd1b50bb3a1ba6915893b79f73..587a24ae1dfbd22dc7ffb93cac8c91005b260b2b 100644
--- a/control/control.c
+++ b/control/control.c
@@ -35,7 +35,7 @@
 #include <stdlib.h>
 #include "control/auxiliary.h"
 #include "control/common.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 /** ***************************************************************************
  *
diff --git a/control/descriptor.c b/control/descriptor.c
index 69d189a29a2012c155693552c2a023cf1c1c5641..26a0d4747c511cb80f920b10bdc331f2a319d014 100644
--- a/control/descriptor.c
+++ b/control/descriptor.c
@@ -29,12 +29,12 @@
  * @brief Group descriptor routines exposed to users
  *
  */
-
 #include <stdlib.h>
 #include <assert.h>
+#include <string.h>
 #include "control/common.h"
 #include "control/descriptor.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 static int nbdesc = 0;
 
diff --git a/control/descriptor.h b/control/descriptor.h
index 7972ea05c574cc87ddfeaf6329101c096c886cb5..2f6c6afe937bfe04fa8d93f6f4c4a26154d4ece4 100644
--- a/control/descriptor.h
+++ b/control/descriptor.h
@@ -27,8 +27,8 @@
 #define _MORSE_DESCRIPTOR_H_
 
 #include <assert.h>
-#include "include/chameleon_config.h"
-#include "morse_struct.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_struct.h"
 #include "control/auxiliary.h"
 
 #ifdef __cplusplus
diff --git a/control/morse_f77.h b/control/morse_f77.h
index ed898be11aa9ba076492395540438b476703423d..49f2d6ede949a119178f193425c96dfa0716aa2f 100644
--- a/control/morse_f77.h
+++ b/control/morse_f77.h
@@ -24,7 +24,7 @@
 #ifndef _MORSE_F77_H_
 #define _MORSE_F77_H_
 
-#include "include/morse_mangling.h"
+#include "chameleon/morse_mangling.h"
 
 /** ****************************************************************************
  *  Determine FORTRAN names
diff --git a/coreblas/CMakeLists.txt b/coreblas/CMakeLists.txt
index df58613de11937a651805d300b49e2b3eceeec78..20762027aefc6775723293b6dca0d2e1dcb3166a 100644
--- a/coreblas/CMakeLists.txt
+++ b/coreblas/CMakeLists.txt
@@ -27,10 +27,8 @@
 ###
 
 add_subdirectory(include)
-if (NOT CHAMELEON_SIMULATION)
-    add_subdirectory(compute)
-    add_subdirectory(eztrace_module)
-endif()
+add_subdirectory(compute)
+add_subdirectory(eztrace_module)
 
 ###
 ### END CMakeLists.txt
diff --git a/coreblas/compute/CMakeLists.txt b/coreblas/compute/CMakeLists.txt
index a28fbc2fc90673f71fd665c0aa6253a028ab4d0a..f5f9ccc3b9f471466152f263bdf66855a3cd395d 100644
--- a/coreblas/compute/CMakeLists.txt
+++ b/coreblas/compute/CMakeLists.txt
@@ -112,23 +112,18 @@ add_dependencies(coreblas coreblas_include)
 set_property(TARGET coreblas PROPERTY LINKER_LANGUAGE Fortran)
 set_property(TARGET coreblas PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 
-if(NOT CHAMELEON_SIMULATION)
-  target_link_libraries(coreblas ${LAPACKE_LIBRARIES} ${CBLAS_LIBRARIES})
-endif(NOT CHAMELEON_SIMULATION)
+target_link_libraries(coreblas
+  ${LAPACKE_LIBRARIES}
+  ${LAPACK_SEQ_LIBRARIES}
+  ${CBLAS_LIBRARIES}
+  ${BLAS_SEQ_LIBRARIES}
+  )
 
-# # Dependencies step
-# # -----------------
-# foreach(_external_package "blas" "cblas" "lapack" "lapacke")
-#     string(TOUPPER "${_external_package}" _NAMEVAR)
-#     if(${_NAMEVAR}_EP)
-#         add_dependencies(coreblas ${_external_package}_build)
-#     endif()
-# endforeach()
-
-# installation
+# Installation
 # ------------
 install(TARGETS coreblas
-        DESTINATION lib)
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib)
 
 ###
 ### END CMakeLists.txt
diff --git a/coreblas/compute/core_dzasum.c b/coreblas/compute/core_dzasum.c
index f0af36164ecc9ca098f87ad006250860851b8fb1..e06402dbfa179cba57352c2023627d9449e29d1e 100644
--- a/coreblas/compute/core_dzasum.c
+++ b/coreblas/compute/core_dzasum.c
@@ -24,9 +24,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
+#include "coreblas/cblas.h"
 #include <math.h>
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /**
  *
diff --git a/coreblas/compute/core_zaxpy.c b/coreblas/compute/core_zaxpy.c
index 373ff859a0aaf2e3dc6d420f0b4bad14f02d0462..249267697aa16815746506cf4dfadd0a11a6ed72 100644
--- a/coreblas/compute/core_zaxpy.c
+++ b/coreblas/compute/core_zaxpy.c
@@ -17,7 +17,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zgeadd.c b/coreblas/compute/core_zgeadd.c
index 9714410f6e76186deeb8cfc4fc3817c40e80a097..259f4b61df3ec94dc9fdb43bf09c4dedbe45bf1c 100644
--- a/coreblas/compute/core_zgeadd.c
+++ b/coreblas/compute/core_zgeadd.c
@@ -25,7 +25,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /**
  ******************************************************************************
diff --git a/coreblas/compute/core_zgelqt.c b/coreblas/compute/core_zgelqt.c
index e0c5b8ff68f821d59694a8134a2c6985e1ed3042..37bb3e99819e4d9df5f2795c44f3280590e99f2d 100644
--- a/coreblas/compute/core_zgelqt.c
+++ b/coreblas/compute/core_zgelqt.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zgemm.c b/coreblas/compute/core_zgemm.c
index a7737378daef67e284a6c100ad7b4ab74981c5b1..b4d4ad797c9157ee9b9d64ab3f1f83b8153b14d9 100644
--- a/coreblas/compute/core_zgemm.c
+++ b/coreblas/compute/core_zgemm.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zgeqrt.c b/coreblas/compute/core_zgeqrt.c
index 0c984732d78d183a64026c5910d7597d75b53fb2..fa6d9392afcb46b892a10cefa8f65cd62c00fe57 100644
--- a/coreblas/compute/core_zgeqrt.c
+++ b/coreblas/compute/core_zgeqrt.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zgesplit.c b/coreblas/compute/core_zgesplit.c
index 4c62e55c5e2574356e955e86f993612d0ca674c0..f2610acf1c65c2eff0c111299cbb832e0f1c634a 100644
--- a/coreblas/compute/core_zgesplit.c
+++ b/coreblas/compute/core_zgesplit.c
@@ -26,8 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /**
  ***************************************************************************
diff --git a/coreblas/compute/core_zgessm.c b/coreblas/compute/core_zgessm.c
index 2694092b26bbf45e9ee60ac2411fa0bce4fb2dc7..fdf9e619850fc979454dee17c3f38c8786a71c60 100644
--- a/coreblas/compute/core_zgessm.c
+++ b/coreblas/compute/core_zgessm.c
@@ -28,9 +28,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/cblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zgessq.c b/coreblas/compute/core_zgessq.c
index 72eff4242258138b9e0529d1652b248c6680b4fa..dfdf90e25caec46773a2da81830bf14895bc81f9 100644
--- a/coreblas/compute/core_zgessq.c
+++ b/coreblas/compute/core_zgessq.c
@@ -25,8 +25,8 @@
  *
  **/
 #include <math.h>
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 #define COMPLEX
 
diff --git a/coreblas/compute/core_zgetf2_nopiv.c b/coreblas/compute/core_zgetf2_nopiv.c
index d2bd6031c7e32f96540a9f7d0a78bd28926ab91f..60fcbe48b796f9a0a9ee2aa8959260bdd7b1d5b1 100644
--- a/coreblas/compute/core_zgetf2_nopiv.c
+++ b/coreblas/compute/core_zgetf2_nopiv.c
@@ -25,9 +25,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 #include <math.h>
-#include "coreblas/include/lapacke.h"
+#include "coreblas/lapacke.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zgetrf.c b/coreblas/compute/core_zgetrf.c
index 049153fcf46e2bfe6d59159a6739171b5fd170aa..c40a0b0bbf2ee221d7be6ee1ed99be40b11c1342 100644
--- a/coreblas/compute/core_zgetrf.c
+++ b/coreblas/compute/core_zgetrf.c
@@ -26,8 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 
 int CORE_zgetrf(int m, int n,
diff --git a/coreblas/compute/core_zgetrf_incpiv.c b/coreblas/compute/core_zgetrf_incpiv.c
index a59b84a1dddbd85416e4b09e79ec1df652cbd57f..220d8794e04617a0632f892ac51ec1e8ed6a6724 100644
--- a/coreblas/compute/core_zgetrf_incpiv.c
+++ b/coreblas/compute/core_zgetrf_incpiv.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zgetrf_nopiv.c b/coreblas/compute/core_zgetrf_nopiv.c
index a7fd6c4994ca6016f1fd229f5d71ff81564781ca..a6fa9f7f05dd383c6f4b304e88846f192f4b0a83 100644
--- a/coreblas/compute/core_zgetrf_nopiv.c
+++ b/coreblas/compute/core_zgetrf_nopiv.c
@@ -25,7 +25,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zhe2ge.c b/coreblas/compute/core_zhe2ge.c
index 53b0b24ddf15637459866b578abfae6ee64c6d08..916c12e0ce7b99fa2ede8ec6b3688b4790c7ad0d 100644
--- a/coreblas/compute/core_zhe2ge.c
+++ b/coreblas/compute/core_zhe2ge.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zhemm.c b/coreblas/compute/core_zhemm.c
index bc9c29b6f92ab686a1b164416e412de5f0606c0e..c6237bf73792bc37ab56734ff2e8d1a41bce7e11 100644
--- a/coreblas/compute/core_zhemm.c
+++ b/coreblas/compute/core_zhemm.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 #undef REAL
 #define COMPLEX
diff --git a/coreblas/compute/core_zher2k.c b/coreblas/compute/core_zher2k.c
index a58e3f521e9ceb116c7b8553d827bb6992067f10..59b73e216b91939daf6a8c8b4246dca9147ef867 100644
--- a/coreblas/compute/core_zher2k.c
+++ b/coreblas/compute/core_zher2k.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 #undef REAL
 #define COMPLEX
diff --git a/coreblas/compute/core_zherfb.c b/coreblas/compute/core_zherfb.c
index 933e302c109a28d1859413423557866efec0c804..c20e20f87a46faf39a8797b8d5deb906bbeeb7b5 100644
--- a/coreblas/compute/core_zherfb.c
+++ b/coreblas/compute/core_zherfb.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
-#include "coreblas/include/lapacke.h"
+#include "coreblas.h"
+#include "coreblas/lapacke.h"
 
 /**
  *******************************************************************************
diff --git a/coreblas/compute/core_zherk.c b/coreblas/compute/core_zherk.c
index d71a47552873d29072295c535507bf7a2d3c5775..ba1e717feaacb17db56a8b4d99a63889dca90552 100644
--- a/coreblas/compute/core_zherk.c
+++ b/coreblas/compute/core_zherk.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 #undef REAL
 #define COMPLEX
diff --git a/coreblas/compute/core_zhessq.c b/coreblas/compute/core_zhessq.c
index 4eaf0762c21bc4776219ced86a3a1d511f09e7f9..330a75abfd917bfb3de6256fd1221a984e95dfc5 100644
--- a/coreblas/compute/core_zhessq.c
+++ b/coreblas/compute/core_zhessq.c
@@ -25,8 +25,8 @@
  *
  **/
 #include <math.h>
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 #define COMPLEX
 
diff --git a/coreblas/compute/core_zlacpy.c b/coreblas/compute/core_zlacpy.c
index bc82632b724fbc9effc0b1ab799daf943cad5f6a..dbdb0af416ddfbd662dd0e89e2ec0beced4746ba 100644
--- a/coreblas/compute/core_zlacpy.c
+++ b/coreblas/compute/core_zlacpy.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zlag2c.c b/coreblas/compute/core_zlag2c.c
index 1e5e377ff13e67580f770f3365bac62704ef54f8..af426a1a631bc8999dc9091428dd4c1b191e4da9 100644
--- a/coreblas/compute/core_zlag2c.c
+++ b/coreblas/compute/core_zlag2c.c
@@ -26,8 +26,8 @@
  * @precisions mixed zc -> ds
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zlange.c b/coreblas/compute/core_zlange.c
index afe5b5259eb6647536b5179293ec62850ba2e308..19b9e9648b5c57f2fa142bf1c5a1d13150d5521c 100644
--- a/coreblas/compute/core_zlange.c
+++ b/coreblas/compute/core_zlange.c
@@ -26,8 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zlanhe.c b/coreblas/compute/core_zlanhe.c
index 506d49cf840dac25325905f1e9b9998d2c4e25ee..dbe465ef333289e62ef43d16e87796b67f917f71 100644
--- a/coreblas/compute/core_zlanhe.c
+++ b/coreblas/compute/core_zlanhe.c
@@ -26,8 +26,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zlansy.c b/coreblas/compute/core_zlansy.c
index 9104492136d05c9cd0efeb4179fe2f6f9114c516..e9ff19afa363867a0f60082b92282611b6b5b335 100644
--- a/coreblas/compute/core_zlansy.c
+++ b/coreblas/compute/core_zlansy.c
@@ -26,8 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zlantr.c b/coreblas/compute/core_zlantr.c
index d100feb12bef5b12a14a149be99847f83339cade..2c8225dc18e785c50cda1ff95693f36aa1f04804 100644
--- a/coreblas/compute/core_zlantr.c
+++ b/coreblas/compute/core_zlantr.c
@@ -24,9 +24,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
+#include "coreblas/lapacke.h"
 #include <math.h>
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zlascal.c b/coreblas/compute/core_zlascal.c
index 3fc2101d8213ca3789ecdb4fe4510dafa7930131..73083eed231c6853b3120fd24d34ad9cd62c3e5f 100644
--- a/coreblas/compute/core_zlascal.c
+++ b/coreblas/compute/core_zlascal.c
@@ -11,8 +11,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
-#include "coreblas/include/cblas.h"
+#include "coreblas.h"
+#include "coreblas/cblas.h"
 #include <math.h>
 
 /**
diff --git a/coreblas/compute/core_zlaset.c b/coreblas/compute/core_zlaset.c
index de82e85003868b3cb233bf796eba373c28905a49..40d95208c3a952cd39be4328b2f191f1b3809277 100644
--- a/coreblas/compute/core_zlaset.c
+++ b/coreblas/compute/core_zlaset.c
@@ -27,8 +27,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 
 /**
diff --git a/coreblas/compute/core_zlaset2.c b/coreblas/compute/core_zlaset2.c
index 3b72bf20436e0b7b35e8361f495c69dc7b0d573a..60d4ba6c47d43d1d4d0457094b5201da836c247a 100644
--- a/coreblas/compute/core_zlaset2.c
+++ b/coreblas/compute/core_zlaset2.c
@@ -27,8 +27,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 
 /**
diff --git a/coreblas/compute/core_zlatro.c b/coreblas/compute/core_zlatro.c
index b8547cb0c185f7ad580675e816c6261f062524b8..85c630ed1e236715e87c411793acbf3782925e84 100644
--- a/coreblas/compute/core_zlatro.c
+++ b/coreblas/compute/core_zlatro.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
-#include "coreblas/include/lapacke.h"
+#include "coreblas.h"
+#include "coreblas/lapacke.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zlauum.c b/coreblas/compute/core_zlauum.c
index cf27cb96987c6f7cf95c0246ef10b0ff015c9fe6..4ab3749b319978c85f234f5e57b84eee22af3c9c 100644
--- a/coreblas/compute/core_zlauum.c
+++ b/coreblas/compute/core_zlauum.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zpamm.c b/coreblas/compute/core_zpamm.c
index 65c0ce5cf64f5d5c54d54c5205e1f5ba58339620..1c7750da04c10c444b95e5b21140178ecba3d9f9 100644
--- a/coreblas/compute/core_zpamm.c
+++ b/coreblas/compute/core_zpamm.c
@@ -27,9 +27,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/cblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 static inline int CORE_zpamm_a2(MORSE_enum side, MORSE_enum trans, MORSE_enum uplo,
                                 int M, int N, int K, int L,
diff --git a/coreblas/compute/core_zparfb.c b/coreblas/compute/core_zparfb.c
index f46466558ccbe6e8400a5cf384c6523baeb0e23b..99feee51aaae319520bc2ba1d5f599a0d28c975d 100644
--- a/coreblas/compute/core_zparfb.c
+++ b/coreblas/compute/core_zparfb.c
@@ -27,9 +27,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/cblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zpemv.c b/coreblas/compute/core_zpemv.c
index 32d63ae48b56c26d0b4c6a20b63b83200af05b05..5cd8a128b53ec37351738b9c70704044e0632b88 100644
--- a/coreblas/compute/core_zpemv.c
+++ b/coreblas/compute/core_zpemv.c
@@ -27,9 +27,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/cblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zplghe.c b/coreblas/compute/core_zplghe.c
index 097d63ad4e5efccff2dce7e4408ec280013b984e..e17d7a580655650d6466b4dc070ec6e0dd8bc4d5 100644
--- a/coreblas/compute/core_zplghe.c
+++ b/coreblas/compute/core_zplghe.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 #define COMPLEX
 #undef REAL
diff --git a/coreblas/compute/core_zplgsy.c b/coreblas/compute/core_zplgsy.c
index 8a0dbe15d67e5e21794cb09b2e243763da597d21..449d19c9f49000555e2821a8a5568e69eac8a074 100644
--- a/coreblas/compute/core_zplgsy.c
+++ b/coreblas/compute/core_zplgsy.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 #define COMPLEX
 #undef REAL
diff --git a/coreblas/compute/core_zplrnt.c b/coreblas/compute/core_zplrnt.c
index f3aba63706ca40dd7b6da1e54cf565811eeea6e0..c3a5ffb3166e731e6317a6e0a51d0c92329c4bc8 100644
--- a/coreblas/compute/core_zplrnt.c
+++ b/coreblas/compute/core_zplrnt.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 #define COMPLEX
 #undef REAL
diff --git a/coreblas/compute/core_zpotrf.c b/coreblas/compute/core_zpotrf.c
index 21f8b6853f58facd588bc00a339b12dc031d7bc5..39d9076ae2b922e4e006e7591a197be69f2e0b28 100644
--- a/coreblas/compute/core_zpotrf.c
+++ b/coreblas/compute/core_zpotrf.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zssssm.c b/coreblas/compute/core_zssssm.c
index 2094c6d25333396fc5c5c67386ec29ea9cc83099..3e7adb10a02c7754fccfda3e515401826628f551 100644
--- a/coreblas/compute/core_zssssm.c
+++ b/coreblas/compute/core_zssssm.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/cblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zsymm.c b/coreblas/compute/core_zsymm.c
index d8320214b8e3cf7f10b59e3499d03138ffad9f53..56ea9c76e4c2b6d547bccaabebdac5059bd5d48f 100644
--- a/coreblas/compute/core_zsymm.c
+++ b/coreblas/compute/core_zsymm.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zsyr2k.c b/coreblas/compute/core_zsyr2k.c
index 3a20a4c55989a89b11f9690468808c2e66066f7e..b2328e7c51779125114fd6668ee668348d7c974c 100644
--- a/coreblas/compute/core_zsyr2k.c
+++ b/coreblas/compute/core_zsyr2k.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zsyrk.c b/coreblas/compute/core_zsyrk.c
index a6eed7233d7e469f4bff782ef686ddf42408f856..f1a9b44ec3f8e4bc9efc610d43d0bd9ab84bd312 100644
--- a/coreblas/compute/core_zsyrk.c
+++ b/coreblas/compute/core_zsyrk.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zsyssq.c b/coreblas/compute/core_zsyssq.c
index 99853e69a1411ac12d0daf2973e7b4a460f2c8f5..2bb5f07590c3b43439369bb3526796bee7a4fba9 100644
--- a/coreblas/compute/core_zsyssq.c
+++ b/coreblas/compute/core_zsyssq.c
@@ -25,8 +25,8 @@
  *
  **/
 #include <math.h>
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 #define COMPLEX
 
diff --git a/coreblas/compute/core_zsytf2_nopiv.c b/coreblas/compute/core_zsytf2_nopiv.c
index 4539bcb97aada322f66506759a947e488420d5de..8f5b622dd28398190956b58b3a82dec69690e1f4 100644
--- a/coreblas/compute/core_zsytf2_nopiv.c
+++ b/coreblas/compute/core_zsytf2_nopiv.c
@@ -30,7 +30,7 @@
  * @precisions normal z -> c
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztpmqrt.c b/coreblas/compute/core_ztpmqrt.c
index 8744ed8a1577ff65b361dc50f312cef47f53dc8d..e83dbfc9e70cf3fc4d29e5cfdab56a927530c4ec 100644
--- a/coreblas/compute/core_ztpmqrt.c
+++ b/coreblas/compute/core_ztpmqrt.c
@@ -22,7 +22,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /**
  *******************************************************************************
diff --git a/coreblas/compute/core_ztpqrt.c b/coreblas/compute/core_ztpqrt.c
index c12051a16acad1415cb83791b11553f7e64253a3..1b1137b23c74e0b33934f37dc0abf8c5e0b7c8bf 100644
--- a/coreblas/compute/core_ztpqrt.c
+++ b/coreblas/compute/core_ztpqrt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /**
  ******************************************************************************
diff --git a/coreblas/compute/core_ztradd.c b/coreblas/compute/core_ztradd.c
index 6d87ccbb9e88f1498d1a1a76f128b0265236cf48..f14213b160c96d5b81fb48dd146a8e8ad382401c 100644
--- a/coreblas/compute/core_ztradd.c
+++ b/coreblas/compute/core_ztradd.c
@@ -24,7 +24,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /**
  ******************************************************************************
diff --git a/coreblas/compute/core_ztrasm.c b/coreblas/compute/core_ztrasm.c
index 940458aece604159c295bdb7c19d2db91e49af79..4d373fc52dae0e2a5135ccedf36f116cb0a3334f 100644
--- a/coreblas/compute/core_ztrasm.c
+++ b/coreblas/compute/core_ztrasm.c
@@ -24,9 +24,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
+#include "coreblas/cblas.h"
 #include <math.h>
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztrmm.c b/coreblas/compute/core_ztrmm.c
index c73d1f140123be697f16befa6cbaae6736e7d047..dafae3ff984856295dcb84bde4bfec1034455258 100644
--- a/coreblas/compute/core_ztrmm.c
+++ b/coreblas/compute/core_ztrmm.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztrsm.c b/coreblas/compute/core_ztrsm.c
index 9f355463137440c83e982c2e94eb51ddf891e5e7..1d57c0ca48dd34b66eed3c0ca96d9da4c116ab7a 100644
--- a/coreblas/compute/core_ztrsm.c
+++ b/coreblas/compute/core_ztrsm.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztrssq.c b/coreblas/compute/core_ztrssq.c
index 154091c38b1e0285b47686d27865a602775edfcf..69a303e244d368fdc7e52ec699101a9a12906f74 100644
--- a/coreblas/compute/core_ztrssq.c
+++ b/coreblas/compute/core_ztrssq.c
@@ -25,8 +25,8 @@
  *
  **/
 #include <math.h>
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 #define COMPLEX
 
diff --git a/coreblas/compute/core_ztrtri.c b/coreblas/compute/core_ztrtri.c
index 2725ce0fa193793eec272b305f736a86795d97b7..fde44f4ebee767cbbb0436a506c67781cc87ae0e 100644
--- a/coreblas/compute/core_ztrtri.c
+++ b/coreblas/compute/core_ztrtri.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztslqt.c b/coreblas/compute/core_ztslqt.c
index dd188ad6f90a22c883b795df87a3ce68329bf03e..f5a87006236bf97f6e29627bd48937455d5fbf9b 100644
--- a/coreblas/compute/core_ztslqt.c
+++ b/coreblas/compute/core_ztslqt.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 #undef REAL
 #define COMPLEX
 
diff --git a/coreblas/compute/core_ztsmlq.c b/coreblas/compute/core_ztsmlq.c
index d12b66707e4e1eab5ba7f158750613b7534cb570..5ac1224ea4b5e60deef070d367fe6be0848b325d 100644
--- a/coreblas/compute/core_ztsmlq.c
+++ b/coreblas/compute/core_ztsmlq.c
@@ -30,7 +30,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztsmlq_hetra1.c b/coreblas/compute/core_ztsmlq_hetra1.c
index 579ff9fdb4973372f1f9861fcae94fe081205154..f80ed80d718d7fd67e600e10b2c00c657fafff34 100644
--- a/coreblas/compute/core_ztsmlq_hetra1.c
+++ b/coreblas/compute/core_ztsmlq_hetra1.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include <coreblas/include/lapacke.h>
-#include "coreblas/include/coreblas.h"
+#include <coreblas/lapacke.h>
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztsmqr.c b/coreblas/compute/core_ztsmqr.c
index d3473600b4f59945806782f638219c3083ac1495..c64ccd4d177774bca3b3c56a6d3e3fcaf42fd1a4 100644
--- a/coreblas/compute/core_ztsmqr.c
+++ b/coreblas/compute/core_ztsmqr.c
@@ -30,7 +30,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztsmqr_hetra1.c b/coreblas/compute/core_ztsmqr_hetra1.c
index 76e7f65c08eedfa35057cb97c0350ba01b703bbc..2934b9d69599ee04ff07ff16bed6453b451e49f7 100644
--- a/coreblas/compute/core_ztsmqr_hetra1.c
+++ b/coreblas/compute/core_ztsmqr_hetra1.c
@@ -25,8 +25,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include <coreblas/include/lapacke.h>
-#include "coreblas/include/coreblas.h"
+#include <coreblas/lapacke.h>
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_ztsqrt.c b/coreblas/compute/core_ztsqrt.c
index 9323e5b9178e8496045baaff59c08edabcd932ae..032e2691e812e7a45be0160fec2b3fe5ca906b58 100644
--- a/coreblas/compute/core_ztsqrt.c
+++ b/coreblas/compute/core_ztsqrt.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 #undef REAL
 #define COMPLEX
 
diff --git a/coreblas/compute/core_ztstrf.c b/coreblas/compute/core_ztstrf.c
index c235d33880deee1bf4fcc260cbd94bb646d46328..09f1b9ec5582d11bc593dce389eb3ed581b12235 100644
--- a/coreblas/compute/core_ztstrf.c
+++ b/coreblas/compute/core_ztstrf.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
-#include "coreblas/include/cblas.h"
+#include "coreblas.h"
+#include "coreblas/cblas.h"
 #include <math.h>
 
 /***************************************************************************//**
diff --git a/coreblas/compute/core_zttlqt.c b/coreblas/compute/core_zttlqt.c
index 6a3551aa0aeaf9ba75295406514f2c709a84b62a..0cdfb8802b7e0f4f1cfba0666a48ebadb075cf7c 100644
--- a/coreblas/compute/core_zttlqt.c
+++ b/coreblas/compute/core_zttlqt.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 #undef REAL
 #define COMPLEX
 
diff --git a/coreblas/compute/core_zttmlq.c b/coreblas/compute/core_zttmlq.c
index 0edbcc62fb836fc711e0f25bd8d2521b4768801c..3acea2594030ad41dd1a866acefa423923797760 100644
--- a/coreblas/compute/core_zttmlq.c
+++ b/coreblas/compute/core_zttmlq.c
@@ -28,7 +28,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zttmqr.c b/coreblas/compute/core_zttmqr.c
index 95760f3cd10868775a03ca2ac732f8888cf0cbef..7663bf9a6353a0c97b776b372ed844de83d58ba2 100644
--- a/coreblas/compute/core_zttmqr.c
+++ b/coreblas/compute/core_zttmqr.c
@@ -27,7 +27,7 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/coreblas.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zttqrt.c b/coreblas/compute/core_zttqrt.c
index 5aa323be9aa71dc5c7002675d90c62dedab06a4b..72e7e6974d6ccf14b18c00537a7e0743ad719334 100644
--- a/coreblas/compute/core_zttqrt.c
+++ b/coreblas/compute/core_zttqrt.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 #undef REAL
 #define COMPLEX
 
diff --git a/coreblas/compute/core_zunmlq.c b/coreblas/compute/core_zunmlq.c
index 5f222e5fc9ab1eb9c8fcc7d6f13b27edd6625e68..1da8c0d2c8de6a905f123096bebe34059dc2c50f 100644
--- a/coreblas/compute/core_zunmlq.c
+++ b/coreblas/compute/core_zunmlq.c
@@ -29,8 +29,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/core_zunmqr.c b/coreblas/compute/core_zunmqr.c
index 6e864baf4bc3235b521639770a00d41e73871568..57d996f2a362eea182d08126673f6ccd40e9ad23 100644
--- a/coreblas/compute/core_zunmqr.c
+++ b/coreblas/compute/core_zunmqr.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/lapacke.h"
-#include "coreblas/include/coreblas.h"
+#include "coreblas/lapacke.h"
+#include "coreblas.h"
 
 /***************************************************************************//**
  *
diff --git a/coreblas/compute/global.c b/coreblas/compute/global.c
index fb59b345eed9fe16570a165b08a07ef44522ab55..4df21b9aeece70f990d277dec4aeeadb5fa8fd92 100644
--- a/coreblas/compute/global.c
+++ b/coreblas/compute/global.c
@@ -23,13 +23,16 @@
  *
  **/
 
-static int coreblas_gemm3m_enabled=0;
+static int coreblas_gemm3m_enabled = 0;
 
-void set_coreblas_gemm3m_enabled(int v) {
-  coreblas_gemm3m_enabled=v;
+void
+set_coreblas_gemm3m_enabled( int v ) {
+    coreblas_gemm3m_enabled = v;
 }
-int get_coreblas_gemm3m_enabled(void) {
-  return coreblas_gemm3m_enabled;
+
+int
+get_coreblas_gemm3m_enabled(void) {
+    return coreblas_gemm3m_enabled;
 }
 
 /*******************************************************************************
diff --git a/coreblas/include/CMakeLists.txt b/coreblas/include/CMakeLists.txt
index 8e6f10526bdf81e7e68f0f693e1fe2575136074a..7717097135debd395a24b6f7308944e327296f7e 100644
--- a/coreblas/include/CMakeLists.txt
+++ b/coreblas/include/CMakeLists.txt
@@ -30,36 +30,41 @@
 # ---------------------
 set(COREBLAS_HDRS_GENERATED "")
 set(ZHDR
-    coreblas_z.h
-    coreblas_zc.h
+  coreblas/coreblas_z.h
+  coreblas/coreblas_zc.h
 )
-precisions_rules_py(COREBLAS_HDRS_GENERATED "${ZHDR}"
-                    PRECISIONS "s;d;c;z;zc;ds" )
+precisions_rules_py(
+  COREBLAS_HDRS_GENERATED "${ZHDR}"
+  TARGETDIR  coreblas
+  PRECISIONS "s;d;c;z;zc;ds" )
 
 # Define the list of headers
 # --------------------------
 set(COREBLAS_HDRS
-    cblas.h
     coreblas.h
-    lapacke.h
-    lapacke_config.h
-    lapacke_mangling.h
-    ${COREBLAS_HDRS_GENERATED}
+    coreblas/cblas.h
+    coreblas/lapacke.h
+    coreblas/lapacke_config.h
+    coreblas/lapacke_mangling.h
     )
 
+# Add generated headers
+# ---------------------
+foreach( hdr_file ${COREBLAS_HDRS_GENERATED} )
+  list(APPEND COREBLAS_HDRS ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
+endforeach()
+
 # Force generation of headers
 # ---------------------------
 add_custom_target(coreblas_include ALL SOURCES ${COREBLAS_HDRS})
 
-set(HDR_INSTALL "cblas.h;coreblas.h;lapacke.h;lapacke_config.h;lapacke_mangling.h")
-foreach( hdr_file ${COREBLAS_HDRS_GENERATED} )
-    list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
-endforeach()
-
-# installation
+# Installation
 # ------------
-install(FILES ${HDR_INSTALL}
-        DESTINATION include/chameleon/coreblas/include)
+install( FILES coreblas.h
+         DESTINATION include )
+
+install( FILES ${COREBLAS_HDRS}
+         DESTINATION include/coreblas )
 
 ###
 ### END CMakeLists.txt
diff --git a/coreblas/include/coreblas.h b/coreblas/include/coreblas.h
index 590e48d62d730e41fd3a4f99300c2a55941decaf..7db66b9bf9c3fcd3be6d40f5809795a2e48cb084 100644
--- a/coreblas/include/coreblas.h
+++ b/coreblas/include/coreblas.h
@@ -29,6 +29,7 @@
 #include <stdio.h>
 #include <math.h>
 #include <string.h>
+#include <assert.h>
 
 /** ****************************************************************************
  *  CBLAS requires for scalar arguments to be passed
@@ -37,32 +38,29 @@
 #ifndef CBLAS_SADDR
 #define CBLAS_SADDR( _val_ ) &(_val_)
 #endif
-#include "coreblas/include/cblas.h"
+#include "coreblas/cblas.h"
 
 /** ****************************************************************************
  * MORSE types and constants
  **/
-#include "morse_types.h"
-#include "morse_struct.h"
-#include "morse_constants.h"
-//#include "control/auxiliary.h"
-//#include "control/descriptor.h"
-//#include "control/tile.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_types.h"
+#include "chameleon/morse_struct.h"
+#include "chameleon/morse_constants.h"
 
 /** ****************************************************************************
  * CORE BLAS headers
  **/
-#include "coreblas/include/coreblas_z.h"
-#include "coreblas/include/coreblas_d.h"
-#include "coreblas/include/coreblas_c.h"
-#include "coreblas/include/coreblas_s.h"
-#include "coreblas/include/coreblas_zc.h"
-#include "coreblas/include/coreblas_ds.h"
-#include <assert.h>
+BEGIN_C_DECLS
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "coreblas/coreblas_z.h"
+#include "coreblas/coreblas_d.h"
+#include "coreblas/coreblas_c.h"
+#include "coreblas/coreblas_s.h"
+#include "coreblas/coreblas_zc.h"
+#include "coreblas/coreblas_ds.h"
+
+END_C_DECLS
 
 /** ****************************************************************************
  * Coreblas Error
@@ -83,14 +81,14 @@ extern "C" {
 /** ****************************************************************************
  *  LAPACK Constants
  **/
+BEGIN_C_DECLS
+
 extern char *morse_lapack_constants[];
 #define morse_lapack_const(morse_const) morse_lapack_constants[morse_const][0]
 
-void set_coreblas_gemm3m_enabled(int v) ;
-int get_coreblas_gemm3m_enabled(void) ;
+void set_coreblas_gemm3m_enabled( int v );
+int  get_coreblas_gemm3m_enabled( void );
 
-#ifdef __cplusplus
-}
-#endif
+END_C_DECLS
 
 #endif
diff --git a/coreblas/include/cblas.h b/coreblas/include/coreblas/cblas.h
similarity index 100%
rename from coreblas/include/cblas.h
rename to coreblas/include/coreblas/cblas.h
diff --git a/coreblas/include/coreblas_z.h b/coreblas/include/coreblas/coreblas_z.h
similarity index 99%
rename from coreblas/include/coreblas_z.h
rename to coreblas/include/coreblas/coreblas_z.h
index 345836f81bf57f97b41081a4dd956b340ccf3f9c..9847d7e96a9e8c76f35de6c33f9eb4a613142a57 100644
--- a/coreblas/include/coreblas_z.h
+++ b/coreblas/include/coreblas/coreblas_z.h
@@ -34,10 +34,6 @@
 
 #define COMPLEX
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /** ****************************************************************************
  *  Declarations of serial kernels - alphabetical order
  **/
@@ -403,13 +399,6 @@ int  CORE_zunmqr(MORSE_enum side, MORSE_enum trans,
                  MORSE_Complex64_t *C, int LDC,
                  MORSE_Complex64_t *WORK, int LDWORK);
 
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
 #undef COMPLEX
 
 #endif
diff --git a/coreblas/include/coreblas_zc.h b/coreblas/include/coreblas/coreblas_zc.h
similarity index 95%
rename from coreblas/include/coreblas_zc.h
rename to coreblas/include/coreblas/coreblas_zc.h
index 0fcb1b6df34cc1e5d079b4db7d97e1492fcf8b83..66178bfeaba29c2d893dff89c47eb2842b6bd319 100644
--- a/coreblas/include/coreblas_zc.h
+++ b/coreblas/include/coreblas/coreblas_zc.h
@@ -31,10 +31,6 @@
 #ifndef _MORSE_CORE_ZCBLAS_H_
 #define _MORSE_CORE_ZCBLAS_H_
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /** ****************************************************************************
  *  Declarations of serial kernels - alphabetical order
  **/
@@ -45,10 +41,4 @@ void CORE_zlag2c(int m, int n,
                  const MORSE_Complex64_t *A, int lda,
                  MORSE_Complex32_t *B, int ldb, int *info);
 
-
-
-#ifdef __cplusplus
-}
-#endif
-
 #endif
diff --git a/coreblas/include/lapacke.h b/coreblas/include/coreblas/lapacke.h
similarity index 99%
rename from coreblas/include/lapacke.h
rename to coreblas/include/coreblas/lapacke.h
index 2dfa4ff602f29b501bd42f62667fff0e846917bb..fedfb50ff76adf6154472a270447a4eacfb9f702 100644
--- a/coreblas/include/lapacke.h
+++ b/coreblas/include/coreblas/lapacke.h
@@ -48,7 +48,7 @@
 *  Turn on HAVE_LAPACK_CONFIG_H to redefine C-LAPACK datatypes
 */
 #ifdef HAVE_LAPACK_CONFIG_H
-#include "lapacke_config.h"
+#include "coreblas/lapacke_config.h"
 #endif
 
 #include <stdlib.h>
@@ -150,7 +150,7 @@ typedef lapack_logical (*LAPACK_Z_SELECT1) ( const lapack_complex_double* );
 typedef lapack_logical (*LAPACK_Z_SELECT2)
     ( const lapack_complex_double*, const lapack_complex_double* );
 
-#include "lapacke_mangling.h"
+#include "coreblas/lapacke_mangling.h"
 
 #define LAPACK_lsame LAPACK_GLOBAL(lsame,LSAME)
 lapack_logical LAPACK_lsame( char* ca,  char* cb,
diff --git a/coreblas/include/lapacke_config.h b/coreblas/include/coreblas/lapacke_config.h
similarity index 100%
rename from coreblas/include/lapacke_config.h
rename to coreblas/include/coreblas/lapacke_config.h
diff --git a/coreblas/include/lapacke_mangling.h b/coreblas/include/coreblas/lapacke_mangling.h
similarity index 100%
rename from coreblas/include/lapacke_mangling.h
rename to coreblas/include/coreblas/lapacke_mangling.h
diff --git a/cudablas/CMakeLists.txt b/cudablas/CMakeLists.txt
index 0a1fb991d088def8d0eb6342779c9f8e20bf18ba..20762027aefc6775723293b6dca0d2e1dcb3166a 100644
--- a/cudablas/CMakeLists.txt
+++ b/cudablas/CMakeLists.txt
@@ -26,11 +26,9 @@
 #
 ###
 
-if (NOT CHAMELEON_SIMULATION)
-    add_subdirectory(include)
-    add_subdirectory(compute)
-    add_subdirectory(eztrace_module)
-endif()
+add_subdirectory(include)
+add_subdirectory(compute)
+add_subdirectory(eztrace_module)
 
 ###
 ### END CMakeLists.txt
diff --git a/cudablas/compute/CMakeLists.txt b/cudablas/compute/CMakeLists.txt
index 5ab3c65c497794515305cb1a7157fb585a55c7db..b5c69b13410bf92b5da82766d49618ef89c7112d 100644
--- a/cudablas/compute/CMakeLists.txt
+++ b/cudablas/compute/CMakeLists.txt
@@ -93,13 +93,17 @@ endif (CHAMELEON_USE_CUBLAS_V2)
 add_library(cudablas ${CUDABLAS_SRCS})
 add_dependencies(cudablas cudablas_include)
 set_property(TARGET cudablas PROPERTY LINKER_LANGUAGE Fortran)
+set_property(TARGET cudablas PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 
-target_link_libraries(cudablas coreblas ${CUDA_LIBRARIES})
+target_link_libraries(cudablas
+  coreblas
+  ${CUDA_LIBRARIES})
 
 # installation
 # ------------
 install(TARGETS cudablas
-        DESTINATION lib)
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib)
 
 ###
 ### END CMakeLists.txt
diff --git a/cudablas/compute/cuda_zgeadd.c b/cudablas/compute/cuda_zgeadd.c
index 4e728ad49c1955256ec7926e8fa3b219f61d7a58..abb1cef2233a50fb3939f9319582bd5fbbb60b90 100644
--- a/cudablas/compute/cuda_zgeadd.c
+++ b/cudablas/compute/cuda_zgeadd.c
@@ -20,8 +20,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if !defined(CHAMELEON_USE_CUBLAS_V2)
 #error "This file requires cublas api v2 support"
diff --git a/cudablas/compute/cuda_zgelqt.c b/cudablas/compute/cuda_zgelqt.c
index 411251c954b08e3daea146474c0a9ae13ad2d00c..28d5956a52a78828561d8e6bd2373e3b5fedf162 100644
--- a/cudablas/compute/cuda_zgelqt.c
+++ b/cudablas/compute/cuda_zgelqt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 int CUDA_zgelqt(
diff --git a/cudablas/compute/cuda_zgemerge.c b/cudablas/compute/cuda_zgemerge.c
index 6f574b3e0e8b8efd5ef0fc2e706aee2432f5a61c..a3a75f2a71a10fc4ebbae3a3d86159c530c095d2 100644
--- a/cudablas/compute/cuda_zgemerge.c
+++ b/cudablas/compute/cuda_zgemerge.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int
 CUDA_zgemerge( MORSE_enum side, MORSE_enum diag,
diff --git a/cudablas/compute/cuda_zgemm.c b/cudablas/compute/cuda_zgemm.c
index c5d0503b531443ab37b7dbeb127b3af672ec0250..71d573118f8a513e308238b20187f0818010ac30 100644
--- a/cudablas/compute/cuda_zgemm.c
+++ b/cudablas/compute/cuda_zgemm.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zgemm(MORSE_enum transa, MORSE_enum transb,
                int m, int n, int k,
diff --git a/cudablas/compute/cuda_zgeqrt.c b/cudablas/compute/cuda_zgeqrt.c
index f7cb69ab82eb188869c2d4cab03e8b0cb0920dce..bf6440fab9c7690c58f9c6410301dc4ceb81dca0 100644
--- a/cudablas/compute/cuda_zgeqrt.c
+++ b/cudablas/compute/cuda_zgeqrt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 int CUDA_zgeqrt(
diff --git a/cudablas/compute/cuda_zgessm.c b/cudablas/compute/cuda_zgessm.c
index 93b7065348fad1961b82fb0d33ea86257664d7ef..47cbfd990defe0aeb6dcc8b9f1b51188c7be9d75 100644
--- a/cudablas/compute/cuda_zgessm.c
+++ b/cudablas/compute/cuda_zgessm.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 #if defined(HAVE_MAGMA_GETRF_INCPIV_GPU)
diff --git a/cudablas/compute/cuda_zgetrf.c b/cudablas/compute/cuda_zgetrf.c
index 8da4fe5e3333332b99890f9525c16fa6c040de54..c992a2d43d557a655266807d2ff9b380b68e8921 100644
--- a/cudablas/compute/cuda_zgetrf.c
+++ b/cudablas/compute/cuda_zgetrf.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 #if defined(HAVE_MAGMA_GETRF_INCPIV_GPU)
diff --git a/cudablas/compute/cuda_zhemm.c b/cudablas/compute/cuda_zhemm.c
index 5cb93159e26ddbe5ddc3fb2608f1436b7dcf9f79..7c3d636247e1672781deac33507e6e8e4556c90c 100644
--- a/cudablas/compute/cuda_zhemm.c
+++ b/cudablas/compute/cuda_zhemm.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zhemm(MORSE_enum side, MORSE_enum uplo,
                int m, int n,
diff --git a/cudablas/compute/cuda_zher2k.c b/cudablas/compute/cuda_zher2k.c
index 206d0d50dc8e13dbf6aa55b528808088d057a11a..3850b32011cfa3103e054c12ed3a47514ac3132a 100644
--- a/cudablas/compute/cuda_zher2k.c
+++ b/cudablas/compute/cuda_zher2k.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zher2k(MORSE_enum uplo, MORSE_enum trans,
                 int n, int k,
diff --git a/cudablas/compute/cuda_zherfb.c b/cudablas/compute/cuda_zherfb.c
index 4563d938864b54b4ec0bec0fb9d7c07f0c806790..81e17b4ea76e5f86b74048db812a2ae3671840b3 100644
--- a/cudablas/compute/cuda_zherfb.c
+++ b/cudablas/compute/cuda_zherfb.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int
 CUDA_zherfb( MORSE_enum uplo, int n,
diff --git a/cudablas/compute/cuda_zherk.c b/cudablas/compute/cuda_zherk.c
index f5eec6d1721efefdce0f5a8ce974887b00c9b1c6..8bd07e126987f452d267e96580e8fa98032d0b43 100644
--- a/cudablas/compute/cuda_zherk.c
+++ b/cudablas/compute/cuda_zherk.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zherk( MORSE_enum uplo, MORSE_enum trans,
                 int n, int k,
diff --git a/cudablas/compute/cuda_zlarfb.c b/cudablas/compute/cuda_zlarfb.c
index 0faee149e21d22aa9d4092da6aa5485997c5e0a1..de57f0a7eddde420c620f936ad55437d06a97dc5 100644
--- a/cudablas/compute/cuda_zlarfb.c
+++ b/cudablas/compute/cuda_zlarfb.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int
 CUDA_zlarfb(MORSE_enum side, MORSE_enum trans,
diff --git a/cudablas/compute/cuda_zlauum.c b/cudablas/compute/cuda_zlauum.c
index dda1468b6166dc10eefca1a5085086472d65d7aa..29c0eea652484016313f874c70c5e707bca9b51d 100644
--- a/cudablas/compute/cuda_zlauum.c
+++ b/cudablas/compute/cuda_zlauum.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 int CUDA_zlauum(
diff --git a/cudablas/compute/cuda_zparfb.c b/cudablas/compute/cuda_zparfb.c
index e3e29f9569d37451b8741861a238315ed122115b..5ce6c0e29838f4e22b8bfa33ee5f61ccb3c81af2 100644
--- a/cudablas/compute/cuda_zparfb.c
+++ b/cudablas/compute/cuda_zparfb.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 /**
  *****************************************************************************
diff --git a/cudablas/compute/cuda_zpotrf.c b/cudablas/compute/cuda_zpotrf.c
index cdd6f4cf1ad9faa19d3fa79bedae62556a0703f2..730f4b1f7e6314b60cb7a9080d8ab62df23e5ac9 100644
--- a/cudablas/compute/cuda_zpotrf.c
+++ b/cudablas/compute/cuda_zpotrf.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 int CUDA_zpotrf(
diff --git a/cudablas/compute/cuda_zssssm.c b/cudablas/compute/cuda_zssssm.c
index 3503425397998a8922a686ccdcaa5ce82ecb03eb..bcd9e1797ebb7d72f4a62803c8b549c642fb9e67 100644
--- a/cudablas/compute/cuda_zssssm.c
+++ b/cudablas/compute/cuda_zssssm.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 #if defined(HAVE_MAGMA_GETRF_INCPIV_GPU)
diff --git a/cudablas/compute/cuda_zsymm.c b/cudablas/compute/cuda_zsymm.c
index 5213565edb79207844345170f9de2cb8549a7d1b..226ad8f0b1022ff267aaf91d763218da6a1baf49 100644
--- a/cudablas/compute/cuda_zsymm.c
+++ b/cudablas/compute/cuda_zsymm.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zsymm(MORSE_enum side, MORSE_enum uplo,
                int m, int n,
diff --git a/cudablas/compute/cuda_zsyr2k.c b/cudablas/compute/cuda_zsyr2k.c
index c80babbad1e968f721881b630a18515ce25de51a..7e4d21bd9e89d271fcd337098627f2db11370550 100644
--- a/cudablas/compute/cuda_zsyr2k.c
+++ b/cudablas/compute/cuda_zsyr2k.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zsyr2k(
         MORSE_enum uplo, MORSE_enum trans,
diff --git a/cudablas/compute/cuda_zsyrk.c b/cudablas/compute/cuda_zsyrk.c
index 11d18ea1556b15b3511ad20b50451c5cd76c06d3..7426efc7254c0c28bc01150457e8d24aa2469e01 100644
--- a/cudablas/compute/cuda_zsyrk.c
+++ b/cudablas/compute/cuda_zsyrk.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zsyrk(MORSE_enum uplo, MORSE_enum trans,
                int n, int k,
diff --git a/cudablas/compute/cuda_ztpmqrt.c b/cudablas/compute/cuda_ztpmqrt.c
index 350dc3df8dd730314599cc023c9228066e8e58ec..6242fd190483579f24e7df90ebd98b3533d10a91 100644
--- a/cudablas/compute/cuda_ztpmqrt.c
+++ b/cudablas/compute/cuda_ztpmqrt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int
 CUDA_ztpmqrt( MORSE_enum side, MORSE_enum trans,
diff --git a/cudablas/compute/cuda_ztrmm.c b/cudablas/compute/cuda_ztrmm.c
index 349a6f98a02597c81b7dbec7cf395b3cd8498ffc..d1db27a694854bec57a7f607c932a4e2b8942754 100644
--- a/cudablas/compute/cuda_ztrmm.c
+++ b/cudablas/compute/cuda_ztrmm.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_ztrmm(
         MORSE_enum side, MORSE_enum uplo,
diff --git a/cudablas/compute/cuda_ztrsm.c b/cudablas/compute/cuda_ztrsm.c
index ae485b751b79ea71b04fbe9ce34c3aab08d97b36..7a5106879c6fcb07a547da440910fd9b6b99a02d 100644
--- a/cudablas/compute/cuda_ztrsm.c
+++ b/cudablas/compute/cuda_ztrsm.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_ztrsm(MORSE_enum side, MORSE_enum uplo,
                MORSE_enum transa, MORSE_enum diag,
diff --git a/cudablas/compute/cuda_ztrtri.c b/cudablas/compute/cuda_ztrtri.c
index 02243a938e653b87cd81aea958c24f2f1d8d0d57..948f12c390c6c62161bc01e881522d0ed9d610d1 100644
--- a/cudablas/compute/cuda_ztrtri.c
+++ b/cudablas/compute/cuda_ztrtri.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 int CUDA_ztrtri(
diff --git a/cudablas/compute/cuda_ztslqt.c b/cudablas/compute/cuda_ztslqt.c
index 27c0228f006e732813820a2418f02b7db8945bbe..e9897a984afdee19fbe4d07f0568b3413db399ba 100644
--- a/cudablas/compute/cuda_ztslqt.c
+++ b/cudablas/compute/cuda_ztslqt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA) && 0
 int CUDA_ztslqt(
diff --git a/cudablas/compute/cuda_ztsmlq.c b/cudablas/compute/cuda_ztsmlq.c
index 1b2980a344c716afb04a63f07c51c903738cb7a0..801961817e3d0fdb5931c2ae1029cdfb04443362 100644
--- a/cudablas/compute/cuda_ztsmlq.c
+++ b/cudablas/compute/cuda_ztsmlq.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_ztsmlq(
         MORSE_enum side, MORSE_enum trans,
diff --git a/cudablas/compute/cuda_ztsmqr.c b/cudablas/compute/cuda_ztsmqr.c
index 678586823674cda7e92cbde6c44977ceb07158e7..b7b1d6e7268b82f71fd6d57959a60b048d1faa48 100644
--- a/cudablas/compute/cuda_ztsmqr.c
+++ b/cudablas/compute/cuda_ztsmqr.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_ztsmqr(
         MORSE_enum side, MORSE_enum trans,
diff --git a/cudablas/compute/cuda_ztsqrt.c b/cudablas/compute/cuda_ztsqrt.c
index 4f11d800fbe12b997f72c4ba85633ca301498419..063b951cc04f99b12a3ffd539078103e67477deb 100644
--- a/cudablas/compute/cuda_ztsqrt.c
+++ b/cudablas/compute/cuda_ztsqrt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA)
 int CUDA_ztsqrt(
diff --git a/cudablas/compute/cuda_ztstrf.c b/cudablas/compute/cuda_ztstrf.c
index 5780ff639af07fb1ddcfb1ddb09f889054e2c840..545b8c2b91c24b5715db70eab71cfbe91bdbe328 100644
--- a/cudablas/compute/cuda_ztstrf.c
+++ b/cudablas/compute/cuda_ztstrf.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 #if defined(CHAMELEON_USE_MAGMA) && 0
 int CUDA_ztstrf(
diff --git a/cudablas/compute/cuda_zttmqr.c b/cudablas/compute/cuda_zttmqr.c
index 04f59bf8140801312f635e3d801efd4ff23cbcaf..0517cfbd1f79ed3deac46669ff59239931ee6706 100644
--- a/cudablas/compute/cuda_zttmqr.c
+++ b/cudablas/compute/cuda_zttmqr.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int CUDA_zttmqr(
         MORSE_enum side, MORSE_enum trans,
diff --git a/cudablas/compute/cuda_zunmlqt.c b/cudablas/compute/cuda_zunmlqt.c
index c7fc245a94e6b479e25211e81c90ad1b80b2c22a..91a3fb79e51e0d9bb774230ddad45f14aeb543e6 100644
--- a/cudablas/compute/cuda_zunmlqt.c
+++ b/cudablas/compute/cuda_zunmlqt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int
 CUDA_zunmlqt(MORSE_enum side, MORSE_enum trans,
diff --git a/cudablas/compute/cuda_zunmqrt.c b/cudablas/compute/cuda_zunmqrt.c
index f61f7714c193e5e64b43902c665e9009f1361090..7abc0d9cf14826991d9841d0e5dde9116d59d446 100644
--- a/cudablas/compute/cuda_zunmqrt.c
+++ b/cudablas/compute/cuda_zunmqrt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "cudablas/include/cudablas.h"
-#include "cudablas/include/cudablas_z.h"
+#include "cudablas.h"
+#include "cudablas/cudablas_z.h"
 
 int
 CUDA_zunmqrt(MORSE_enum side, MORSE_enum trans,
diff --git a/cudablas/compute/cudaglobal.c b/cudablas/compute/cudaglobal.c
index 597501e9e45318c282226525dc2367afece94873..955ae99067c4dac78462cbd3c38c005a2e4e8f77 100644
--- a/cudablas/compute/cudaglobal.c
+++ b/cudablas/compute/cudaglobal.c
@@ -19,7 +19,7 @@
  * @date 2017-04-06
  *
  **/
-#include "cudablas/include/cudablas.h"
+#include "cudablas.h"
 
 /*******************************************************************************
  *  LAPACK Constants
diff --git a/cudablas/include/CMakeLists.txt b/cudablas/include/CMakeLists.txt
index 9635e1f953ce9a4a86f51043b911a395d25147b6..a722e3444012b3759b80e405adabfecbfe1d9fb9 100644
--- a/cudablas/include/CMakeLists.txt
+++ b/cudablas/include/CMakeLists.txt
@@ -27,31 +27,36 @@
 # ---------------------
 set(CUDABLAS_HDRS_GENERATED "")
 set(ZHDR
-    cudablas_z.h
+    cudablas/cudablas_z.h
 )
-precisions_rules_py(CUDABLAS_HDRS_GENERATED "${ZHDR}"
-                    PRECISIONS "s;d;c;z;zc;ds" )
+precisions_rules_py(
+  CUDABLAS_HDRS_GENERATED "${ZHDR}"
+  TARGETDIR cudablas
+  PRECISIONS "s;d;c;z;zc;ds" )
 
 # Define the list of headers
 # --------------------------
 set(CUDABLAS_HDRS
     cudablas.h
-    ${CUDABLAS_HDRS_GENERATED}
     )
 
+# Add generated headers
+# ---------------------
+foreach( hdr_file ${CUDABLAS_HDRS_GENERATED} )
+  list(APPEND CUDABLAS_HDRS ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
+endforeach()
+
 # Force generation of headers
 # ---------------------------
 add_custom_target(cudablas_include ALL SOURCES ${CUDABLAS_HDRS})
 
-set(HDR_INSTALL "cudablas.h")
-foreach( hdr_file ${CUDABLAS_HDRS_GENERATED} )
-    list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
-endforeach()
-
-# installation
+# Installation
 # ------------
-install(FILES ${HDR_INSTALL}
-        DESTINATION include/chameleon/cudablas/include)
+install( FILES cudablas.h
+         DESTINATION include )
+
+install( FILES ${CUDABLAS_HDRS}
+         DESTINATION include/cudablas )
 
 ###
 ### END CMakeLists.txt
diff --git a/cudablas/include/cudablas.h b/cudablas/include/cudablas.h
index 6732a0b5b9301f06ba422b32c7d855178693ac2d..04145ea21005e559a531116099f15810aa54733e 100644
--- a/cudablas/include/cudablas.h
+++ b/cudablas/include/cudablas.h
@@ -25,7 +25,7 @@
 #ifndef _CUDA_BLAS_H_
 #define _CUDA_BLAS_H_
 
-#include "include/chameleon_config.h"
+#include "chameleon/chameleon_config.h"
 
 #if !defined(CHAMELEON_USE_CUDA)
 #error "This file should not be included"
@@ -68,20 +68,21 @@
 /** ****************************************************************************
  * MORSE types and constants
  **/
-#include "morse_types.h"
-#include "morse_struct.h"
-#include "morse_constants.h"
-//#include "control/auxiliary.h"
-//#include "control/descriptor.h"
-//#include "control/tile.h"
+#include "chameleon/morse_types.h"
+#include "chameleon/morse_struct.h"
+#include "chameleon/morse_constants.h"
 
 /** ****************************************************************************
  * CUDA BLAS headers
  **/
-#include "cudablas/include/cudablas_z.h"
-#include "cudablas/include/cudablas_d.h"
-#include "cudablas/include/cudablas_c.h"
-#include "cudablas/include/cudablas_s.h"
+BEGIN_C_DECLS
+
+#include "cudablas/cudablas_z.h"
+#include "cudablas/cudablas_d.h"
+#include "cudablas/cudablas_c.h"
+#include "cudablas/cudablas_s.h"
+
+END_C_DECLS
 
 /** ****************************************************************************
  * Coreblas Error
@@ -91,6 +92,8 @@
 /** ****************************************************************************
  *  LAPACK Constants
  **/
+BEGIN_C_DECLS
+
 extern char *morse_lapack_constants[];
 #define morse_lapack_const(morse_const) morse_lapack_constants[morse_const][0]
 
@@ -102,4 +105,6 @@ extern int morse_cublas_constants[];
 #define morse_cublas_const(morse_const) morse_lapack_constants[morse_const][0]
 #endif
 
+END_C_DECLS
+
 #endif
diff --git a/cudablas/include/cudablas_z.h b/cudablas/include/cudablas/cudablas_z.h
similarity index 97%
rename from cudablas/include/cudablas_z.h
rename to cudablas/include/cudablas/cudablas_z.h
index 0413fd5417dc3a06962c9c7de968413277304705..1e88fbf65b54fb066e61c8f25b05052b3bc5dde7 100644
--- a/cudablas/include/cudablas_z.h
+++ b/cudablas/include/cudablas/cudablas_z.h
@@ -25,13 +25,6 @@
 #ifndef _MORSE_CUDA_ZBLAS_H_
 #define _MORSE_CUDA_ZBLAS_H_
 
-#include "include/chameleon_config.h"
-#include "morse_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /** ****************************************************************************
  *  Declarations of cuda kernels - alphabetical order
  **/
@@ -56,8 +49,4 @@ int CUDA_zttmqr( MORSE_enum side, MORSE_enum trans, int M1, int N1, int M2, int
 int CUDA_zunmlqt(MORSE_enum side, MORSE_enum trans, int M, int N, int K, int IB, const cuDoubleComplex *A,    int LDA, const cuDoubleComplex *T,    int LDT, cuDoubleComplex *C,    int LDC, cuDoubleComplex *WORK, int LDWORK, CUBLAS_STREAM_PARAM );
 int CUDA_zunmqrt(MORSE_enum side, MORSE_enum trans, int M, int N, int K, int IB, const cuDoubleComplex *A,    int LDA, const cuDoubleComplex *T,    int LDT, cuDoubleComplex *C,    int LDC, cuDoubleComplex *WORK, int LDWORK, CUBLAS_STREAM_PARAM );
 
-#ifdef __cplusplus
-}
-#endif
-
 #endif
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
index 92aa8314376ddc5edcfdfcaf4ab1ab15f6baaee4..e4958b8bb2ad701b398c0828b759240b6643cbad 100755
--- a/example/CMakeLists.txt
+++ b/example/CMakeLists.txt
@@ -22,7 +22,9 @@
 #  @date 17-10-2014
 #
 ###
-
+if (CHAMELEON_SIMULATION)
+  message(ERROR "example directory should not be included when simulation is enabled")
+endif()
 
 add_subdirectory(basic_zposv)
 
diff --git a/example/basic_zposv/CMakeLists.txt b/example/basic_zposv/CMakeLists.txt
index 555e7f72e27859f786328dc2a1f81cf030b5c11d..13052cb59c6051381c264859295553f44a1604ed 100644
--- a/example/basic_zposv/CMakeLists.txt
+++ b/example/basic_zposv/CMakeLists.txt
@@ -66,41 +66,27 @@ elseif(CHAMELEON_SCHED_QUARK)
     link_directories(${QUARK_LIBRARY_DIRS})
 endif()
 
-if(NOT CHAMELEON_SIMULATION)
-
-    if(CHAMELEON_USE_CUDA)
-        list(APPEND libs_for_examples
-        cudablas)
-    endif()
-    if(CHAMELEON_USE_CUDA)
-        link_directories(${CUDA_LIBRARY_DIRS})
-    endif()
-
-    list(APPEND libs_for_examples
-         coreblas
-         ${LAPACKE_LIBRARIES}
-         ${CBLAS_LIBRARIES}
-         ${LAPACK_SEQ_LIBRARIES}
-         ${BLAS_SEQ_LIBRARIES}
-         ${HWLOC_LIBRARIES}
-         ${EXTRA_LIBRARIES}
-    )
-
-    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_examples
-         ${HWLOC_LIBRARIES}
-         ${EXTRA_LIBRARIES}
-    )
-
+if(CHAMELEON_USE_CUDA)
+  list(APPEND libs_for_examples
+    cudablas)
+endif()
+if(CHAMELEON_USE_CUDA)
+  link_directories(${CUDA_LIBRARY_DIRS})
 endif()
 
-link_directories(${HWLOC_LIBRARY_DIRS})
+list(APPEND libs_for_examples
+  coreblas
+  ${LAPACKE_LIBRARIES}
+  ${CBLAS_LIBRARIES}
+  ${LAPACK_SEQ_LIBRARIES}
+  ${BLAS_SEQ_LIBRARIES}
+  ${EXTRA_LIBRARIES}
+  )
+
+link_directories(${LAPACKE_LIBRARY_DIRS})
+link_directories(${LAPACK_LIBRARY_DIRS})
+link_directories(${CBLAS_LIBRARY_DIRS})
+link_directories(${BLAS_LIBRARY_DIRS})
 
 # message(STATUS "libs timings: ${libs_for_examples}")
 foreach(_example ${EXAMPLES})
@@ -109,7 +95,7 @@ foreach(_example ${EXAMPLES})
     set_property(TARGET ${_name_exe} PROPERTY LINKER_LANGUAGE Fortran)
     target_link_libraries(${_name_exe} ${libs_for_examples})
     install(TARGETS ${_name_exe}
-            DESTINATION lib/chameleon/example/basic_zposv)
+            DESTINATION bin/example/basic_zposv )
 endforeach()
 
 #-------- Tests ---------
diff --git a/example/basic_zposv/basic_posv.h b/example/basic_zposv/basic_posv.h
index 9373f661ca8b0b8b7a20663f51f9cdd406b43cb3..2b3e015c201fbad7bc09ce654444f1eeb177892a 100644
--- a/example/basic_zposv/basic_posv.h
+++ b/example/basic_zposv/basic_posv.h
@@ -47,10 +47,10 @@
 #include <sys/resource.h>
 #endif
 
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
 #include <morse.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas.h>
 
 #if defined(CHAMELEON_USE_MPI)
 #include <mpi.h>
diff --git a/example/basic_zposv/posv_users_functions.h b/example/basic_zposv/posv_users_functions.h
index 2227941ad0d3537c58439047940146eacb46a8ec..af2469c30f30e2ad5be1883cb4674c37129795e3 100644
--- a/example/basic_zposv/posv_users_functions.h
+++ b/example/basic_zposv/posv_users_functions.h
@@ -53,6 +53,7 @@ inline static void* user_getaddr_arrayofpointers(const MORSE_desc_t *A, int m, i
  **/
 inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m)
 {
+    (void)m;
     return A->mb;
 }
 
diff --git a/example/lapack_to_morse/CMakeLists.txt b/example/lapack_to_morse/CMakeLists.txt
index c627c5eea1e59ef8294fa973fe146b7a2cbc9669..2dc43491aba468bbc53775220d07b3942f1aa86e 100644
--- a/example/lapack_to_morse/CMakeLists.txt
+++ b/example/lapack_to_morse/CMakeLists.txt
@@ -19,8 +19,6 @@
 #  @date 2014-10-13
 #
 ###
-
-
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 
@@ -39,99 +37,53 @@ set(LTM_SOURCES
 # ------------------------------------------
 unset(libs_for_ltm)
 list(APPEND libs_for_ltm
-     chameleon
+  chameleon
+  coreblas
+  ${LAPACKE_LIBRARIES}
 )
 
-if(CHAMELEON_SCHED_STARPU)
-    list(APPEND libs_for_ltm
-      chameleon_starpu
-      ${STARPU_LIBRARIES_DEP}
-    )
-    link_directories(${STARPU_LIBRARY_DIRS})
-elseif(CHAMELEON_SCHED_PARSEC)
-    list(APPEND libs_for_ltm
-         chameleon_parsec
-         ${PARSEC_LIBRARIES_DEP}
-      )
-    link_directories(${PARSEC_LIBRARY_DIRS_DEP})
-elseif(CHAMELEON_SCHED_QUARK)
-    list(APPEND libs_for_ltm
-         chameleon_quark
-         ${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)
-
-if(NOT CHAMELEON_SIMULATION)
-
-    if(CHAMELEON_USE_CUDA)
-        list(APPEND libs_for_ltm
-        cudablas)
-    endif()
-    if(CHAMELEON_USE_CUDA)
-        link_directories(${CUDA_LIBRARY_DIRS})
-    endif()
-
-    list(APPEND libs_for_step0 ${libs_for_ltm})
-
-    list(APPEND libs_for_ltm
-         coreblas
-         ${LAPACKE_LIBRARIES}
-         ${CBLAS_LIBRARIES}
-         ${LAPACK_SEQ_LIBRARIES}
-         ${BLAS_SEQ_LIBRARIES}
-         ${HWLOC_LIBRARIES}
-         ${EXTRA_LIBRARIES}
+list(APPEND libs_for_step0
+  ${libs_for_ltm}
+  ${CBLAS_LIBRARIES}
+  )
+
+if(LAPACK_PAR_LIBRARIES)
+  list(APPEND libs_for_step0
+    ${LAPACK_PAR_LIBRARIES}
     )
+else()
+  list(APPEND libs_for_step0
+    ${LAPACK_SEQ_LIBRARIES}
+    )
+endif()
 
-    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})
-
+if(BLAS_PAR_LIBRARIES)
+  list(APPEND libs_for_step0
+    ${BLAS_PAR_LIBRARIES}
+    )
 else()
+  list(APPEND libs_for_step0
+    ${BLAS_SEQ_LIBRARIES}
+    )
+endif()
 
-    list(APPEND libs_for_ltm ${EXTRA_LIBRARIES})
-    list(APPEND libs_for_step0 ${EXTRA_LIBRARIES})
+list(APPEND libs_for_step0
+  ${EXTRA_LIBRARIES}
+  )
 
-endif()
+list(APPEND libs_for_ltm
+  ${LAPACK_SEQ_LIBRARIES}
+  ${BLAS_SEQ_LIBRARIES}
+  ${EXTRA_LIBRARIES}
+  )
 
+link_directories(${LAPACKE_LIBRARY_DIRS})
+link_directories(${LAPACK_LIBRARY_DIRS})
+link_directories(${CBLAS_LIBRARY_DIRS})
+link_directories(${BLAS_LIBRARY_DIRS})
 
 # message(STATUS "libs examples: ${libs_for_ltm}")
 foreach(_ltm ${LTM_SOURCES})
@@ -140,14 +92,14 @@ foreach(_ltm ${LTM_SOURCES})
     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}/lib/chameleon/example/lapack_to_morse)
+            DESTINATION bin/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}/lib/chameleon/example/lapack_to_morse)
+        DESTINATION bin/example/lapack_to_morse)
 
 #-------- Tests ---------
 include(CTestLists.cmake)
diff --git a/example/lapack_to_morse/step0.c b/example/lapack_to_morse/step0.c
index f6e84e907aea21e8a6758f40baf17f76d3553565..ef52684f1f91efede31bf3e0dc4fdccb8ad9f33e 100644
--- a/example/lapack_to_morse/step0.c
+++ b/example/lapack_to_morse/step0.c
@@ -23,7 +23,7 @@
  **/
 
 #include "step0.h"
-#include <coreblas/include/coreblas.h>
+#include <coreblas.h>
 
 /*
  * @brief step0 is a simple Cholesky example using the C interface of
diff --git a/example/lapack_to_morse/step0.h b/example/lapack_to_morse/step0.h
index f5b776c3318ea2fe2593d8d5a4094dbf54677909..9f1a4b610d819536cb1cf84813ac65985ff04ff1 100644
--- a/example/lapack_to_morse/step0.h
+++ b/example/lapack_to_morse/step0.h
@@ -32,8 +32,8 @@
 #ifndef CBLAS_SADDR
 #define CBLAS_SADDR( _val_ ) &(_val_)
 #endif
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
 
 /* Integer parameters for step0 */
 enum iparam_step0 {
diff --git a/example/lapack_to_morse/step1.h b/example/lapack_to_morse/step1.h
index 4ee136cc019f455b9590420e83c825ba647a0f6a..99637d2f297df3dd946413e48f7ee90a23ddfe0f 100644
--- a/example/lapack_to_morse/step1.h
+++ b/example/lapack_to_morse/step1.h
@@ -29,7 +29,7 @@
 #include "lapack_to_morse.h"
 
 /* Specific includes for step 1 */
-#include <coreblas/include/lapacke.h>
+#include <coreblas/lapacke.h>
 #include <morse.h>
 
 /* Integer parameters for step1 */
diff --git a/example/lapack_to_morse/step2.h b/example/lapack_to_morse/step2.h
index 455b57befd08b202ca1a618add93f58df8703baf..199394bea60084855fd881d4531947f0a98b2c3f 100644
--- a/example/lapack_to_morse/step2.h
+++ b/example/lapack_to_morse/step2.h
@@ -29,7 +29,7 @@
 #include "lapack_to_morse.h"
 
 /* Specific includes for step 2 */
-#include <coreblas/include/lapacke.h>
+#include <coreblas/lapacke.h>
 #include "morse.h"
 
 /* Integer parameters for step2 */
diff --git a/example/lapack_to_morse/step3.h b/example/lapack_to_morse/step3.h
index eedce3468857cc6bb6cfac3907f80670eac0e2a8..c40c190390a4f276527468abfbcf204fba1765e8 100644
--- a/example/lapack_to_morse/step3.h
+++ b/example/lapack_to_morse/step3.h
@@ -29,7 +29,7 @@
 #include "lapack_to_morse.h"
 
 /* Specific includes for step 3 */
-#include <coreblas/include/lapacke.h>
+#include <coreblas/lapacke.h>
 #include <morse.h>
 
 /* Integer parameters for step3 */
@@ -190,6 +190,7 @@ inline static void* user_getaddr_arrayofpointers(const MORSE_desc_t *A, int m, i
  */
 inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m)
 {
+    (void)m;
     return A->mb;
 }
 
@@ -198,6 +199,7 @@ inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m)
  */
 inline static int user_getrankof_zero(const MORSE_desc_t *A, int m, int n)
 {
+    (void)A; (void)m; (void)n;
     return 0;
 }
 
diff --git a/example/lapack_to_morse/step4.h b/example/lapack_to_morse/step4.h
index f77a56dd9cce3e28401aca65895f064090f1f345..da805639ce8a2a56c455e1b8528b60bfbac6ad61 100644
--- a/example/lapack_to_morse/step4.h
+++ b/example/lapack_to_morse/step4.h
@@ -29,7 +29,7 @@
 #include "lapack_to_morse.h"
 
 /* Specific includes for step 4 */
-#include <coreblas/include/lapacke.h>
+#include <coreblas/lapacke.h>
 #include <morse.h>
 
 /* Integer parameters for step4 */
diff --git a/example/lapack_to_morse/step5.h b/example/lapack_to_morse/step5.h
index e6d880763cf5c5c76b4aff3a36549364df946a5a..ff5cb91f8195310ead7d569a8c9491af407c6289 100644
--- a/example/lapack_to_morse/step5.h
+++ b/example/lapack_to_morse/step5.h
@@ -29,7 +29,7 @@
 #include "lapack_to_morse.h"
 
 /* Specific includes for step 5 */
-#include <coreblas/include/lapacke.h>
+#include <coreblas/lapacke.h>
 #include <morse.h>
 
 /* Integer parameters for step5 */
diff --git a/example/lapack_to_morse/step6.h b/example/lapack_to_morse/step6.h
index 0cb6d8a1cb31caa1fcdbacdd2a0e2403220b003a..cbcfb6dbc2d24a5367ffb3f9cdcf5986078d1379 100644
--- a/example/lapack_to_morse/step6.h
+++ b/example/lapack_to_morse/step6.h
@@ -29,7 +29,7 @@
 #include "lapack_to_morse.h"
 
 /* Specific includes for step 6 */
-#include <coreblas/include/lapacke.h>
+#include <coreblas/lapacke.h>
 #include <morse.h>
 #if defined(CHAMELEON_USE_MPI)
 #include <mpi.h>
diff --git a/example/lapack_to_morse/step7.h b/example/lapack_to_morse/step7.h
index 3e452380944cc2ecf84dfdb484fe91f7549d889f..b916e319f65ecdebc356b6f8f51b2952c973f4c8 100644
--- a/example/lapack_to_morse/step7.h
+++ b/example/lapack_to_morse/step7.h
@@ -30,8 +30,8 @@
 #include "lapack_to_morse.h"
 
 /* Specific includes for step 7 */
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include <morse.h>
 #if defined(CHAMELEON_USE_MPI)
 #include <mpi.h>
diff --git a/example/link_chameleon/link_chameleon.c b/example/link_chameleon/link_chameleon.c
index b63b45e327f14fa0cc3ffdc8adc5dee8e135e954..0aeb255eb24a1f138e229b7eefe9e1d0a29e4354 100644
--- a/example/link_chameleon/link_chameleon.c
+++ b/example/link_chameleon/link_chameleon.c
@@ -100,7 +100,7 @@ double cWtime(void)
     gettimeofday( &tp, NULL );
     return tp.tv_sec + 1e-6 * tp.tv_usec;
 }
-#include <coreblas/include/lapacke.h>
+#include <coreblas/lapacke.h>
 #include <morse.h>
 
 /* Integer parameters for step1 */
diff --git a/example/out_of_core/CMakeLists.txt b/example/out_of_core/CMakeLists.txt
index 01bb2704125c0a655626d31dde07a5d7e66edffe..2efda2d3f28326423a5fb50a21ba3f2f95484aed 100644
--- a/example/out_of_core/CMakeLists.txt
+++ b/example/out_of_core/CMakeLists.txt
@@ -19,7 +19,13 @@
 #  @date 2016-08-23
 #
 ###
+if (NOT CHAMELEON_SCHED_STARPU)
+  message(ERROR "This directory should not be included if CHAMELEON_SCHED_STARPU is not enabled")
+endif()
 
+if(CHAMELEON_SIMULATION)
+  message(ERROR "This directory should not be included if CHAMELEON_SIMULATION is enabled")
+endif()
 
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
@@ -34,43 +40,20 @@ set(OOC_SOURCES
 unset(libs_for_ooc)
 list(APPEND libs_for_ooc
      chameleon
-     chameleon_starpu
      ${STARPU_LIBRARIES_DEP}
 )
 link_directories(${STARPU_LIBRARY_DIRS})
 
+list(APPEND libs_for_ooc
+  ${LAPACKE_LIBRARIES}
+  ${LAPACK_SEQ_LIBRARIES}
+  ${BLAS_SEQ_LIBRARIES}
+  ${EXTRA_LIBRARIES}
+  )
 
-if(NOT CHAMELEON_SIMULATION)
-
-    if(CHAMELEON_USE_CUDA)
-        list(APPEND libs_for_ooc
-        cudablas)
-    endif()
-    if(CHAMELEON_USE_CUDA)
-        link_directories(${CUDA_LIBRARY_DIRS})
-    endif()
-
-    list(APPEND libs_for_ooc
-         coreblas
-         ${LAPACKE_LIBRARIES}
-         ${CBLAS_LIBRARIES}
-         ${LAPACK_SEQ_LIBRARIES}
-         ${BLAS_SEQ_LIBRARIES}
-         ${HWLOC_LIBRARIES}
-         ${EXTRA_LIBRARIES}
-    )
-
-    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_ooc ${EXTRA_LIBRARIES})
-
-endif()
-
+link_directories(${LAPACKE_LIBRARY_DIRS})
+link_directories(${LAPACK_LIBRARY_DIRS})
+link_directories(${BLAS_LIBRARY_DIRS})
 
 # message(STATUS "libs examples: ${libs_for_ooc}")
 foreach(_ooc ${OOC_SOURCES})
@@ -82,7 +65,7 @@ foreach(_ooc ${OOC_SOURCES})
     endif()
     target_link_libraries(${_name_exe} ${libs_for_ooc})
     install(TARGETS ${_name_exe}
-            DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/chameleon/example/out_of_core)
+            DESTINATION bin/example/out_of_core)
 endforeach()
 
 #-------- Tests ---------
diff --git a/example/out_of_core/out_of_core.h b/example/out_of_core/out_of_core.h
index 95a25dcbcf149999e1ad5046a7f03ea783c97406..dce72d9bcafde47051fe07fe939ccd4200b9fc26 100644
--- a/example/out_of_core/out_of_core.h
+++ b/example/out_of_core/out_of_core.h
@@ -48,7 +48,7 @@
 #endif
 
 #include <starpu.h>
-#include "coreblas/include/lapacke.h"
+#include "coreblas/lapacke.h"
 #include "morse.h"
 #include "control/common.h"
 
diff --git a/hqr b/hqr
index 2bc36789f26039bc6eefe03f6825a383847724f5..1e7bad3a5e56c28514f8121195ffefdda70335bb 160000
--- a/hqr
+++ b/hqr
@@ -1 +1 @@
-Subproject commit 2bc36789f26039bc6eefe03f6825a383847724f5
+Subproject commit 1e7bad3a5e56c28514f8121195ffefdda70335bb
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index ccc94012f9d46c8d78dd7d8a224ede3570892ba5..bcbfb84fa211854503d5b547f120691f1ea96852 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -3,8 +3,8 @@
 # @copyright (c) 2009-2014 The University of Tennessee and The University
 #                          of Tennessee Research Foundation.
 #                          All rights reserved.
-# @copyright (c) 2012-2017 Inria. All rights reserved.
-# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+# @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+#                          Univ. Bordeaux. All rights reserved.
 #
 ###
 #
@@ -27,71 +27,56 @@
 #
 ###
 
-
 # Generate the morse headers for all possible precisions
 # ------------------------------------------------------
 set(CHAMELEON_HDRS_GENERATED "")
 set(ZHDR
-    morse_z.h
-    morse_zc.h
-    runtime_z.h
-    runtime_zc.h
+    chameleon/morse_z.h
+    chameleon/morse_zc.h
+    chameleon/morse_tasks_z.h
+    chameleon/morse_tasks_zc.h
 )
 
 precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
-                    PRECISIONS "z;c;d;s;zc;ds")
+  TARGETDIR  "chameleon"
+  PRECISIONS "z;c;d;s;zc;ds" )
 
-configure_file("chameleon_config.h.in"
-               "chameleon_config.h"
-               @ONLY)
-configure_file("morse.h.in"
-               "morse.h"
+configure_file("chameleon/chameleon_config.h.in"
+               "chameleon/chameleon_config.h"
                @ONLY)
 
 # Define the list of headers
 # --------------------------
 set(CHAMELEON_HDRS
-    chameleon_config.h
-    morse_constants.h
-    morse_kernels.h
-    morse_simulate.h
-    morse_struct.h
-    morse_types.h
-    morse.h
-    morse_mangling.h
-    runtime.h
-    ${CHAMELEON_HDRS_GENERATED}
-    )
+  ${CMAKE_CURRENT_BINARY_DIR}/chameleon/chameleon_config.h
+  ${CMAKE_CURRENT_BINARY_DIR}/chameleon/morse_mangling.h
+  chameleon/morse_constants.h
+  chameleon/morse_kernels.h
+  chameleon/morse_runtime.h
+  chameleon/morse_simulate.h
+  chameleon/morse_struct.h
+  chameleon/morse_tasks.h
+  chameleon/morse_types.h
+  )
 
-set(flags_to_add "")
-foreach(_prec ${CHAMELEON_PRECISION})
-    set(flags_to_add "${flags_to_add} -DPRECISION_${_prec}")
+# Add generated headers
+# ---------------------
+foreach( hdr_file ${CHAMELEON_HDRS_GENERATED} )
+  list(APPEND CHAMELEON_HDRS ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
 endforeach()
-set_source_files_properties(runtime.h PROPERTIES COMPILE_FLAGS "${flags_to_add}")
 
 # Force generation of headers
 # ---------------------------
-add_custom_target(chameleon_include ALL SOURCES ${CHAMELEON_HDRS})
+add_custom_target(chameleon_include
+  ALL SOURCES morse.h ${CHAMELEON_HDRS} )
 
-set(HDR_INSTALL
-    morse_constants.h
-    morse_fortran.h
-    morse_kernels.h
-    morse_simulate.h
-    morse_struct.h
-    morse_types.h
-    runtime.h
-    ${CMAKE_CURRENT_BINARY_DIR}/morse.h
-    ${CMAKE_CURRENT_BINARY_DIR}/chameleon_config.h
-    )
-foreach( hdr_file ${CHAMELEON_HDRS_GENERATED} )
-    list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
-endforeach()
-
-# installation
+# Installation
 # ------------
-install(FILES ${HDR_INSTALL}
-        DESTINATION include/chameleon)
+install( FILES morse.h
+         DESTINATION include )
+
+install( FILES ${CHAMELEON_HDRS}
+         DESTINATION include/chameleon )
 
 ###
 ### END CMakeLists.txt
diff --git a/include/chameleon_config.h.in b/include/chameleon/chameleon_config.h.in
similarity index 76%
rename from include/chameleon_config.h.in
rename to include/chameleon/chameleon_config.h.in
index 3d6ad7be1464cfffdc6e19afecb04274f161346e..b1d6abb133ee925ed100228dc1a6d0766086d938 100644
--- a/include/chameleon_config.h.in
+++ b/include/chameleon/chameleon_config.h.in
@@ -25,6 +25,10 @@
 #ifndef CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED
 #define CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED
 
+#define MORSE_VERSION_MAJOR @MORSE_VERSION_MAJOR@
+#define MORSE_VERSION_MINOR @MORSE_VERSION_MINOR@
+#define MORSE_VERSION_MICRO @MORSE_VERSION_MICRO@
+
 #define CHAMELEON_VERSION_MAJOR @CHAMELEON_VERSION_MAJOR@
 #define CHAMELEON_VERSION_MINOR @CHAMELEON_VERSION_MINOR@
 #define CHAMELEON_VERSION_MICRO @CHAMELEON_VERSION_MICRO@
@@ -52,4 +56,20 @@
 #cmakedefine CHAMELEON_HAVE_GETOPT_H
 #cmakedefine CHAMELEON_HAVE_GETOPT_LONG
 
+#ifdef BEGIN_C_DECLS
+#undef BEGIN_C_DECLS
+#endif
+
+#ifdef END_C_DECLS
+#undef END_C_DECLS
+#endif
+
+#if defined(c_plusplus) || defined(__cplusplus)
+# define BEGIN_C_DECLS extern "C" {
+# define END_C_DECLS }
+#else
+# define BEGIN_C_DECLS          /* empty */
+# define END_C_DECLS            /* empty */
+#endif
+
 #endif  /* CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED */
diff --git a/include/morse_constants.h b/include/chameleon/morse_constants.h
similarity index 100%
rename from include/morse_constants.h
rename to include/chameleon/morse_constants.h
diff --git a/include/morse_fortran.h b/include/chameleon/morse_fortran.h
similarity index 100%
rename from include/morse_fortran.h
rename to include/chameleon/morse_fortran.h
diff --git a/include/morse_kernels.h b/include/chameleon/morse_kernels.h
similarity index 95%
rename from include/morse_kernels.h
rename to include/chameleon/morse_kernels.h
index d043eba37bdf729988a8dccb5434c2e2552e248f..dd1ce89f0cbf140b369134075f5853b79e0f04a0 100644
--- a/include/morse_kernels.h
+++ b/include/chameleon/morse_kernels.h
@@ -32,12 +32,10 @@
 typedef enum morse_kernel_e {
 
   MORSE_GEMM,
-#if defined(PRECISION_z) || defined(PRECISION_c)
   MORSE_HEMM,
   MORSE_HER2K,
   MORSE_HERK,
   MORSE_SYTRF_NOPIV,
-#endif
   MORSE_SYMM,
   MORSE_SYR2K,
   MORSE_SYRK,
@@ -87,4 +85,4 @@ typedef enum morse_kernel_e {
   MORSE_NBKERNELS
 } MORSE_kernel_t;
 
-#endif /* _MORSE_KERNELS_H_ */
+#endif
diff --git a/include/runtime.h b/include/chameleon/morse_runtime.h
similarity index 76%
rename from include/runtime.h
rename to include/chameleon/morse_runtime.h
index ee20cfe3666ad9268e323b3fe9de37c29e6322cc..9b066d3d05622915572a776b45abbd3c276ad37d 100644
--- a/include/runtime.h
+++ b/include/chameleon/morse_runtime.h
@@ -24,10 +24,13 @@
  * @date 2011-06-01
  *
  **/
-#ifndef _RUNTIME_H_
-#define _RUNTIME_H_
+#ifndef _MORSE_RUNTIME_H_
+#define _MORSE_RUNTIME_H_
 
-#include "morse_struct.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_struct.h"
+
+BEGIN_C_DECLS
 
 /*******************************************************************************
  * RUNTIME Async
@@ -114,8 +117,8 @@ void RUNTIME_slocality_onerestore (MORSE_kernel_t);
 /*******************************************************************************
  * RUNTIME Profiling
  **/
-void  RUNTIME_schedprofile_display ();
-void  RUNTIME_kernelprofile_display();
+void   RUNTIME_schedprofile_display ();
+void   RUNTIME_kernelprofile_display();
 double RUNTIME_get_time();
 
 void RUNTIME_start_profiling();
@@ -124,54 +127,15 @@ void RUNTIME_stop_profiling();
 void RUNTIME_start_stats();
 void RUNTIME_stop_stats();
 
-#if defined(PRECISION_z)
 void RUNTIME_zdisplay_allprofile ();
 void RUNTIME_zdisplay_oneprofile (MORSE_kernel_t);
-#endif
-
-#if defined(PRECISION_c)
 void RUNTIME_cdisplay_allprofile ();
 void RUNTIME_cdisplay_oneprofile (MORSE_kernel_t);
-#endif
-
-#if defined(PRECISION_d)
 void RUNTIME_ddisplay_allprofile ();
 void RUNTIME_ddisplay_oneprofile (MORSE_kernel_t);
-#endif
-
-#if defined(PRECISION_s)
 void RUNTIME_sdisplay_allprofile ();
 void RUNTIME_sdisplay_oneprofile (MORSE_kernel_t);
-#endif
 
-/*******************************************************************************
- * RUNTIME Kernels
- **/
-#include "runtime_z.h"
-#include "runtime_d.h"
-#include "runtime_c.h"
-#include "runtime_s.h"
-#include "runtime_zc.h"
-#include "runtime_ds.h"
-
-void MORSE_TASK_ztile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-void MORSE_TASK_dtile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-void MORSE_TASK_ctile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-void MORSE_TASK_stile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-
-/*
- * Mark a data as unused after this call
- */
-void MORSE_TASK_dataflush(const MORSE_option_t *options,
-                          const MORSE_desc_t *A, int Am, int An);
-void MORSE_TASK_dataflush_all();
-
-#endif
+END_C_DECLS
+
+#endif /* _MORSE_RUNTIME_H_ */
diff --git a/include/morse_simulate.h b/include/chameleon/morse_simulate.h
similarity index 96%
rename from include/morse_simulate.h
rename to include/chameleon/morse_simulate.h
index 7ef57e7291d309fe45b267cdb33f3937dffd3224..51b8131c84de14c318135f350b47e874618d9104 100644
--- a/include/morse_simulate.h
+++ b/include/chameleon/morse_simulate.h
@@ -25,7 +25,7 @@
 #ifndef _MORSE_SIMULATE_H_
 #define _MORSE_SIMULATE_H_
 
-#include "chameleon_config.h"
+#include "chameleon/chameleon_config.h"
 
 /* we need this when starpu is compiled with simgrid enabled */
 #if defined(CHAMELEON_SCHED_STARPU) && defined(CHAMELEON_SIMULATION)
diff --git a/include/morse_struct.h b/include/chameleon/morse_struct.h
similarity index 97%
rename from include/morse_struct.h
rename to include/chameleon/morse_struct.h
index a87b8ca47c7f4716666ba6164450c1fe5416f415..419f81a22a082b169eace3a3b03f7d9469b04a9a 100644
--- a/include/morse_struct.h
+++ b/include/chameleon/morse_struct.h
@@ -28,8 +28,11 @@
 #ifndef _MORSE_STRUCT_H_
 #define _MORSE_STRUCT_H_
 
-#include "chameleon_config.h"
-#include "morse_types.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_types.h"
+#include "chameleon/morse_kernels.h"
+
+BEGIN_C_DECLS
 
 /** ****************************************************************************
  * RUNTIME headers to include types of :
@@ -184,11 +187,6 @@ typedef struct morse_option_s {
     void             *schedopt;
 } MORSE_option_t;
 
-
-/** ****************************************************************************
- *  MORSE kernels
- **/
-#include "morse_kernels.h"
-
+END_C_DECLS
 
 #endif /* __CHAMELEON_H__ */
diff --git a/include/chameleon/morse_tasks.h b/include/chameleon/morse_tasks.h
new file mode 100644
index 0000000000000000000000000000000000000000..a2fc5efe6ebaa02ed55a1f08ae920b1c6f00ea11
--- /dev/null
+++ b/include/chameleon/morse_tasks.h
@@ -0,0 +1,65 @@
+/**
+ *
+ * @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.
+ *
+ **/
+
+/**
+ *
+ *  @file morse_tasks.h
+ *
+ *  MORSE codelets kernel
+ *  MORSE is a software package provided by Univ. of Tennessee,
+ *  Univ. of California Berkeley and Univ. of Colorado Denver,
+ *  and INRIA Bordeaux Sud-Ouest
+ *
+ *  @version 2.3.1
+ *  @author Mathieu Faverge
+ *  @author Cedric Augonnet
+ *  @date 2011-06-01
+ *
+ **/
+#ifndef _MORSE_TASKS_H_
+#define _MORSE_TASKS_H_
+
+#include "chameleon/chameleon_config.h"
+
+BEGIN_C_DECLS
+
+/*******************************************************************************
+ * MORSE Task submission routines
+ **/
+void MORSE_TASK_ztile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+void MORSE_TASK_dtile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+void MORSE_TASK_ctile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+void MORSE_TASK_stile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+
+/*
+ * Mark a data as unused after this call
+ */
+void MORSE_TASK_dataflush(const MORSE_option_t *options,
+                          const MORSE_desc_t *A, int Am, int An);
+void MORSE_TASK_dataflush_all();
+
+#include "chameleon/morse_tasks_z.h"
+#include "chameleon/morse_tasks_d.h"
+#include "chameleon/morse_tasks_c.h"
+#include "chameleon/morse_tasks_s.h"
+#include "chameleon/morse_tasks_zc.h"
+#include "chameleon/morse_tasks_ds.h"
+
+END_C_DECLS
+
+#endif /* _MORSE_TASKS_H_ */
diff --git a/include/runtime_z.h b/include/chameleon/morse_tasks_z.h
similarity index 99%
rename from include/runtime_z.h
rename to include/chameleon/morse_tasks_z.h
index d4e434a8cd170151cd46e9a8941f3b5dda026cd1..be536814e0926052f9e67d7193a588a325f873be 100644
--- a/include/runtime_z.h
+++ b/include/chameleon/morse_tasks_z.h
@@ -10,7 +10,7 @@
 
 /**
  *
- * @file runtime_z.h
+ * @file morse_tasks_z.h
  *
  *  MORSE auxiliary routines
  *  MORSE is a software package provided by Univ. of Tennessee,
@@ -29,16 +29,11 @@
  * @precisions normal z -> c d s
  *
  **/
-#ifndef _RUNTIME_ZBLAS_H_
-#define _RUNTIME_ZBLAS_H_
+#ifndef _MORSE_TASKS_Z_H_
+#define _MORSE_TASKS_Z_H_
 
 #define COMPLEX
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
 /** ****************************************************************************
  *  Declarations of QUARK wrappers (called by MORSE) - alphabetical order
  **/
@@ -466,11 +461,6 @@ void MORSE_TASK_zbuild( const MORSE_option_t *options,
                         const MORSE_desc_t *A, int Am, int An, int lda,
                         void *user_data, void* user_build_callback );
 
-
-#ifdef __cplusplus
-}
-#endif
-
 #undef COMPLEX
 
 #endif
diff --git a/include/runtime_zc.h b/include/chameleon/morse_tasks_zc.h
similarity index 90%
rename from include/runtime_zc.h
rename to include/chameleon/morse_tasks_zc.h
index a17fd6fe0d5514792b7cb530c4c36e079e3db67d..1e68fc55b1b20c046584ba0dbefa170a6fe670d6 100644
--- a/include/runtime_zc.h
+++ b/include/chameleon/morse_tasks_zc.h
@@ -10,7 +10,7 @@
 
 /**
  *
- * @file runtime_zc.h
+ * @file morse_tasks_zc.h
  *
  *  MORSE auxiliary routines
  *  MORSE is a software package provided by Univ. of Tennessee,
@@ -28,13 +28,8 @@
  * @precisions mixed zc -> ds
  *
  **/
-#ifndef _RUNTIME_ZCBLAS_H_
-#define _RUNTIME_ZCBLAS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
+#ifndef _MORSE_TASKS_Z_H_
+#define _MORSE_TASKS_Z_H_
 
 /** ****************************************************************************
  *  Declarations of QUARK wrappers (called by MORSE) - alphabetical order
@@ -48,9 +43,4 @@ void MORSE_TASK_zlag2c(MORSE_option_t *options,
                        MORSE_desc_t *A, int Am, int An, int lda,
                        MORSE_desc_t *B, int Bm, int Bn, int ldb);
 
-
-#ifdef __cplusplus
-}
-#endif
-
 #endif
diff --git a/include/morse_types.h b/include/chameleon/morse_types.h
similarity index 98%
rename from include/morse_types.h
rename to include/chameleon/morse_types.h
index e072302dfa93c0347550fddbae72be01e4bded1e..0562b40ae3fdc5e5f4e1314cf54d771a54c9add1 100644
--- a/include/morse_types.h
+++ b/include/chameleon/morse_types.h
@@ -28,6 +28,8 @@
 #ifndef _MORSE_TYPES_H_
 #define _MORSE_TYPES_H_
 
+#include "chameleon/chameleon_config.h"
+
 /** ****************************************************************************
  *  System requirements
  **/
@@ -119,6 +121,7 @@ typedef long MORSE_size;
 #define MORSE_DEPRECATED
 #endif /* __GNUC__ */
 
+BEGIN_C_DECLS
 
 /*******************************************************************************
  *  Global utilities
@@ -131,4 +134,6 @@ static inline int chameleon_min( int a, int b ) {
     if ( a < b ) return a; else return b;
 }
 
+END_C_DECLS
+
 #endif /* __CHAMELEON_H__ */
diff --git a/include/morse_z.h b/include/chameleon/morse_z.h
similarity index 99%
rename from include/morse_z.h
rename to include/chameleon/morse_z.h
index cd41b2fac3cbd2214efd1ae8398755d08f60e4f5..89e0be9c89cd3af78fa66f8f73a71d89150578d0 100644
--- a/include/morse_z.h
+++ b/include/chameleon/morse_z.h
@@ -35,9 +35,7 @@
 #undef REAL
 #define COMPLEX
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+BEGIN_C_DECLS
 
 /** ****************************************************************************
  *  Declarations of math functions (LAPACK layout) - alphabetical order
@@ -361,9 +359,7 @@ int MORSE_zbuild(MORSE_enum uplo, int M, int N, MORSE_Complex64_t *A, int LDA, v
 int MORSE_zbuild_Tile(MORSE_enum uplo,  MORSE_desc_t *A, void *user_data, void* user_build_callback );
 int MORSE_zbuild_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, void *user_data, void* user_build_callback, MORSE_sequence_t *sequence, MORSE_request_t  *request);
 
-#ifdef __cplusplus
-}
-#endif
+END_C_DECLS
 
 #undef COMPLEX
 
diff --git a/include/morse_zc.h b/include/chameleon/morse_zc.h
similarity index 96%
rename from include/morse_zc.h
rename to include/chameleon/morse_zc.h
index d41b48bd52766b609cc5f5a7efba57e5335307dd..a006574bfae3e67b66c22c48f3e749eff47493e3 100644
--- a/include/morse_zc.h
+++ b/include/chameleon/morse_zc.h
@@ -29,9 +29,7 @@
 #ifndef _MORSE_ZC_H_
 #define _MORSE_ZC_H_
 
-#if defined(c_plusplus) || defined(__cplusplus)
-extern "C" {
-#endif
+BEGIN_C_DECLS
 
 /** ****************************************************************************
  *  Declarations of math functions (LAPACK layout) - alphabetical order
@@ -57,8 +55,6 @@ extern "C" {
 //int MORSE_zcgels_Tile_Async(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER, MORSE_sequence_t *sequence, MORSE_request_t *request);
 //int MORSE_zcungesv_Tile_Async(MORSE_enum trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_desc_t *X, int *ITER, MORSE_sequence_t *sequence, MORSE_request_t *request);
 
-#if defined(c_plusplus) || defined(__cplusplus)
-}
-#endif
+END_C_DECLS
 
 #endif
diff --git a/include/morse.h.in b/include/morse.h
similarity index 81%
rename from include/morse.h.in
rename to include/morse.h
index 0a3f3ae0a23d3076c1a51c95f5c61449a5db279d..dbce6b27964b7f26898cf34ad4fc4a8b178300f4 100644
--- a/include/morse.h.in
+++ b/include/morse.h
@@ -28,36 +28,51 @@
 #ifndef _MORSE_H_
 #define _MORSE_H_
 
-#define MORSE_VERSION_MAJOR @MORSE_VERSION_MAJOR@
-#define MORSE_VERSION_MINOR @MORSE_VERSION_MINOR@
-#define MORSE_VERSION_MICRO @MORSE_VERSION_MICRO@
-
 /* ****************************************************************************
  * MORSE types and constants
  */
-#include "chameleon_config.h"
-#include "morse_types.h"
-#include "morse_struct.h"
-#include "morse_constants.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_types.h"
+#include "chameleon/morse_struct.h"
+#include "chameleon/morse_constants.h"
+#include "chameleon/morse_kernels.h"
+
+
+/* ****************************************************************************
+ * MORSE runtime common API
+ */
+#include "chameleon/morse_runtime.h"
 
 
 /* ****************************************************************************
- * RUNTIME Functions
+ * MORSE Simulation mode
  */
-#include "runtime.h"
+#include "chameleon/morse_simulate.h"
 
+/* ****************************************************************************
+ * Include LibHQR for hierarchical trees QR/LQ factorizations
+ */
+#include "libhqr.h"
 
 /* ****************************************************************************
- * For Simulation mode
+ * MORSE Tasks
  */
-#include "morse_simulate.h"
+#include "chameleon/morse_tasks.h"
+
+/* ****************************************************************************
+ * MORSE functionnalities
+ */
+#include "chameleon/morse_z.h"
+#include "chameleon/morse_c.h"
+#include "chameleon/morse_d.h"
+#include "chameleon/morse_s.h"
+#include "chameleon/morse_zc.h"
+#include "chameleon/morse_ds.h"
 
 /* ****************************************************************************
  * MORSE Functions
  */
-#ifdef __cplusplus
-extern "C" {
-#endif
+BEGIN_C_DECLS
 
 /* Auxiliary */
 int MORSE_Version           (int *ver_major, int *ver_minor, int *ver_micro);
@@ -117,16 +132,6 @@ int MORSE_Sequence_Create  (MORSE_sequence_t **sequence);
 int MORSE_Sequence_Destroy (MORSE_sequence_t *sequence);
 int MORSE_Sequence_Wait    (MORSE_sequence_t *sequence);
 
-#ifdef __cplusplus
-}
-#endif
-
-#include "libhqr.h"
-#include "morse_z.h"
-#include "morse_c.h"
-#include "morse_d.h"
-#include "morse_s.h"
-#include "morse_zc.h"
-#include "morse_ds.h"
+END_C_DECLS
 
 #endif
diff --git a/lib/pkgconfig/chameleon.pc.in b/lib/pkgconfig/chameleon.pc.in
index 028e3d907b9dd26401d65f584826615262400a5d..80f9dabe1fb8fa8d513aff49c1cc54377b966f0d 100644
--- a/lib/pkgconfig/chameleon.pc.in
+++ b/lib/pkgconfig/chameleon.pc.in
@@ -1,12 +1,12 @@
 prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
 libdir=${exec_prefix}/lib
-includedir=${exec_prefix}/include/chameleon
+includedir=${exec_prefix}/include
 
 Name: chameleon
 Description: Dense Linear Algebra for Scalable Multi-core Architectures and GPGPUs
 Version: @CHAMELEON_VERSION_MAJOR@.@CHAMELEON_VERSION_MINOR@.@CHAMELEON_VERSION_MICRO@
-Cflags: @CHAMELEON_PKGCONFIG_DEFINITIONS@ -I${includedir} -I${includedir}/coreblas/include
+Cflags: @CHAMELEON_PKGCONFIG_DEFINITIONS@ -I${includedir}
 Libs: -L${libdir} @CHAMELEON_PKGCONFIG_LIBS@
 Libs.private: @CHAMELEON_PKGCONFIG_LIBS_PRIVATE@
 Requires: @CHAMELEON_PKGCONFIG_REQUIRED@
diff --git a/lib/pkgconfig/coreblas.pc.in b/lib/pkgconfig/coreblas.pc.in
index 26b1dbb179450f0f04e77d7e15bf441584bab3d6..64fd9b165ea6af305ab3ec604fd997339de3d764 100644
--- a/lib/pkgconfig/coreblas.pc.in
+++ b/lib/pkgconfig/coreblas.pc.in
@@ -1,7 +1,7 @@
 prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
 libdir=${exec_prefix}/lib
-includedir=${exec_prefix}/include/chameleon/coreblas/include
+includedir=${exec_prefix}/include
 
 Name: coreblas
 Description: Interface to CBLAS/LAPACKE routines + some other auxiliary routines
diff --git a/lib/pkgconfig/cudablas.pc.in b/lib/pkgconfig/cudablas.pc.in
index db3f0f14c51c65d3ab245d2cc5371f412646311d..b0b94291c427be267e102b37703b661721caf912 100644
--- a/lib/pkgconfig/cudablas.pc.in
+++ b/lib/pkgconfig/cudablas.pc.in
@@ -1,7 +1,7 @@
 prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
 libdir=${exec_prefix}/lib
-includedir=${exec_prefix}/include/chameleon/cudablas/include
+includedir=${exec_prefix}/include
 
 Name: cudablas
 Description: Interface to cuBLAS/MAGMA routines + some other auxiliary routines
diff --git a/runtime/parsec/CMakeLists.txt b/runtime/parsec/CMakeLists.txt
index 41ee03942296bcdd9d40483b3aa3efb809c5a6b7..714235ae976c1b3c1fd94635ae7e80a51cf5bfd7 100644
--- a/runtime/parsec/CMakeLists.txt
+++ b/runtime/parsec/CMakeLists.txt
@@ -3,8 +3,8 @@
 # @copyright (c) 2009-2015 The University of Tennessee and The University
 #                          of Tennessee Research Foundation.
 #                          All rights reserved.
-# @copyright (c) 2012-2015 Inria. All rights reserved.
-# @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+# @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+#                          Univ. Bordeaux. All rights reserved.
 #
 ###
 #
@@ -26,9 +26,11 @@
 #  @date 13-07-2012
 #
 ###
-
 cmake_minimum_required(VERSION 2.8)
 
+include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include )
+include_directories( ${CMAKE_CURRENT_BINARY_DIR}/include )
+
 # Generate headers for all possible precisions
 # --------------------------------------------
 set(RUNTIME_HDRS_GENERATED "")
@@ -42,47 +44,61 @@ set(RUNTIME_HDRS_GENERATED "")
 # Define the list of headers
 # --------------------------
 set(RUNTIME_HDRS
-    include/morse_parsec.h
-    ${RUNTIME_HDRS_GENERATED}
-    )
+  include/chameleon_parsec.h
+  )
+
+# Add generated headers
+# ---------------------
+foreach( hdr_file ${RUNTIME_HDRS_GENERATED} )
+  list(APPEND RUNTIME_HDRS ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
+endforeach()
 
 # Force generation of headers
 # ---------------------------
-add_custom_target(runtime_parsec_include ALL SOURCES ${RUNTIME_HDRS})
+add_custom_target(
+  runtime_parsec_include
+  ALL SOURCES ${RUNTIME_HDRS})
 
-# Generate the morse common for all possible precisions
-# -----------------------------------------------------
+# Installation
+# ------------
+install(
+  FILES ${RUNTIME_HDRS}
+  DESTINATION include/runtime/parsec )
+
+# Generate the Chameleon common for all possible precisions
+# ---------------------------------------------------------
 set(RUNTIME_COMMON_GENERATED "")
 set(ZSRC
-    control/runtime_zprofiling.c
-    control/runtime_zlocality.c
-    )
+  control/runtime_zprofiling.c
+  control/runtime_zlocality.c
+  )
 
-precisions_rules_py(RUNTIME_COMMON_GENERATED "${ZSRC}"
-                    PRECISIONS "${CHAMELEON_PRECISION}"
-                    TARGETDIR "control")
+precisions_rules_py(
+  RUNTIME_COMMON_GENERATED "${ZSRC}"
+  PRECISIONS "${CHAMELEON_PRECISION}"
+  TARGETDIR "control")
 
 set(RUNTIME_COMMON
-    control/runtime_async.c
-    control/runtime_context.c
-    control/runtime_control.c
-    control/runtime_descriptor.c
-    control/runtime_options.c
-    control/runtime_profiling.c
-    codelets/codelet_dataflush.c
-    ${RUNTIME_COMMON_GENERATED}
-    )
-
-# Generate the morse sources for all possible precisions
-# ------------------------------------------------------
+  control/runtime_async.c
+  control/runtime_context.c
+  control/runtime_control.c
+  control/runtime_descriptor.c
+  control/runtime_options.c
+  control/runtime_profiling.c
+  codelets/codelet_dataflush.c
+  ${RUNTIME_COMMON_GENERATED}
+  )
+
+# Generate the Chameleon sources for all possible precisions
+# ----------------------------------------------------------
 set(RUNTIME_SRCS_GENERATED "")
 set(ZSRC
-    ${CODELETS_ZSRC}
-    )
+  ${CODELETS_ZSRC}
+  )
 
 precisions_rules_py(RUNTIME_SRCS_GENERATED "${ZSRC}"
-                    PRECISIONS "${CHAMELEON_PRECISION}"
-                    TARGETDIR "codelets")
+  PRECISIONS "${CHAMELEON_PRECISION}"
+  TARGETDIR "codelets")
 
 set(RUNTIME_SRCS
   ${RUNTIME_COMMON}
@@ -95,26 +111,35 @@ add_library(chameleon_parsec ${RUNTIME_SRCS})
 set_property(TARGET chameleon_parsec PROPERTY LINKER_LANGUAGE Fortran)
 set_property(TARGET chameleon_parsec PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 
-target_link_libraries(chameleon_parsec coreblas ${PARSEC_LIBRARIES_DEP})
-if(CHAMELEON_USE_CUDA)
-  target_link_libraries(chameleon_parsec cudablas)
-endif(CHAMELEON_USE_CUDA)
+target_link_libraries(chameleon_parsec
+  ${PARSEC_LIBRARIES_DEP})
+if (NOT CHAMELEON_SIMULATION)
+  target_link_libraries(chameleon_parsec
+    coreblas)
+  if(CHAMELEON_USE_CUDA)
+    target_link_libraries(chameleon_parsec
+      cudablas)
+  endif(CHAMELEON_USE_CUDA)
+endif(NOT CHAMELEON_SIMULATION)
 
 add_dependencies(chameleon_parsec
   chameleon_include
-  coreblas_include
   control_include
   runtime_parsec_include
 )
 
-if (CHAMELEON_USE_CUDA AND NOT CHAMELEON_SIMULATION)
+if (NOT CHAMELEON_SIMULATION)
+  add_dependencies(chameleon_parsec coreblas_include)
+  if (CHAMELEON_USE_CUDA)
     add_dependencies(chameleon_parsec cudablas_include)
+  endif()
 endif()
 
 # installation
 # ------------
 install(TARGETS chameleon_parsec
-        DESTINATION lib)
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib)
 
 ###
 ### END CMakeLists.txt
diff --git a/runtime/parsec/codelets/codelet_dataflush.c b/runtime/parsec/codelets/codelet_dataflush.c
index 0a01e0cd92b44854453e83b8c2a08501da32892e..606f8dc7d5b194d1565785cfb8913af1055193dd 100644
--- a/runtime/parsec/codelets/codelet_dataflush.c
+++ b/runtime/parsec/codelets/codelet_dataflush.c
@@ -19,8 +19,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/chameleon_tasks.h"
 
 void MORSE_TASK_dataflush(const MORSE_option_t *options,
                           const MORSE_desc_t *A, int Am, int An)
diff --git a/runtime/parsec/codelets/codelet_zasum.c b/runtime/parsec/codelets/codelet_zasum.c
index 401bede893f37596e69b2d4ef8e6941fbe7ad256..61343c8155daad053a38c53dda2939076f7b1af0 100644
--- a/runtime/parsec/codelets/codelet_zasum.c
+++ b/runtime/parsec/codelets/codelet_zasum.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_dzasum_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_zaxpy.c b/runtime/parsec/codelets/codelet_zaxpy.c
index ef3e8983ffc8a8af5b0016c517cda621e9849c95..d43182e96655bdde8a697cfdd4a8be68d49fb67f 100644
--- a/runtime/parsec/codelets/codelet_zaxpy.c
+++ b/runtime/parsec/codelets/codelet_zaxpy.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zaxpy_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zbuild.c b/runtime/parsec/codelets/codelet_zbuild.c
index 0adbbe29c0f30bbdc80c923f3c08ef404bc82ded..f3bcd647225315843bcc46a5e5ff3567dc162aee 100644
--- a/runtime/parsec/codelets/codelet_zbuild.c
+++ b/runtime/parsec/codelets/codelet_zbuild.c
@@ -22,7 +22,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static inline int
 CORE_zbuild_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_zgeadd.c b/runtime/parsec/codelets/codelet_zgeadd.c
index 3f3fcbad85de9d5fcc37d85ce7b5d8662f7a1350..a7122d5b18642023c79c53a085888c8a9aa31bc0 100644
--- a/runtime/parsec/codelets/codelet_zgeadd.c
+++ b/runtime/parsec/codelets/codelet_zgeadd.c
@@ -25,7 +25,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zgeadd_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zgelqt.c b/runtime/parsec/codelets/codelet_zgelqt.c
index eebd02cc0b6c1fd0173ab5e86a5644b575ab8c36..7185c34ac04af8e4e6be3648d7b8bbdf31825418 100644
--- a/runtime/parsec/codelets/codelet_zgelqt.c
+++ b/runtime/parsec/codelets/codelet_zgelqt.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zgemm.c b/runtime/parsec/codelets/codelet_zgemm.c
index 5d100cf5d1753f14c92cca2ac9b2a3de594bbbdb..3adbc0a34de1edc9fecc49e5b236b5077cd76326 100644
--- a/runtime/parsec/codelets/codelet_zgemm.c
+++ b/runtime/parsec/codelets/codelet_zgemm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zgeqrt.c b/runtime/parsec/codelets/codelet_zgeqrt.c
index f9d9b55882fbbef50efb7cb49e0ef3756835be16..0edbf9f04f15067d1cf13b17f123622db955ebd8 100644
--- a/runtime/parsec/codelets/codelet_zgeqrt.c
+++ b/runtime/parsec/codelets/codelet_zgeqrt.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zgessm.c b/runtime/parsec/codelets/codelet_zgessm.c
index d06acae872c5f9b5daad13dc0c01842fc16e9bd7..27ffdab2670133e10faefb9bfeb79ace8118fa7b 100644
--- a/runtime/parsec/codelets/codelet_zgessm.c
+++ b/runtime/parsec/codelets/codelet_zgessm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zgessq.c b/runtime/parsec/codelets/codelet_zgessq.c
index 7f5784c0fac7829286f516c99c12234591a81979..17ad5b091de0dbe27e057ff83c98831e30b1cbaa 100644
--- a/runtime/parsec/codelets/codelet_zgessq.c
+++ b/runtime/parsec/codelets/codelet_zgessq.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zgessq_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zgetrf.c b/runtime/parsec/codelets/codelet_zgetrf.c
index c5a5d20289f6fa84fbd61f5bb3bbfae2b14b7f9d..cbcc82c1e1fe66d4e372ae05ae4e1497363f24af 100644
--- a/runtime/parsec/codelets/codelet_zgetrf.c
+++ b/runtime/parsec/codelets/codelet_zgetrf.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zgetrf_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
index 775fbc0ab5ffbe829ec46eb28415ec409a418b11..0782304da984bfb78baf0ea83ac94beba550f7b3 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zgetrf_nopiv.c b/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
index 3b6b7ddc763109865759e9b14a84a28c0993796e..e16a90c3d1d682d95e45d5c2500fddfb9e39002e 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zhe2ge.c b/runtime/parsec/codelets/codelet_zhe2ge.c
index 8e16a10e408d0df9de309b4980497461e5e67465..3dae0955a3bad83ce623fa0189c1e4e3a1b0f4ea 100644
--- a/runtime/parsec/codelets/codelet_zhe2ge.c
+++ b/runtime/parsec/codelets/codelet_zhe2ge.c
@@ -20,7 +20,9 @@
  *
  **/
 
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /**
  *
diff --git a/runtime/parsec/codelets/codelet_zhemm.c b/runtime/parsec/codelets/codelet_zhemm.c
index 628849093029ab9de7d28bb71951663c1eca9403..6f0dfa920402c7a4ede74426f45ee9542ace30e9 100644
--- a/runtime/parsec/codelets/codelet_zhemm.c
+++ b/runtime/parsec/codelets/codelet_zhemm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zher2k.c b/runtime/parsec/codelets/codelet_zher2k.c
index ffef4285dd3ead8cd9b33628c1bc80bc265896b9..ef88ccd1f351d985f46b9d021e00c1160fe28a01 100644
--- a/runtime/parsec/codelets/codelet_zher2k.c
+++ b/runtime/parsec/codelets/codelet_zher2k.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zherfb.c b/runtime/parsec/codelets/codelet_zherfb.c
index 4071608ad805f95937cd86f8ddc33f3994331741..af42a6fd7571175d352311beedc862ba175eddc6 100644
--- a/runtime/parsec/codelets/codelet_zherfb.c
+++ b/runtime/parsec/codelets/codelet_zherfb.c
@@ -22,7 +22,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static inline int
 CORE_zherfb_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_zherk.c b/runtime/parsec/codelets/codelet_zherk.c
index e97808c90ed3bc542553666f4fb5809c43364752..6acc7808bd9f53aef6ea04d52cb158e1e0d7aa90 100644
--- a/runtime/parsec/codelets/codelet_zherk.c
+++ b/runtime/parsec/codelets/codelet_zherk.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zhessq.c b/runtime/parsec/codelets/codelet_zhessq.c
index 6e39d809908c2a2c4cfafa474afefef3715e16e0..31626fac46a922d1b17945890f6dece57d73f460 100644
--- a/runtime/parsec/codelets/codelet_zhessq.c
+++ b/runtime/parsec/codelets/codelet_zhessq.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zhessq_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zlacpy.c b/runtime/parsec/codelets/codelet_zlacpy.c
index 7f287535b355ec862e6da1e1f9afb4b6ff651d0b..3622c6ce7e5fb6fa9409f57755adfc994de3234d 100644
--- a/runtime/parsec/codelets/codelet_zlacpy.c
+++ b/runtime/parsec/codelets/codelet_zlacpy.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zlag2c.c b/runtime/parsec/codelets/codelet_zlag2c.c
index 7b5c30af362dbd10869e20fca08c9761b5d1b18a..c5d5f8337d5a8babb41cbe9508c3a08253737945 100644
--- a/runtime/parsec/codelets/codelet_zlag2c.c
+++ b/runtime/parsec/codelets/codelet_zlag2c.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zlange.c b/runtime/parsec/codelets/codelet_zlange.c
index 5d1bd5dd09718f3c87663175e3473fb550b2de03..9b7c64d035f462bcc576304b1e62b8e633d83399 100644
--- a/runtime/parsec/codelets/codelet_zlange.c
+++ b/runtime/parsec/codelets/codelet_zlange.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zlange_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zlanhe.c b/runtime/parsec/codelets/codelet_zlanhe.c
index fc50a99381508c6e3960d729e90543c619c672ce..ddd30b0e5ddc3614f4e2b54f1629db10754cb454 100644
--- a/runtime/parsec/codelets/codelet_zlanhe.c
+++ b/runtime/parsec/codelets/codelet_zlanhe.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zlanhe_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zlansy.c b/runtime/parsec/codelets/codelet_zlansy.c
index 62cf558513eebb33d6f222a3be6c5bc9689ef3cd..44a685cb1bed310a1f92e20bf6165fb1a2944990 100644
--- a/runtime/parsec/codelets/codelet_zlansy.c
+++ b/runtime/parsec/codelets/codelet_zlansy.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zlansy_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zlantr.c b/runtime/parsec/codelets/codelet_zlantr.c
index ed0cb32169f71826d1ce0036ead75f3e8b798e2a..fbff2acfd990089c420b7a015ff15b692aabd20e 100644
--- a/runtime/parsec/codelets/codelet_zlantr.c
+++ b/runtime/parsec/codelets/codelet_zlantr.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zlantr_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zlascal.c b/runtime/parsec/codelets/codelet_zlascal.c
index eb373c70d90744e16dc6c35876386b449718f05e..f82b08c7e757104709c252d8e036db85c6205803 100644
--- a/runtime/parsec/codelets/codelet_zlascal.c
+++ b/runtime/parsec/codelets/codelet_zlascal.c
@@ -29,7 +29,9 @@
  *
  **/
 
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zlaset.c b/runtime/parsec/codelets/codelet_zlaset.c
index 8f81ee9a30ac3adbaeb08d864d88e6aba3182992..c6d182fd627a092dbfcad13d1d54a451188d8264 100644
--- a/runtime/parsec/codelets/codelet_zlaset.c
+++ b/runtime/parsec/codelets/codelet_zlaset.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /**
  *
diff --git a/runtime/parsec/codelets/codelet_zlaset2.c b/runtime/parsec/codelets/codelet_zlaset2.c
index 00986ce77734d5bd0d91c05853635320fa5b6afb..5c1a7bc4b4b7a59efad913d08268414e1f92dce1 100644
--- a/runtime/parsec/codelets/codelet_zlaset2.c
+++ b/runtime/parsec/codelets/codelet_zlaset2.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /**
  *
diff --git a/runtime/parsec/codelets/codelet_zlatro.c b/runtime/parsec/codelets/codelet_zlatro.c
index 290b8be17b37643be6c18e7c3debb5a725bde0c8..40955c79670181d8e365a6f07255bfb80a605904 100644
--- a/runtime/parsec/codelets/codelet_zlatro.c
+++ b/runtime/parsec/codelets/codelet_zlatro.c
@@ -21,7 +21,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static inline int
 CORE_zlatro_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_zlauum.c b/runtime/parsec/codelets/codelet_zlauum.c
index d11bd483fe9c91d97a38f6fa0b1857d032d0ecc8..286d01d0af287e5aa1ef5e3f2d0f2825c50525f7 100644
--- a/runtime/parsec/codelets/codelet_zlauum.c
+++ b/runtime/parsec/codelets/codelet_zlauum.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zpamm.c b/runtime/parsec/codelets/codelet_zpamm.c
index f8f86af48ae1dfeeb4f23667a2d03e5057e49c51..b5f4cda49606035c703b443557e73c4537a55563 100644
--- a/runtime/parsec/codelets/codelet_zpamm.c
+++ b/runtime/parsec/codelets/codelet_zpamm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zplghe.c b/runtime/parsec/codelets/codelet_zplghe.c
index 00bc531a33f60f4d199a9c6c196666a08b0d1845..b14fdd87da7aa5acd01509f48ee63aaabdf78b6b 100644
--- a/runtime/parsec/codelets/codelet_zplghe.c
+++ b/runtime/parsec/codelets/codelet_zplghe.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zplghe_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zplgsy.c b/runtime/parsec/codelets/codelet_zplgsy.c
index fa4d61fc61fbf57f7e23492f3d79a4857db51c54..fecf2c4641abea4f71ed30bc50c715dfd1a6a34d 100644
--- a/runtime/parsec/codelets/codelet_zplgsy.c
+++ b/runtime/parsec/codelets/codelet_zplgsy.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zplgsy_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zplrnt.c b/runtime/parsec/codelets/codelet_zplrnt.c
index 52cf2efb8999f9663dfd60d62dd532bd14414160..abd11e4e34a6a86aacb3894e82a83944dc1cbf02 100644
--- a/runtime/parsec/codelets/codelet_zplrnt.c
+++ b/runtime/parsec/codelets/codelet_zplrnt.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zplrnt_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zplssq.c b/runtime/parsec/codelets/codelet_zplssq.c
index 935bb1528bce87a3d5cd14e5969966e869814b54..a68abc47d5d1881b4dce8a8e90dee964e1d67265 100644
--- a/runtime/parsec/codelets/codelet_zplssq.c
+++ b/runtime/parsec/codelets/codelet_zplssq.c
@@ -21,7 +21,9 @@
  *
  **/
 #include <math.h>
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /*****************************************************************************
  *
diff --git a/runtime/parsec/codelets/codelet_zpotrf.c b/runtime/parsec/codelets/codelet_zpotrf.c
index bd3f02642dc1f0127664dbff167c081a8be2da2f..1e1976c1eec20ab278a857d3eb0a80e590d6682e 100644
--- a/runtime/parsec/codelets/codelet_zpotrf.c
+++ b/runtime/parsec/codelets/codelet_zpotrf.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /***************************************************************************//**
  *
diff --git a/runtime/parsec/codelets/codelet_zssssm.c b/runtime/parsec/codelets/codelet_zssssm.c
index 0e44386e2b30e44c073b37a0288b9ca9ce983b95..86c5543f0d0bc06f7bb392e51b4b15f62b5226d6 100644
--- a/runtime/parsec/codelets/codelet_zssssm.c
+++ b/runtime/parsec/codelets/codelet_zssssm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zssssm_parsec(dague_execution_unit_t *context, dague_execution_context_t * this_task)
diff --git a/runtime/parsec/codelets/codelet_zsymm.c b/runtime/parsec/codelets/codelet_zsymm.c
index 63eeb66253984c7e5b0788998039d396d49701e6..f8a8383f01e6225aa6ca79870316e3b375b149d7 100644
--- a/runtime/parsec/codelets/codelet_zsymm.c
+++ b/runtime/parsec/codelets/codelet_zsymm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zsymm_parsec(dague_execution_unit_t *context, dague_execution_context_t * this_task)
diff --git a/runtime/parsec/codelets/codelet_zsyr2k.c b/runtime/parsec/codelets/codelet_zsyr2k.c
index 72fdbb1fc889f793d06006dbce09a85150efb55f..160ff5e7d4c933cc6796c91fc3dd983c4b00d37a 100644
--- a/runtime/parsec/codelets/codelet_zsyr2k.c
+++ b/runtime/parsec/codelets/codelet_zsyr2k.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zsyr2k_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zsyrk.c b/runtime/parsec/codelets/codelet_zsyrk.c
index 510e096f8d139ba883aa8dbce34e551084e4545c..82baa3b13a3d0a18ea1e4421830b784b9838913e 100644
--- a/runtime/parsec/codelets/codelet_zsyrk.c
+++ b/runtime/parsec/codelets/codelet_zsyrk.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zsyrk_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zsyssq.c b/runtime/parsec/codelets/codelet_zsyssq.c
index 5db5be616979cda7e72b2eee1f054fd0fb12e85f..307268caa0122c1a875c8301bfb5a467e9a3e647 100644
--- a/runtime/parsec/codelets/codelet_zsyssq.c
+++ b/runtime/parsec/codelets/codelet_zsyssq.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zsyssq_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zsytrf_nopiv.c b/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
index 1c70a7c1f433fcdd237e0fdc42e337082479c620..08c8894aea87dc82182d3abb7b75a10725e3f4c2 100644
--- a/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zsytrf_nopiv_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztile_zero.c b/runtime/parsec/codelets/codelet_ztile_zero.c
index 366777c23cfc3e7abce17b7b2dc886672f76422e..5bb42168cd9a35abc2e095d6864939b8e6f7b994 100644
--- a/runtime/parsec/codelets/codelet_ztile_zero.c
+++ b/runtime/parsec/codelets/codelet_ztile_zero.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztile_zero_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztpmqrt.c b/runtime/parsec/codelets/codelet_ztpmqrt.c
index 612e9d54a8de58618269ad065f3416358513734e..4b9c869ba68fb862b9b36ab42bc44c55cb5cba57 100644
--- a/runtime/parsec/codelets/codelet_ztpmqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpmqrt.c
@@ -22,7 +22,9 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztpmqrt_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_ztpqrt.c b/runtime/parsec/codelets/codelet_ztpqrt.c
index 6b8a3fe2d2292570b0ca560672ff3e90ab94c055..e866833544f6af2acf022fb1fc9860093cdf773e 100644
--- a/runtime/parsec/codelets/codelet_ztpqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpqrt.c
@@ -22,7 +22,9 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztpqrt_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_ztradd.c b/runtime/parsec/codelets/codelet_ztradd.c
index 6cc12eaa15331e989aba5d952f6160997d64beff..7490dfbf94eceaaeaf5c8fe48e24988051aa6cf7 100644
--- a/runtime/parsec/codelets/codelet_ztradd.c
+++ b/runtime/parsec/codelets/codelet_ztradd.c
@@ -24,7 +24,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztradd_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztrasm.c b/runtime/parsec/codelets/codelet_ztrasm.c
index 91646d1df81ba781d0e23fe496ec3304811e97a1..66327f9710d034850aabc3eb3be6006d1a84975e 100644
--- a/runtime/parsec/codelets/codelet_ztrasm.c
+++ b/runtime/parsec/codelets/codelet_ztrasm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztrasm_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztrmm.c b/runtime/parsec/codelets/codelet_ztrmm.c
index 8b67404ab5ae582d7dca44fcad976ccc33a52188..baae850c13adbecb11f06db9308647962ec9df04 100644
--- a/runtime/parsec/codelets/codelet_ztrmm.c
+++ b/runtime/parsec/codelets/codelet_ztrmm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztrmm_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztrsm.c b/runtime/parsec/codelets/codelet_ztrsm.c
index aadddb98c052b92b48f7b879b5b93d94de8248b9..b22d0184e9c213dc3d7c8e6e3a88b13cb499f07d 100644
--- a/runtime/parsec/codelets/codelet_ztrsm.c
+++ b/runtime/parsec/codelets/codelet_ztrsm.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztrsm_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztrssq.c b/runtime/parsec/codelets/codelet_ztrssq.c
index 0dd120420b6929c3a106b7ad7418d04096dd5d82..5ec51a99de4e8d298e82f76a5fddede5821d6673 100644
--- a/runtime/parsec/codelets/codelet_ztrssq.c
+++ b/runtime/parsec/codelets/codelet_ztrssq.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztrssq_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztrtri.c b/runtime/parsec/codelets/codelet_ztrtri.c
index d296e2105f110e0ab0c423ad1010f1a5aef4df44..29aeb28f5ff1bed145d4d678fcd4b09cf576a2af 100644
--- a/runtime/parsec/codelets/codelet_ztrtri.c
+++ b/runtime/parsec/codelets/codelet_ztrtri.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztrtri_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztslqt.c b/runtime/parsec/codelets/codelet_ztslqt.c
index bebbb862feea1ef62a3fcc6a7edb64c8bd8e87d1..8f01e5ca6c8f6268798e1abc059905bf4142ae70 100644
--- a/runtime/parsec/codelets/codelet_ztslqt.c
+++ b/runtime/parsec/codelets/codelet_ztslqt.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztslqt_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztsmlq.c b/runtime/parsec/codelets/codelet_ztsmlq.c
index eaae120c5608975757f6a67cf51f9d9774cc79c4..48e2488155200d0d83b07a945b51bc70690a748e 100644
--- a/runtime/parsec/codelets/codelet_ztsmlq.c
+++ b/runtime/parsec/codelets/codelet_ztsmlq.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztsmlq_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c b/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
index 5ec643a18ed0ad4bb8af68967e12f70f86cf7147..022a827d35cb622534fb4e020aeb52835c8c5a83 100644
--- a/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
+++ b/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
@@ -25,7 +25,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static inline int
 CORE_ztsmlq_hetra1_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_ztsmqr.c b/runtime/parsec/codelets/codelet_ztsmqr.c
index 7369c2002e1d0f9e699b6817348d32ab825ed061..93946fbc320b93a9153db6eaff7228fb5671094b 100644
--- a/runtime/parsec/codelets/codelet_ztsmqr.c
+++ b/runtime/parsec/codelets/codelet_ztsmqr.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztsmqr_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c b/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
index 72045d8f101e26216933f879b6ad3f75c896c29a..3a300a38b2e553fca68f1314317184785270c390 100644
--- a/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
+++ b/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
@@ -25,7 +25,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static inline int
 CORE_ztsmqr_hetra1_parsec(dague_execution_unit_t    *context,
diff --git a/runtime/parsec/codelets/codelet_ztsqrt.c b/runtime/parsec/codelets/codelet_ztsqrt.c
index 22a01de1f13053e3a22a3ebde028d6f74c27806b..8514230a620b72a43658f4546f77cea0d1a2b80e 100644
--- a/runtime/parsec/codelets/codelet_ztsqrt.c
+++ b/runtime/parsec/codelets/codelet_ztsqrt.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztsqrt_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_ztstrf.c b/runtime/parsec/codelets/codelet_ztstrf.c
index fccfd039759169c5d4da3c4c10d7dcb22de014a1..bb13778e756a759c9942bc605122c4833209866d 100644
--- a/runtime/parsec/codelets/codelet_ztstrf.c
+++ b/runtime/parsec/codelets/codelet_ztstrf.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_ztstrf_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zttlqt.c b/runtime/parsec/codelets/codelet_zttlqt.c
index cbd733dedbf97b84fa91bb863e4aaa77bfe09bd4..5123cb2193b1e843b1f0318c53aa16fa3b64ce36 100644
--- a/runtime/parsec/codelets/codelet_zttlqt.c
+++ b/runtime/parsec/codelets/codelet_zttlqt.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zttlqt_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zttmlq.c b/runtime/parsec/codelets/codelet_zttmlq.c
index a12ed573be8703a0c8e6d161ee97e95113492235..3dba39bb715e3a12fa3ef88041eea0a1060b38a2 100644
--- a/runtime/parsec/codelets/codelet_zttmlq.c
+++ b/runtime/parsec/codelets/codelet_zttmlq.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zttmlq_parsec(dague_execution_unit_t *context, dague_execution_context_t * this_task)
diff --git a/runtime/parsec/codelets/codelet_zttmqr.c b/runtime/parsec/codelets/codelet_zttmqr.c
index 9d66160ef9dc74bb9c2bcce4c949d2c44af14a05..b2e2cf45e0f4bd34d9d5e141c73d67a17678a94e 100644
--- a/runtime/parsec/codelets/codelet_zttmqr.c
+++ b/runtime/parsec/codelets/codelet_zttmqr.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zttmqr_parsec(dague_execution_unit_t *context, dague_execution_context_t * this_task)
diff --git a/runtime/parsec/codelets/codelet_zttqrt.c b/runtime/parsec/codelets/codelet_zttqrt.c
index c6a70698289ba35cb05ff3ebf8911ecb1eff9255..a2cbf8749852766fc5ab3138266172d88b82097b 100644
--- a/runtime/parsec/codelets/codelet_zttqrt.c
+++ b/runtime/parsec/codelets/codelet_zttqrt.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zttqrt_parsec(dague_execution_unit_t *context, dague_execution_context_t * this_task)
diff --git a/runtime/parsec/codelets/codelet_zunmlq.c b/runtime/parsec/codelets/codelet_zunmlq.c
index 8a9142db89605d899476c30b41cbb842f5c3832a..b48855d2011771ca0b4e0d58efc3c96928888cf2 100644
--- a/runtime/parsec/codelets/codelet_zunmlq.c
+++ b/runtime/parsec/codelets/codelet_zunmlq.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zunmlq_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/codelets/codelet_zunmqr.c b/runtime/parsec/codelets/codelet_zunmqr.c
index c07e46c11c792b11b03a71e4427b6bbcd0341984..f0cbf7ce45370bdc4c619e62e786960688ad0ccf 100644
--- a/runtime/parsec/codelets/codelet_zunmqr.c
+++ b/runtime/parsec/codelets/codelet_zunmqr.c
@@ -20,7 +20,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static int
 CORE_zunmqr_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
diff --git a/runtime/parsec/control/runtime_async.c b/runtime/parsec/control/runtime_async.c
index d101ba7c1d61baee13917fc4f28055df460538f5..8941100d1a5ff3e99eb62207576fae05f6561761 100644
--- a/runtime/parsec/control/runtime_async.c
+++ b/runtime/parsec/control/runtime_async.c
@@ -8,7 +8,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
 
 /*******************************************************************************
  *  Create a sequence
diff --git a/runtime/parsec/control/runtime_context.c b/runtime/parsec/control/runtime_context.c
index aba1e227dca4880c786c977a31126ca600562703..dee863d4f76a8748c41288436f7fc2ecc3f25a56 100644
--- a/runtime/parsec/control/runtime_context.c
+++ b/runtime/parsec/control/runtime_context.c
@@ -8,7 +8,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
 
 /*******************************************************************************
  *  Create new context
diff --git a/runtime/parsec/control/runtime_control.c b/runtime/parsec/control/runtime_control.c
index 9e6c2a3b17e8947349e116b7924dbb756f50967b..14527d2857b25ed2c0f42d014c7d580a06ed7d51 100644
--- a/runtime/parsec/control/runtime_control.c
+++ b/runtime/parsec/control/runtime_control.c
@@ -9,7 +9,7 @@
  **/
 #include <stdio.h>
 #include <stdlib.h>
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
 
 /*******************************************************************************
  * Thread rank.
diff --git a/runtime/parsec/control/runtime_descriptor.c b/runtime/parsec/control/runtime_descriptor.c
index f0790d0d6b2a2246fc4a993a410439ea5737b901..10f107ef070cd7251cb7808ba5bf69f1fdae1824 100644
--- a/runtime/parsec/control/runtime_descriptor.c
+++ b/runtime/parsec/control/runtime_descriptor.c
@@ -8,7 +8,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
 #include <dague/data.h>
 
 void RUNTIME_user_tag_size(int user_tag_width, int user_tag_sep) {
diff --git a/runtime/parsec/control/runtime_options.c b/runtime/parsec/control/runtime_options.c
index b993dcea4a34325cac5a0948a89cb0acd45fc4ec..b9fd469a84262154b5dcfcc3cf65c6e218932de1 100644
--- a/runtime/parsec/control/runtime_options.c
+++ b/runtime/parsec/control/runtime_options.c
@@ -9,7 +9,7 @@
  **/
 #include <stdio.h>
 #include <stdlib.h>
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
 
 void RUNTIME_options_init( MORSE_option_t *options, MORSE_context_t *morse,
                            MORSE_sequence_t *sequence, MORSE_request_t *request )
diff --git a/runtime/parsec/control/runtime_profiling.c b/runtime/parsec/control/runtime_profiling.c
index 1062462ce8a79b7352efe7aa342890033b9c3d49..765621f2b77d32b1a9e66c6a4a2c79751ae90bba 100644
--- a/runtime/parsec/control/runtime_profiling.c
+++ b/runtime/parsec/control/runtime_profiling.c
@@ -7,7 +7,7 @@
  * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
 
 #if defined( _WIN32 ) || defined( _WIN64 )
 #include <windows.h>
diff --git a/runtime/parsec/control/runtime_zlocality.c b/runtime/parsec/control/runtime_zlocality.c
index b1056886018a157431c098011e795a5ea6561ccc..8dc21a47348d293d054edbcd7b9308ebe71e9b23 100644
--- a/runtime/parsec/control/runtime_zlocality.c
+++ b/runtime/parsec/control/runtime_zlocality.c
@@ -7,7 +7,7 @@
  * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
  *
  **/
-#include "runtime/PaRSEC/include/morse_parsec.h"
+#include "runtime/PaRSEC/include/chameleon_parsec.h"
 
 void RUNTIME_zlocality_allrestrict( uint32_t where )
 {
diff --git a/runtime/parsec/control/runtime_zprofiling.c b/runtime/parsec/control/runtime_zprofiling.c
index b9f052f0632eaf7e493cbe7cdcdd7f99657b080b..1bcf7d0dfd518848f2fe2df0f29737b1b447037a 100644
--- a/runtime/parsec/control/runtime_zprofiling.c
+++ b/runtime/parsec/control/runtime_zprofiling.c
@@ -7,7 +7,7 @@
  * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
  *
  **/
-#include "runtime/parsec/include/morse_parsec.h"
+#include "chameleon_parsec.h"
 
 void RUNTIME_zdisplay_allprofile()
 {
diff --git a/runtime/parsec/include/morse_parsec.h b/runtime/parsec/include/chameleon_parsec.h
similarity index 78%
rename from runtime/parsec/include/morse_parsec.h
rename to runtime/parsec/include/chameleon_parsec.h
index bdaaece06a48225263d564ce6cfdfac27b629254..0967a72878a88def884ba43dd7563f4b3da59eb4 100644
--- a/runtime/parsec/include/morse_parsec.h
+++ b/runtime/parsec/include/chameleon_parsec.h
@@ -3,16 +3,16 @@
  * @copyright (c) 2009-2015 The University of Tennessee and The University
  *                          of Tennessee Research Foundation.
  *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                          Univ. Bordeaux. All rights reserved.
  *
  **/
 
 #ifndef _MORSE_PARSEC_H_
 #define _MORSE_PARSEC_H_
 
-#include <dague.h>
-#include <dague/insert_function.h>
+#include <parsec.h>
+#include <parsec/insert_function.h>
 
 #include "control/common.h"
 
diff --git a/runtime/quark/CMakeLists.txt b/runtime/quark/CMakeLists.txt
index e1cff588501ba375e0b5491167bac6084adf6ce5..eeee4ac10fd6cf8cb6c9375f50d1f5c09c61c317 100644
--- a/runtime/quark/CMakeLists.txt
+++ b/runtime/quark/CMakeLists.txt
@@ -1,10 +1,10 @@
 ###
 #
-# @copyright (c) 2009-2014 The University of Tennessee and The University
+# @copyright (c) 2009-2015 The University of Tennessee and The University
 #                          of Tennessee Research Foundation.
 #                          All rights reserved.
-# @copyright (c) 2012-2016 Inria. All rights reserved.
-# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+# @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+#                          Univ. Bordeaux. All rights reserved.
 #
 ###
 #
@@ -26,72 +26,80 @@
 #  @date 13-07-2012
 #
 ###
-
 cmake_minimum_required(VERSION 2.8)
 
-# Generate the quark headers for all possible precisions
-# ------------------------------------------------------
-set(RUNTIME_HDRS_GENERATED "")
-set(ZHDR
-  include/quark_zblas.h
-  include/quark_zcblas.h
-)
+include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include )
+include_directories( ${CMAKE_CURRENT_BINARY_DIR}/include )
 
-precisions_rules_py(RUNTIME_HDRS_GENERATED "${ZHDR}"
-                    PRECISIONS "s;d;c;z;ds;zc"
-                    TARGETDIR  "include")
+# # Generate headers for all possible precisions
+# # --------------------------------------------
+# set(RUNTIME_HDRS_GENERATED "")
+# set(ZHDR
+# )
+#
+# precisions_rules_py(RUNTIME_HDRS_GENERATED "${ZHDR}"
+#   PRECISIONS "s;d;c;z;ds;zc"
+#   TARGETDIR  "include")
 
 # Define the list of headers
 # --------------------------
 set(RUNTIME_HDRS
-    include/morse_quark.h
-    include/quark_blas.h
-    include/core_blas_dag.h
-    ${RUNTIME_HDRS_GENERATED}
-    )
+  include/chameleon_quark.h
+  include/core_blas_dag.h
+  )
+
+# # Add generated headers
+# # ---------------------
+# foreach( hdr_file ${RUNTIME_HDRS_GENERATED} )
+#   list(APPEND RUNTIME_HDRS ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
+# endforeach()
 
 # Force generation of headers
 # ---------------------------
-add_custom_target(runtime_quark_include ALL SOURCES ${RUNTIME_HDRS})
+add_custom_target(
+  runtime_quark_include
+  ALL SOURCES ${RUNTIME_HDRS})
 
-# installation
+# Installation
 # ------------
-#install(FILES ${RUNTIME_HDRS}
-#        DESTINATION include)
+install(
+  FILES ${RUNTIME_HDRS}
+  DESTINATION include/runtime/quark )
 
-# Generate the morse common for all possible precisions
-# -----------------------------------------------------
+# Generate the Chameleon common for all possible precisions
+# ---------------------------------------------------------
 set(RUNTIME_COMMON_GENERATED "")
 set(ZSRC
-    control/runtime_zprofiling.c
-    control/runtime_zlocality.c
-    )
+  control/runtime_zprofiling.c
+  control/runtime_zlocality.c
+  )
 
-precisions_rules_py(RUNTIME_COMMON_GENERATED "${ZSRC}"
-                    PRECISIONS "${CHAMELEON_PRECISION}"
-                    TARGETDIR "control")
+precisions_rules_py(
+  RUNTIME_COMMON_GENERATED "${ZSRC}"
+  PRECISIONS "${CHAMELEON_PRECISION}"
+  TARGETDIR "control")
 
 set(RUNTIME_COMMON
-    control/runtime_async.c
-    control/runtime_context.c
-    control/runtime_control.c
-    control/runtime_descriptor.c
-    control/runtime_options.c
-    control/runtime_profiling.c
-    codelets/codelet_dataflush.c
-    ${RUNTIME_COMMON_GENERATED}
-    )
-
-# Generate the morse sources for all possible precisions
-# ------------------------------------------------------
+  control/runtime_async.c
+  control/runtime_context.c
+  control/runtime_control.c
+  control/runtime_descriptor.c
+  control/runtime_options.c
+  control/runtime_profiling.c
+  codelets/codelet_dataflush.c
+  ${RUNTIME_COMMON_GENERATED}
+  )
+
+# Generate the Chameleon sources for all possible precisions
+# ----------------------------------------------------------
 set(RUNTIME_SRCS_GENERATED "")
 set(ZSRC
-    ${CODELETS_ZSRC}
-    )
+  ${CODELETS_ZSRC}
+  )
 
 precisions_rules_py(RUNTIME_SRCS_GENERATED "${ZSRC}"
-                    PRECISIONS "${CHAMELEON_PRECISION}"
-                    TARGETDIR "codelets")
+  PRECISIONS "${CHAMELEON_PRECISION}"
+  TARGETDIR "codelets")
 
 set(RUNTIME_SRCS
   ${RUNTIME_COMMON}
@@ -111,7 +119,6 @@ endif(CHAMELEON_USE_CUDA)
 
 add_dependencies(chameleon_quark
   chameleon_include
-  coreblas_include
   control_include
   runtime_quark_include
 )
@@ -122,7 +129,7 @@ endif()
 # installation
 # ------------
 install(TARGETS chameleon_quark
-        DESTINATION lib)
+  DESTINATION lib)
 
 ###
 ### END CMakeLists.txt
diff --git a/runtime/quark/codelets/codelet_dataflush.c b/runtime/quark/codelets/codelet_dataflush.c
index 1334e8959aed3ce506bb835f52b17013a3b34153..300f335840c00cbf923f2c7b23ebbf2efeb0a8e4 100644
--- a/runtime/quark/codelets/codelet_dataflush.c
+++ b/runtime/quark/codelets/codelet_dataflush.c
@@ -24,7 +24,7 @@
  * @date 2014-02-05
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 void MORSE_TASK_dataflush(const MORSE_option_t *options,
                           const MORSE_desc_t *A, int Am, int An)
diff --git a/runtime/quark/codelets/codelet_zasum.c b/runtime/quark/codelets/codelet_zasum.c
index 4857e086e0b0a94ecd40e9a8bf5d57466b39c6ab..b1b5ecdd7c940bf4ff64a497f34ad0077102fd36 100644
--- a/runtime/quark/codelets/codelet_zasum.c
+++ b/runtime/quark/codelets/codelet_zasum.c
@@ -24,7 +24,23 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_dzasum_quark(Quark *quark)
+{
+    MORSE_enum storev;
+    MORSE_enum uplo;
+    int M;
+    int N;
+    MORSE_Complex64_t *A;
+    int lda;
+    double *work;
+
+    quark_unpack_args_7(quark, storev, uplo, M, N, A, lda, work);
+    CORE_dzasum(storev, uplo, M, N, A, lda, work);
+}
 
 void MORSE_TASK_dzasum(const MORSE_option_t *options,
                        MORSE_enum storev, MORSE_enum uplo, int M, int N,
@@ -43,18 +59,3 @@ void MORSE_TASK_dzasum(const MORSE_option_t *options,
         sizeof(double),                   RTBLKADDR(B, double, Bm, Bn), INOUT,
         0);
 }
-
-
-void CORE_dzasum_quark(Quark *quark)
-{
-    MORSE_enum storev;
-    MORSE_enum uplo;
-    int M;
-    int N;
-    MORSE_Complex64_t *A;
-    int lda;
-    double *work;
-
-    quark_unpack_args_7(quark, storev, uplo, M, N, A, lda, work);
-    CORE_dzasum(storev, uplo, M, N, A, lda, work);
-}
diff --git a/runtime/quark/codelets/codelet_zaxpy.c b/runtime/quark/codelets/codelet_zaxpy.c
index 875471e893bde9d5784a203c6816e947ee89a426..93f8ea8a00503226764dd943ab4e3c69e2fe675c 100644
--- a/runtime/quark/codelets/codelet_zaxpy.c
+++ b/runtime/quark/codelets/codelet_zaxpy.c
@@ -24,7 +24,22 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zaxpy_quark(Quark *quark)
+{
+    int M;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int incA;
+    MORSE_Complex64_t *B;
+    int incB;
+
+    quark_unpack_args_6(quark, M, alpha, A, incA, B, incB);
+    CORE_zaxpy(M, alpha, A, incA, B, incB);
+}
 
 void MORSE_TASK_zaxpy(const MORSE_option_t *options,
                       int M, MORSE_Complex64_t *alpha,
@@ -42,17 +57,3 @@ void MORSE_TASK_zaxpy(const MORSE_option_t *options,
         sizeof(int),                        &incB,      VALUE,
         0);
 }
-
-
-void CORE_zaxpy_quark(Quark *quark)
-{
-    int M;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int incA;
-    MORSE_Complex64_t *B;
-    int incB;
-
-    quark_unpack_args_6(quark, M, alpha, A, incA, B, incB);
-    CORE_zaxpy(M, alpha, A, incA, B, incB);
-}
diff --git a/runtime/quark/codelets/codelet_zbuild.c b/runtime/quark/codelets/codelet_zbuild.c
index 68f115ecf9af21ba47d73bcb20a9186558be3def..f7b53f264acd7a59538a32cca032490441e3d90b 100644
--- a/runtime/quark/codelets/codelet_zbuild.c
+++ b/runtime/quark/codelets/codelet_zbuild.c
@@ -29,9 +29,22 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
+void CORE_zbuild_quark(Quark *quark)
+{
+    MORSE_Complex64_t *A;
+    int lda;
+    void *user_data;
+    void (*user_build_callback)(int row_min, int row_max, int col_min, int col_max, void *buffer, int ld, void *user_data) ;
+    int row_min, row_max, col_min, col_max;
 
+    quark_unpack_args_8( quark, row_min, row_max, col_min, col_max, A, lda, user_data, user_build_callback);
+
+    user_build_callback(row_min, row_max, col_min, col_max, A, lda, user_data);
+}
 
 void MORSE_TASK_zbuild( const MORSE_option_t *options,
                         const MORSE_desc_t *A, int Am, int An, int lda,
@@ -46,28 +59,13 @@ void MORSE_TASK_zbuild( const MORSE_option_t *options,
     col_max = An == A->nt-1 ? A->n-1 : col_min+A->nb-1 ;
 
     QUARK_Insert_Task(opt->quark, CORE_zbuild_quark, (Quark_Task_Flags*)opt,
-        sizeof(int),                      &row_min,    VALUE,
-        sizeof(int),                      &row_max,    VALUE,
-        sizeof(int),                      &col_min,    VALUE,
-        sizeof(int),                      &col_max,    VALUE,
-        sizeof(MORSE_Complex64_t)*lda*A->nb, RTBLKADDR(A, MORSE_Complex64_t, Am, An),         OUTPUT,
-        sizeof(int),                      &lda,  VALUE,
-        sizeof(void*),                    &user_data,  VALUE,
-        sizeof(void*),                    &user_build_callback,   VALUE,
-        0);
-}
-
-
-void CORE_zbuild_quark(Quark *quark)
-{
-    MORSE_Complex64_t *A;
-    int lda;
-    void *user_data;
-    void (*user_build_callback)(int row_min, int row_max, int col_min, int col_max, void *buffer, int ld, void *user_data) ;
-    int row_min, row_max, col_min, col_max;
-
-    quark_unpack_args_8( quark, row_min, row_max, col_min, col_max, A, lda, user_data, user_build_callback);
-
-    user_build_callback(row_min, row_max, col_min, col_max, A, lda, user_data);
+                      sizeof(int),                      &row_min,    VALUE,
+                      sizeof(int),                      &row_max,    VALUE,
+                      sizeof(int),                      &col_min,    VALUE,
+                      sizeof(int),                      &col_max,    VALUE,
+                      sizeof(MORSE_Complex64_t)*lda*A->nb, RTBLKADDR(A, MORSE_Complex64_t, Am, An),         OUTPUT,
+                      sizeof(int),                      &lda,  VALUE,
+                      sizeof(void*),                    &user_data,  VALUE,
+                      sizeof(void*),                    &user_build_callback,   VALUE,
+                      0);
 }
-
diff --git a/runtime/quark/codelets/codelet_zgeadd.c b/runtime/quark/codelets/codelet_zgeadd.c
index 4fc1c22cf51d29cebf820a9b39442e753686dc5e..63c5c4c253145d73c9779b496d8737dc49af3e45 100644
--- a/runtime/quark/codelets/codelet_zgeadd.c
+++ b/runtime/quark/codelets/codelet_zgeadd.c
@@ -26,7 +26,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_zgeadd_quark(Quark *quark)
 {
diff --git a/runtime/quark/codelets/codelet_zgelqt.c b/runtime/quark/codelets/codelet_zgelqt.c
index a0cc3b1f88ceb70d2c13dea1bd613d1384a742c0..16919df2dd8b5e408dc3b93a5c9039a1d29c68b6 100644
--- a/runtime/quark/codelets/codelet_zgelqt.c
+++ b/runtime/quark/codelets/codelet_zgelqt.c
@@ -29,7 +29,25 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zgelqt_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *TAU;
+    MORSE_Complex64_t *WORK;
+
+    quark_unpack_args_9(quark, m, n, ib, A, lda, T, ldt, TAU, WORK);
+    CORE_zgelqt(m, n, ib, A, lda, T, ldt, TAU, WORK);
+}
 
 /**
  *
@@ -92,7 +110,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zgelqt(const MORSE_option_t *options,
                        int m, int n, int ib, int nb,
                        const MORSE_desc_t *A, int Am, int An, int lda,
@@ -112,20 +129,3 @@ void MORSE_TASK_zgelqt(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ib*nb,    NULL,          SCRATCH,
         0);
 }
-
-
-void CORE_zgelqt_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *TAU;
-    MORSE_Complex64_t *WORK;
-
-    quark_unpack_args_9(quark, m, n, ib, A, lda, T, ldt, TAU, WORK);
-    CORE_zgelqt(m, n, ib, A, lda, T, ldt, TAU, WORK);
-}
diff --git a/runtime/quark/codelets/codelet_zgemm.c b/runtime/quark/codelets/codelet_zgemm.c
index b83bee0aaf36bc5831ba01fbbacf18c30e340857..1b105d4fb9d723afdf47da684016f43d543db50d 100644
--- a/runtime/quark/codelets/codelet_zgemm.c
+++ b/runtime/quark/codelets/codelet_zgemm.c
@@ -28,41 +28,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
-
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
-
-void MORSE_TASK_zgemm(const MORSE_option_t *options,
-                      MORSE_enum transA, int transB,
-                      int m, int n, int k, int nb,
-                      MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                                                const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                      MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc)
-{
-    quark_option_t *opt = (quark_option_t*)(options->schedopt);
-    DAG_CORE_GEMM;
-    QUARK_Insert_Task(opt->quark, CORE_zgemm_quark, (Quark_Task_Flags*)opt,
-        sizeof(MORSE_enum),                &transA,    VALUE,
-        sizeof(MORSE_enum),                &transB,    VALUE,
-        sizeof(int),                        &m,         VALUE,
-        sizeof(int),                        &n,         VALUE,
-        sizeof(int),                        &k,         VALUE,
-        sizeof(MORSE_Complex64_t),         &alpha,     VALUE,
-        sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex64_t, Am, An),                 INPUT,
-        sizeof(int),                        &lda,       VALUE,
-        sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn),                 INPUT,
-        sizeof(int),                        &ldb,       VALUE,
-        sizeof(MORSE_Complex64_t),         &beta,      VALUE,
-        sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(C, MORSE_Complex64_t, Cm, Cn),                 INOUT,
-        sizeof(int),                        &ldc,       VALUE,
-        0);
-}
-
-
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_zgemm_quark(Quark *quark)
 {
@@ -82,16 +50,34 @@ void CORE_zgemm_quark(Quark *quark)
 
     quark_unpack_args_13(quark, transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
     CORE_zgemm(transA, transB,
-        m, n, k,
-        alpha, A, lda,
-        B, ldb,
-        beta, C, ldc);
+               m, n, k,
+               alpha, A, lda,
+               B, ldb,
+               beta, C, ldc);
 }
 
-
-
-
-
-
-
-
+void MORSE_TASK_zgemm(const MORSE_option_t *options,
+                      MORSE_enum transA, int transB,
+                      int m, int n, int k, int nb,
+                      MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
+                      const MORSE_desc_t *B, int Bm, int Bn, int ldb,
+                      MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc)
+{
+    quark_option_t *opt = (quark_option_t*)(options->schedopt);
+    DAG_CORE_GEMM;
+    QUARK_Insert_Task(opt->quark, CORE_zgemm_quark, (Quark_Task_Flags*)opt,
+                      sizeof(MORSE_enum),                &transA,    VALUE,
+                      sizeof(MORSE_enum),                &transB,    VALUE,
+                      sizeof(int),                        &m,         VALUE,
+                      sizeof(int),                        &n,         VALUE,
+                      sizeof(int),                        &k,         VALUE,
+                      sizeof(MORSE_Complex64_t),         &alpha,     VALUE,
+                      sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex64_t, Am, An),                 INPUT,
+                      sizeof(int),                        &lda,       VALUE,
+                      sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn),                 INPUT,
+                      sizeof(int),                        &ldb,       VALUE,
+                      sizeof(MORSE_Complex64_t),         &beta,      VALUE,
+                      sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(C, MORSE_Complex64_t, Cm, Cn),                 INOUT,
+                      sizeof(int),                        &ldc,       VALUE,
+                      0);
+}
diff --git a/runtime/quark/codelets/codelet_zgeqrt.c b/runtime/quark/codelets/codelet_zgeqrt.c
index d1906b28da022d7e311541ae8d25b8caf9b3ca8f..c2575a706be1898eb0c1a0c6ff6c1cb2d18821e8 100644
--- a/runtime/quark/codelets/codelet_zgeqrt.c
+++ b/runtime/quark/codelets/codelet_zgeqrt.c
@@ -28,8 +28,25 @@
  * @precisions normal z -> c d s
  *
  **/
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_zgeqrt_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *TAU;
+    MORSE_Complex64_t *WORK;
+
+    quark_unpack_args_9(quark, m, n, ib, A, lda, T, ldt, TAU, WORK);
+    CORE_zgeqrt(m, n, ib, A, lda, T, ldt, TAU, WORK);
+}
 
 /**
  *
@@ -93,7 +110,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zgeqrt(const MORSE_option_t *options,
                        int m, int n, int ib, int nb,
                        const MORSE_desc_t *A, int Am, int An, int lda,
@@ -113,20 +129,3 @@ void MORSE_TASK_zgeqrt(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ib*nb,    NULL,          SCRATCH,
         0);
 }
-
-
-void CORE_zgeqrt_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *TAU;
-    MORSE_Complex64_t *WORK;
-
-    quark_unpack_args_9(quark, m, n, ib, A, lda, T, ldt, TAU, WORK);
-    CORE_zgeqrt(m, n, ib, A, lda, T, ldt, TAU, WORK);
-}
diff --git a/runtime/quark/codelets/codelet_zgessm.c b/runtime/quark/codelets/codelet_zgessm.c
index 3278c19818bab1de70e8114d088df0fcb1a02a89..4cf62352a7352ce563e3dd73cef3fe208fc1233d 100644
--- a/runtime/quark/codelets/codelet_zgessm.c
+++ b/runtime/quark/codelets/codelet_zgessm.c
@@ -28,9 +28,28 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
+#include "coreblas/cblas.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_zgessm_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int k;
+    int ib;
+    int *IPIV;
+    MORSE_Complex64_t *L;
+    int ldl;
+    MORSE_Complex64_t *D;
+    int ldd;
+    MORSE_Complex64_t *A;
+    int lda;
+
+    quark_unpack_args_11(quark, m, n, k, ib, IPIV, L, ldl, D, ldd, A, lda);
+    CORE_zgessm(m, n, k, ib, IPIV, D, ldd, A, lda);
+}
 
 /***************************************************************************//**
  *
@@ -77,7 +96,6 @@
  *         \retval <0 if INFO = -k, the k-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zgessm(const MORSE_option_t *options,
                        int m, int n, int k, int ib, int nb,
                        int *IPIV,
@@ -101,22 +119,3 @@ void MORSE_TASK_zgessm(const MORSE_option_t *options,
         sizeof(int),                        &lda,   VALUE,
         0);
 }
-
-
-void CORE_zgessm_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int k;
-    int ib;
-    int *IPIV;
-    MORSE_Complex64_t *L;
-    int ldl;
-    MORSE_Complex64_t *D;
-    int ldd;
-    MORSE_Complex64_t *A;
-    int lda;
-
-    quark_unpack_args_11(quark, m, n, k, ib, IPIV, L, ldl, D, ldd, A, lda);
-    CORE_zgessm(m, n, k, ib, IPIV, D, ldd, A, lda);
-}
diff --git a/runtime/quark/codelets/codelet_zgessq.c b/runtime/quark/codelets/codelet_zgessq.c
index 546dad02a51104e5c630938ad9e39d16025450d7..6e3722dd9a7b70b509b9c9a840a7f3844b2d1ef8 100644
--- a/runtime/quark/codelets/codelet_zgessq.c
+++ b/runtime/quark/codelets/codelet_zgessq.c
@@ -24,23 +24,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
-
-void MORSE_TASK_zgessq( const MORSE_option_t *options,
-                        int m, int n,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn )
-{
-    quark_option_t *opt = (quark_option_t*)(options->schedopt);
-    QUARK_Insert_Task(opt->quark, CORE_zgessq_quark, (Quark_Task_Flags*)opt,
-        sizeof(int),                     &m,    VALUE,
-        sizeof(int),                     &n,    VALUE,
-        sizeof(MORSE_Complex64_t)*lda*n, RTBLKADDR(A, MORSE_Complex64_t, Am, An), INPUT,
-        sizeof(int),                     &lda,  VALUE,
-        sizeof(double)*2,                RTBLKADDR(SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn), INOUT,
-        0);
-}
-
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_zgessq_quark(Quark *quark)
 {
@@ -53,3 +39,18 @@ void CORE_zgessq_quark(Quark *quark)
     quark_unpack_args_5( quark, m, n, A, lda, SCALESUMSQ );
     CORE_zgessq( m, n, A, lda, &SCALESUMSQ[0], &SCALESUMSQ[1]);
 }
+
+void MORSE_TASK_zgessq( const MORSE_option_t *options,
+                        int m, int n,
+                        const MORSE_desc_t *A, int Am, int An, int lda,
+                        const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn )
+{
+    quark_option_t *opt = (quark_option_t*)(options->schedopt);
+    QUARK_Insert_Task(opt->quark, CORE_zgessq_quark, (Quark_Task_Flags*)opt,
+                      sizeof(int),                     &m,    VALUE,
+                      sizeof(int),                     &n,    VALUE,
+                      sizeof(MORSE_Complex64_t)*lda*n, RTBLKADDR(A, MORSE_Complex64_t, Am, An), INPUT,
+                      sizeof(int),                     &lda,  VALUE,
+                      sizeof(double)*2,                RTBLKADDR(SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn), INOUT,
+                      0);
+}
diff --git a/runtime/quark/codelets/codelet_zgetrf.c b/runtime/quark/codelets/codelet_zgetrf.c
index e9e62c4ce1c6a49bb2a7a6d3cd381be1d628ea8d..8ba5bc278d073b9287a9b8278eeb695815a00c63 100644
--- a/runtime/quark/codelets/codelet_zgetrf.c
+++ b/runtime/quark/codelets/codelet_zgetrf.c
@@ -27,7 +27,28 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zgetrf_quark(Quark *quark)
+{
+    int m;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    int *IPIV;
+    MORSE_sequence_t *sequence;
+    MORSE_request_t *request;
+    MORSE_bool check_info;
+    int iinfo;
+    int info;
+
+    quark_unpack_args_9(quark, m, n, A, lda, IPIV, sequence, request, check_info, iinfo);
+    CORE_zgetrf( m, n, A, lda, IPIV, &info );
+    if (info != MORSE_SUCCESS && check_info)
+        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
+}
 
 void MORSE_TASK_zgetrf(const MORSE_option_t *options,
                        int m, int n, int nb,
@@ -49,23 +70,3 @@ void MORSE_TASK_zgetrf(const MORSE_option_t *options,
         sizeof(int),                        &iinfo,         VALUE,
         0);
 }
-
-
-void CORE_zgetrf_quark(Quark *quark)
-{
-    int m;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    int *IPIV;
-    MORSE_sequence_t *sequence;
-    MORSE_request_t *request;
-    MORSE_bool check_info;
-    int iinfo;
-    int info;
-
-    quark_unpack_args_9(quark, m, n, A, lda, IPIV, sequence, request, check_info, iinfo);
-    CORE_zgetrf( m, n, A, lda, IPIV, &info );
-    if (info != MORSE_SUCCESS && check_info)
-        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
-}
diff --git a/runtime/quark/codelets/codelet_zgetrf_incpiv.c b/runtime/quark/codelets/codelet_zgetrf_incpiv.c
index d383dd2f5e0f66239cfdc6b4c298a688d79a8836..a87437b622518929dc509b317444e4acfc2118a7 100644
--- a/runtime/quark/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/quark/codelets/codelet_zgetrf_incpiv.c
@@ -28,8 +28,30 @@
  * @precisions normal z -> c d s
  *
  **/
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_zgetrf_incpiv_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A;
+    int lda;
+    int *IPIV;
+    MORSE_sequence_t *sequence;
+    MORSE_request_t *request;
+    MORSE_bool check_info;
+    int iinfo;
+
+    int info;
+
+    quark_unpack_args_10(quark, m, n, ib, A, lda, IPIV, sequence, request, check_info, iinfo);
+    CORE_zgetrf_incpiv(m, n, ib, A, lda, IPIV, &info);
+    if (info != MORSE_SUCCESS && check_info)
+        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
+}
 
 /***************************************************************************//**
  *
@@ -85,7 +107,6 @@
  *              to solve a system of equations.
  *
  ******************************************************************************/
-
 void MORSE_TASK_zgetrf_incpiv(const MORSE_option_t *options,
                               int m, int n, int ib, int nb,
                               const MORSE_desc_t *A, int Am, int An, int lda,
@@ -110,25 +131,3 @@ void MORSE_TASK_zgetrf_incpiv(const MORSE_option_t *options,
 
     (void)L; (void)Lm; (void)Ln; (void)ldl;
 }
-
-
-void CORE_zgetrf_incpiv_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A;
-    int lda;
-    int *IPIV;
-    MORSE_sequence_t *sequence;
-    MORSE_request_t *request;
-    MORSE_bool check_info;
-    int iinfo;
-
-    int info;
-
-    quark_unpack_args_10(quark, m, n, ib, A, lda, IPIV, sequence, request, check_info, iinfo);
-    CORE_zgetrf_incpiv(m, n, ib, A, lda, IPIV, &info);
-    if (info != MORSE_SUCCESS && check_info)
-        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
-}
diff --git a/runtime/quark/codelets/codelet_zgetrf_nopiv.c b/runtime/quark/codelets/codelet_zgetrf_nopiv.c
index 19bb17f1b35252020c395d1d7fde0cde2f8980e9..2a34cb64cb44b82a12a47f3a88ccbdb10f1be367 100644
--- a/runtime/quark/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/quark/codelets/codelet_zgetrf_nopiv.c
@@ -25,7 +25,27 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zgetrf_nopiv_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_sequence_t *sequence;
+    MORSE_request_t *request;
+    int iinfo;
+    int info;
+
+    quark_unpack_args_8(quark, m, n, ib, A, lda, sequence, request, iinfo);
+    CORE_zgetrf_nopiv(m, n, ib, A, lda, &info);
+    if (info != MORSE_SUCCESS)
+        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
+}
 
 /***************************************************************************//**
  *
@@ -74,7 +94,6 @@
  *              to solve a system of equations.
  *
  ******************************************************************************/
-
 void MORSE_TASK_zgetrf_nopiv(const MORSE_option_t *options,
                              int m, int n, int ib, int nb,
                              const MORSE_desc_t *A, int Am, int An, int lda,
@@ -94,22 +113,3 @@ void MORSE_TASK_zgetrf_nopiv(const MORSE_option_t *options,
         sizeof(int),                        &iinfo,         VALUE,
         0);
 }
-
-
-void CORE_zgetrf_nopiv_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_sequence_t *sequence;
-    MORSE_request_t *request;
-    int iinfo;
-    int info;
-
-    quark_unpack_args_8(quark, m, n, ib, A, lda, sequence, request, iinfo);
-    CORE_zgetrf_nopiv(m, n, ib, A, lda, &info);
-    if (info != MORSE_SUCCESS)
-        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
-}
diff --git a/runtime/quark/codelets/codelet_zhe2ge.c b/runtime/quark/codelets/codelet_zhe2ge.c
index 474ea51dc999960f1652babf576802616000efa8..18761e7b43696f1c7a61ea4f46017385fd128b55 100644
--- a/runtime/quark/codelets/codelet_zhe2ge.c
+++ b/runtime/quark/codelets/codelet_zhe2ge.c
@@ -20,7 +20,9 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 /**
  *
diff --git a/runtime/quark/codelets/codelet_zhemm.c b/runtime/quark/codelets/codelet_zhemm.c
index b814fe2322ef7c50df98ee04d7144fce80d5607c..f68481accea2da25c605491da958c53b4d158545 100644
--- a/runtime/quark/codelets/codelet_zhemm.c
+++ b/runtime/quark/codelets/codelet_zhemm.c
@@ -28,16 +28,32 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#undef REAL
-#define COMPLEX
-#ifdef COMPLEX
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_zhemm_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum uplo;
+    int M;
+    int N;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int LDA;
+    MORSE_Complex64_t *B;
+    int LDB;
+    MORSE_Complex64_t beta;
+    MORSE_Complex64_t *C;
+    int LDC;
+
+    quark_unpack_args_12(quark, side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC);
+    CORE_zhemm(side, uplo,
+        M, N,
+        alpha, A, LDA,
+        B, LDB,
+        beta, C, LDC);
+}
 
 void MORSE_TASK_zhemm(const MORSE_option_t *options,
                       MORSE_enum side, MORSE_enum uplo,
@@ -64,27 +80,3 @@ void MORSE_TASK_zhemm(const MORSE_option_t *options,
         0);
 }
 
-
-void CORE_zhemm_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum uplo;
-    int M;
-    int N;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int LDA;
-    MORSE_Complex64_t *B;
-    int LDB;
-    MORSE_Complex64_t beta;
-    MORSE_Complex64_t *C;
-    int LDC;
-
-    quark_unpack_args_12(quark, side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC);
-    CORE_zhemm(side, uplo,
-        M, N,
-        alpha, A, LDA,
-        B, LDB,
-        beta, C, LDC);
-}
-#endif
diff --git a/runtime/quark/codelets/codelet_zher2k.c b/runtime/quark/codelets/codelet_zher2k.c
index bb4c07e431f5a505db44327e31a420bcf7f721dc..3f47dbac4dccd3c258c690e43bfce3b80f82995f 100644
--- a/runtime/quark/codelets/codelet_zher2k.c
+++ b/runtime/quark/codelets/codelet_zher2k.c
@@ -28,16 +28,29 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#undef REAL
-#define COMPLEX
-#ifdef COMPLEX
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_zher2k_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    MORSE_enum trans;
+    int n;
+    int k;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *B;
+    int ldb;
+    double beta;
+    MORSE_Complex64_t *C;
+    int ldc;
+
+    quark_unpack_args_12(quark, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
+    CORE_zher2k(uplo, trans,
+                n, k, alpha, A, lda, B, ldb, beta, C, ldc);
+}
 
 void MORSE_TASK_zher2k(const MORSE_option_t *options,
                        MORSE_enum uplo, MORSE_enum trans,
@@ -63,25 +76,3 @@ void MORSE_TASK_zher2k(const MORSE_option_t *options,
         sizeof(int),                        &ldc,       VALUE,
         0);
 }
-
-
-void CORE_zher2k_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    MORSE_enum trans;
-    int n;
-    int k;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *B;
-    int ldb;
-    double beta;
-    MORSE_Complex64_t *C;
-    int ldc;
-
-    quark_unpack_args_12(quark, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
-    CORE_zher2k(uplo, trans,
-                n, k, alpha, A, lda, B, ldb, beta, C, ldc);
-}
-#endif
diff --git a/runtime/quark/codelets/codelet_zherfb.c b/runtime/quark/codelets/codelet_zherfb.c
index b254c1ed1439c342fce00883fac2b9d384e92cb1..79d9181df7230353582e6bf1eab15ebd706e49ae 100644
--- a/runtime/quark/codelets/codelet_zherfb.c
+++ b/runtime/quark/codelets/codelet_zherfb.c
@@ -22,7 +22,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_zherfb_quark(Quark *quark)
 {
diff --git a/runtime/quark/codelets/codelet_zherk.c b/runtime/quark/codelets/codelet_zherk.c
index 27cb1df902d35bfa491e56b244f4d121d88539c5..1c81f3a0494494f5f38a52f5d1c974d5ce679e0e 100644
--- a/runtime/quark/codelets/codelet_zherk.c
+++ b/runtime/quark/codelets/codelet_zherk.c
@@ -28,16 +28,29 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#undef REAL
-#define COMPLEX
-#ifdef COMPLEX
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_zherk_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    MORSE_enum trans;
+    int n;
+    int k;
+    double alpha;
+    MORSE_Complex64_t *A;
+    int lda;
+    double beta;
+    MORSE_Complex64_t *C;
+    int ldc;
+
+    quark_unpack_args_10(quark, uplo, trans, n, k, alpha, A, lda, beta, C, ldc);
+    CORE_zherk(uplo, trans,
+        n, k,
+        alpha, A, lda,
+        beta, C, ldc);
+}
 
 void MORSE_TASK_zherk(const MORSE_option_t *options,
                       MORSE_enum uplo, MORSE_enum trans,
@@ -60,25 +73,3 @@ void MORSE_TASK_zherk(const MORSE_option_t *options,
         sizeof(int),                        &ldc,       VALUE,
         0);
 }
-
-
-void CORE_zherk_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    MORSE_enum trans;
-    int n;
-    int k;
-    double alpha;
-    MORSE_Complex64_t *A;
-    int lda;
-    double beta;
-    MORSE_Complex64_t *C;
-    int ldc;
-
-    quark_unpack_args_10(quark, uplo, trans, n, k, alpha, A, lda, beta, C, ldc);
-    CORE_zherk(uplo, trans,
-        n, k,
-        alpha, A, lda,
-        beta, C, ldc);
-}
-#endif
diff --git a/runtime/quark/codelets/codelet_zhessq.c b/runtime/quark/codelets/codelet_zhessq.c
index 34d026a9458fc50ed6c0587b5b3d79c8b142faca..329635c899fd993d3813f82fe16d0606823ad442 100644
--- a/runtime/quark/codelets/codelet_zhessq.c
+++ b/runtime/quark/codelets/codelet_zhessq.c
@@ -24,7 +24,21 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zhessq_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    double *SCALESUMSQ;
+
+    quark_unpack_args_5( quark, uplo, n, A, lda, SCALESUMSQ );
+    CORE_zhessq( uplo, n, A, lda, &SCALESUMSQ[0], &SCALESUMSQ[1]);
+}
 
 void MORSE_TASK_zhessq( const MORSE_option_t *options,
                         MORSE_enum uplo, int n,
@@ -40,16 +54,3 @@ void MORSE_TASK_zhessq( const MORSE_option_t *options,
         sizeof(double)*2,                RTBLKADDR(SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn), INOUT,
         0);
 }
-
-
-void CORE_zhessq_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    double *SCALESUMSQ;
-
-    quark_unpack_args_5( quark, uplo, n, A, lda, SCALESUMSQ );
-    CORE_zhessq( uplo, n, A, lda, &SCALESUMSQ[0], &SCALESUMSQ[1]);
-}
diff --git a/runtime/quark/codelets/codelet_zlacpy.c b/runtime/quark/codelets/codelet_zlacpy.c
index ee78ca67bd681bda611b3543afef8ec423573cd9..a38850320db7b538337250a1cacdcc7a8a5392ca 100644
--- a/runtime/quark/codelets/codelet_zlacpy.c
+++ b/runtime/quark/codelets/codelet_zlacpy.c
@@ -29,13 +29,10 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
 static inline void CORE_zlacpy_quark(Quark *quark)
 {
     MORSE_enum uplo;
diff --git a/runtime/quark/codelets/codelet_zlag2c.c b/runtime/quark/codelets/codelet_zlag2c.c
index 0267ddc258d5384f1eb962bdf8e34b8d0d671f05..a3c23c36a82039245b8cd095dd013f815c4f76ba 100644
--- a/runtime/quark/codelets/codelet_zlag2c.c
+++ b/runtime/quark/codelets/codelet_zlag2c.c
@@ -27,33 +27,9 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
-
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
-void MORSE_TASK_zlag2c(const MORSE_option_t *options,
-                       int m, int n, int nb,
-                       const MORSE_desc_t *A, int Am, int An, int lda,
-                       const MORSE_desc_t *B, int Bm, int Bn, int ldb)
-{
-    quark_option_t *opt = (quark_option_t*)(options->schedopt);
-    DAG_CORE_LAG2C;
-    QUARK_Insert_Task(opt->quark, CORE_zlag2c_quark, (Quark_Task_Flags*)opt,
-        sizeof(int),                        &m,         VALUE,
-        sizeof(int),                        &n,         VALUE,
-        sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex64_t, Am, An),                 INPUT,
-        sizeof(int),                        &lda,       VALUE,
-        sizeof(MORSE_Complex32_t)*nb*nb,    RTBLKADDR(B, MORSE_Complex32_t, Bm, Bn),                 OUTPUT,
-        sizeof(int),                        &ldb,       VALUE,
-        sizeof(MORSE_sequence_t*),           &(options->sequence),  VALUE,
-        sizeof(MORSE_request_t*),            &(options->request),   VALUE,
-        0);
-}
-
-
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_zlag2c_quark(Quark *quark)
 {
@@ -73,28 +49,25 @@ void CORE_zlag2c_quark(Quark *quark)
         RUNTIME_sequence_flush(quark, sequence, request, info);
 }
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
-
-void MORSE_TASK_clag2z(const MORSE_option_t *options,
+void MORSE_TASK_zlag2c(const MORSE_option_t *options,
                        int m, int n, int nb,
                        const MORSE_desc_t *A, int Am, int An, int lda,
                        const MORSE_desc_t *B, int Bm, int Bn, int ldb)
 {
-    QUARK_Insert_Task(opt->quark, CORE_clag2z_quark, (Quark_Task_Flags*)opt,
-        sizeof(int),                        &m,     VALUE,
-        sizeof(int),                        &n,     VALUE,
-        sizeof(MORSE_Complex32_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex32_t, Am, An),             INPUT,
-        sizeof(int),                        &lda,   VALUE,
-        sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn),             INOUT,
-        sizeof(int),                        &ldb,   VALUE,
-        0);
+    quark_option_t *opt = (quark_option_t*)(options->schedopt);
+    DAG_CORE_LAG2C;
+    QUARK_Insert_Task(opt->quark, CORE_zlag2c_quark, (Quark_Task_Flags*)opt,
+                      sizeof(int),                        &m,         VALUE,
+                      sizeof(int),                        &n,         VALUE,
+                      sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex64_t, Am, An),                 INPUT,
+                      sizeof(int),                        &lda,       VALUE,
+                      sizeof(MORSE_Complex32_t)*nb*nb,    RTBLKADDR(B, MORSE_Complex32_t, Bm, Bn),                 OUTPUT,
+                      sizeof(int),                        &ldb,       VALUE,
+                      sizeof(MORSE_sequence_t*),           &(options->sequence),  VALUE,
+                      sizeof(MORSE_request_t*),            &(options->request),   VALUE,
+                      0);
 }
 
-
 void CORE_clag2z_quark(Quark *quark)
 {
     int m;
@@ -108,3 +81,17 @@ void CORE_clag2z_quark(Quark *quark)
     CORE_clag2z( m, n, A, lda, B, ldb);
 }
 
+void MORSE_TASK_clag2z(const MORSE_option_t *options,
+                       int m, int n, int nb,
+                       const MORSE_desc_t *A, int Am, int An, int lda,
+                       const MORSE_desc_t *B, int Bm, int Bn, int ldb)
+{
+    QUARK_Insert_Task(opt->quark, CORE_clag2z_quark, (Quark_Task_Flags*)opt,
+                      sizeof(int),                        &m,     VALUE,
+                      sizeof(int),                        &n,     VALUE,
+                      sizeof(MORSE_Complex32_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex32_t, Am, An),             INPUT,
+                      sizeof(int),                        &lda,   VALUE,
+                      sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn),             INOUT,
+                      sizeof(int),                        &ldb,   VALUE,
+                      0);
+}
diff --git a/runtime/quark/codelets/codelet_zlange.c b/runtime/quark/codelets/codelet_zlange.c
index e3a6b92ec1453b0ddb2c284cfb70f15f60674bfd..edc7452263856db2c04acc9379d1b26166f24370 100644
--- a/runtime/quark/codelets/codelet_zlange.c
+++ b/runtime/quark/codelets/codelet_zlange.c
@@ -27,7 +27,23 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zlange_quark(Quark *quark)
+{
+    double *normA;
+    MORSE_enum norm;
+    int M;
+    int N;
+    MORSE_Complex64_t *A;
+    int LDA;
+    double *work;
+
+    quark_unpack_args_7(quark, norm, M, N, A, LDA, work, normA);
+    CORE_zlange( norm, M, N, A, LDA, work, normA);
+}
 
 void MORSE_TASK_zlange(const MORSE_option_t *options,
                        MORSE_enum norm, int M, int N, int NB,
@@ -49,21 +65,16 @@ void MORSE_TASK_zlange(const MORSE_option_t *options,
         0);
 }
 
-void CORE_zlange_quark(Quark *quark)
+void CORE_zlange_max_quark(Quark *quark)
 {
+    double *A;
     double *normA;
-    MORSE_enum norm;
-    int M;
-    int N;
-    MORSE_Complex64_t *A;
-    int LDA;
-    double *work;
 
-    quark_unpack_args_7(quark, norm, M, N, A, LDA, work, normA);
-    CORE_zlange( norm, M, N, A, LDA, work, normA);
+    quark_unpack_args_2(quark, A, normA);
+    if ( A[0] > *normA )
+        *normA = A[0];
 }
 
-
 void MORSE_TASK_zlange_max(const MORSE_option_t *options,
                            const MORSE_desc_t *A, int Am, int An,
                            const MORSE_desc_t *B, int Bm, int Bn)
@@ -77,14 +88,3 @@ void MORSE_TASK_zlange_max(const MORSE_option_t *options,
         0);
 }
 
-
-void CORE_zlange_max_quark(Quark *quark)
-{
-    double *A;
-    double *normA;
-
-    quark_unpack_args_2(quark, A, normA);
-    if ( A[0] > *normA )
-        *normA = A[0];
-}
-
diff --git a/runtime/quark/codelets/codelet_zlanhe.c b/runtime/quark/codelets/codelet_zlanhe.c
index 70ab4cf8f7d4cf9b266fd5426c914b1ced81b211..27cd9ebbba1ba865599c409cfad075a29e74e78d 100644
--- a/runtime/quark/codelets/codelet_zlanhe.c
+++ b/runtime/quark/codelets/codelet_zlanhe.c
@@ -27,7 +27,23 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zlanhe_quark(Quark *quark)
+{
+    double *normA;
+    MORSE_enum norm;
+    MORSE_enum uplo;
+    int N;
+    MORSE_Complex64_t *A;
+    int LDA;
+    double *work;
+
+    quark_unpack_args_7(quark, norm, uplo, N, A, LDA, work, normA);
+    CORE_zlanhe( norm, uplo, N, A, LDA, work, normA);
+}
 
 void MORSE_TASK_zlanhe(const MORSE_option_t *options,
                        MORSE_enum norm, MORSE_enum uplo, int N, int NB,
@@ -48,17 +64,3 @@ void MORSE_TASK_zlanhe(const MORSE_option_t *options,
         sizeof(double),                  RTBLKADDR(B, double, Bm, Bn), OUTPUT,
         0);
 }
-
-void CORE_zlanhe_quark(Quark *quark)
-{
-    double *normA;
-    MORSE_enum norm;
-    MORSE_enum uplo;
-    int N;
-    MORSE_Complex64_t *A;
-    int LDA;
-    double *work;
-
-    quark_unpack_args_7(quark, norm, uplo, N, A, LDA, work, normA);
-    CORE_zlanhe( norm, uplo, N, A, LDA, work, normA);
-}
diff --git a/runtime/quark/codelets/codelet_zlansy.c b/runtime/quark/codelets/codelet_zlansy.c
index 43e2132e17912a2bc6823195910b0119b1ac734c..c4e5fa3072790913123a397bf8b101f524f62b29 100644
--- a/runtime/quark/codelets/codelet_zlansy.c
+++ b/runtime/quark/codelets/codelet_zlansy.c
@@ -27,7 +27,23 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zlansy_quark(Quark *quark)
+{
+    double *normA;
+    int norm;
+    MORSE_enum uplo;
+    int N;
+    MORSE_Complex64_t *A;
+    int LDA;
+    double *work;
+
+    quark_unpack_args_7(quark, norm, uplo, N, A, LDA, work, normA);
+    CORE_zlansy( norm, uplo, N, A, LDA, work, normA);
+}
 
 void MORSE_TASK_zlansy(const MORSE_option_t *options,
                        MORSE_enum norm, MORSE_enum uplo, int N, int NB,
@@ -48,17 +64,3 @@ void MORSE_TASK_zlansy(const MORSE_option_t *options,
         sizeof(double),                  RTBLKADDR(B, double, Bm, Bn), OUTPUT,
         0);
 }
-
-void CORE_zlansy_quark(Quark *quark)
-{
-    double *normA;
-    int norm;
-    MORSE_enum uplo;
-    int N;
-    MORSE_Complex64_t *A;
-    int LDA;
-    double *work;
-
-    quark_unpack_args_7(quark, norm, uplo, N, A, LDA, work, normA);
-    CORE_zlansy( norm, uplo, N, A, LDA, work, normA);
-}
diff --git a/runtime/quark/codelets/codelet_zlantr.c b/runtime/quark/codelets/codelet_zlantr.c
index a6d0009b5481a8784cd908c9ede233c7a5d32839..20078833c774af3d897beb3954d1a22d3e338650 100644
--- a/runtime/quark/codelets/codelet_zlantr.c
+++ b/runtime/quark/codelets/codelet_zlantr.c
@@ -24,7 +24,23 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zlantr_quark(Quark *quark)
+{
+    double *normA;
+    MORSE_enum norm, uplo, diag;
+    int M;
+    int N;
+    MORSE_Complex64_t *A;
+    int LDA;
+    double *work;
+
+    quark_unpack_args_9(quark, norm, uplo, diag, M, N, A, LDA, work, normA);
+    CORE_zlantr( norm, uplo, diag, M, N, A, LDA, work, normA);
+}
 
 void MORSE_TASK_zlantr(const MORSE_option_t *options,
                        MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag,
@@ -48,17 +64,3 @@ void MORSE_TASK_zlantr(const MORSE_option_t *options,
         sizeof(double),                  RTBLKADDR(B, double, Bm, Bn), OUTPUT,
         0);
 }
-
-void CORE_zlantr_quark(Quark *quark)
-{
-    double *normA;
-    MORSE_enum norm, uplo, diag;
-    int M;
-    int N;
-    MORSE_Complex64_t *A;
-    int LDA;
-    double *work;
-
-    quark_unpack_args_9(quark, norm, uplo, diag, M, N, A, LDA, work, normA);
-    CORE_zlantr( norm, uplo, diag, M, N, A, LDA, work, normA);
-}
diff --git a/runtime/quark/codelets/codelet_zlascal.c b/runtime/quark/codelets/codelet_zlascal.c
index 747695ef445633a4f61dcbf54da76ab3faba6d92..72c5e1ab8b11e63db935afcb32962c54bd3b9bbe 100644
--- a/runtime/quark/codelets/codelet_zlascal.c
+++ b/runtime/quark/codelets/codelet_zlascal.c
@@ -29,13 +29,10 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
 static inline void CORE_zlascal_quark(Quark *quark)
 {
     MORSE_enum uplo;
diff --git a/runtime/quark/codelets/codelet_zlaset.c b/runtime/quark/codelets/codelet_zlaset.c
index dfa4b027938ad99570953eccc3d19d315ff7c198..1c6c44c01ee2acefe54fc273d910ee629ddfa515 100644
--- a/runtime/quark/codelets/codelet_zlaset.c
+++ b/runtime/quark/codelets/codelet_zlaset.c
@@ -28,8 +28,23 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
+void CORE_zlaset_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    int M;
+    int N;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t beta;
+    MORSE_Complex64_t *A;
+    int LDA;
+
+    quark_unpack_args_7(quark, uplo, M, N, alpha, beta, A, LDA);
+    CORE_zlaset(uplo, M, N, alpha, beta, A, LDA);
+}
 
 /**
  *
@@ -66,7 +81,6 @@
  *         The leading dimension of the array A.  LDA >= max(1,M).
  *
  **/
-
 void MORSE_TASK_zlaset(const MORSE_option_t *options,
                        MORSE_enum uplo, int M, int N,
                        MORSE_Complex64_t alpha, MORSE_Complex64_t beta,
@@ -84,18 +98,3 @@ void MORSE_TASK_zlaset(const MORSE_option_t *options,
         sizeof(int),                        &LDA,   VALUE,
         0);
 }
-
-
-void CORE_zlaset_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    int M;
-    int N;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t beta;
-    MORSE_Complex64_t *A;
-    int LDA;
-
-    quark_unpack_args_7(quark, uplo, M, N, alpha, beta, A, LDA);
-    CORE_zlaset(uplo, M, N, alpha, beta, A, LDA);
-}
diff --git a/runtime/quark/codelets/codelet_zlaset2.c b/runtime/quark/codelets/codelet_zlaset2.c
index 4195739b1649070b9a47fb1722e35a8a57400f7c..29270843e7f896fc6b391f707d167302e9d3c66b 100644
--- a/runtime/quark/codelets/codelet_zlaset2.c
+++ b/runtime/quark/codelets/codelet_zlaset2.c
@@ -28,8 +28,22 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
+void CORE_zlaset2_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    int M;
+    int N;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int LDA;
+
+    quark_unpack_args_6(quark, uplo, M, N, alpha, A, LDA);
+    CORE_zlaset2(uplo, M, N, alpha, A, LDA);
+}
 
 /**
  *
@@ -80,17 +94,3 @@ void MORSE_TASK_zlaset2(const MORSE_option_t *options,
         sizeof(int),                        &LDA,   VALUE,
         0);
 }
-
-
-void CORE_zlaset2_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    int M;
-    int N;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int LDA;
-
-    quark_unpack_args_6(quark, uplo, M, N, alpha, A, LDA);
-    CORE_zlaset2(uplo, M, N, alpha, A, LDA);
-}
diff --git a/runtime/quark/codelets/codelet_zlatro.c b/runtime/quark/codelets/codelet_zlatro.c
index 342f1b430b1d4c3e60eae7a363e8144b508f4044..a1f0f4fe9268bb9b2778921f93b838dad9bb70bb 100644
--- a/runtime/quark/codelets/codelet_zlatro.c
+++ b/runtime/quark/codelets/codelet_zlatro.c
@@ -21,8 +21,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
-
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_zlatro_quark(Quark *quark)
 {
@@ -39,9 +40,6 @@ void CORE_zlatro_quark(Quark *quark)
     CORE_zlatro(uplo, trans, M, N, A, LDA, B, LDB);
 }
 
-/***************************************************************************//**
- *
- **/
 void MORSE_TASK_zlatro(const MORSE_option_t *options,
                        MORSE_enum uplo, MORSE_enum trans,
                        int m, int n, int mb,
diff --git a/runtime/quark/codelets/codelet_zlauum.c b/runtime/quark/codelets/codelet_zlauum.c
index 1a47efcec3a914eea19779bcf5b7caf3d6169b17..944871dfe7b38158bcfd432e1b740f95f8db2d19 100644
--- a/runtime/quark/codelets/codelet_zlauum.c
+++ b/runtime/quark/codelets/codelet_zlauum.c
@@ -29,13 +29,20 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_zlauum_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    int N;
+    MORSE_Complex64_t *A;
+    int LDA;
+
+    quark_unpack_args_4(quark, uplo, N, A, LDA);
+    CORE_zlauum(uplo, N, A, LDA);
+}
 
 void MORSE_TASK_zlauum(const MORSE_option_t *options,
                        MORSE_enum uplo, int n, int nb,
@@ -50,15 +57,3 @@ void MORSE_TASK_zlauum(const MORSE_option_t *options,
         sizeof(int),                        &lda,   VALUE,
         0);
 }
-
-
-void CORE_zlauum_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    int N;
-    MORSE_Complex64_t *A;
-    int LDA;
-
-    quark_unpack_args_4(quark, uplo, N, A, LDA);
-    CORE_zlauum(uplo, N, A, LDA);
-}
diff --git a/runtime/quark/codelets/codelet_zpamm.c b/runtime/quark/codelets/codelet_zpamm.c
index 6334c1479dbbeeaa53fc77b7abc2371f7bdac988..ae351f9706f44fd9873e74a18e3435d3ed28ac56 100644
--- a/runtime/quark/codelets/codelet_zpamm.c
+++ b/runtime/quark/codelets/codelet_zpamm.c
@@ -27,11 +27,37 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
+#include "coreblas/cblas.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void
+CORE_zpamm_quark(Quark *quark)
+{
+    int op;
+    MORSE_enum side;
+    int storev;
+    int M;
+    int N;
+    int K;
+    int L;
+    MORSE_Complex64_t *A1;
+    int LDA1;
+    MORSE_Complex64_t *A2;
+    int LDA2;
+    MORSE_Complex64_t *V;
+    int LDV;
+    MORSE_Complex64_t *W;
+    int LDW;
+
+    quark_unpack_args_15(quark, op, side, storev, M, N, K, L,
+            A1, LDA1, A2, LDA2, V, LDV, W, LDW);
 
-/***************************************************************************//**
+    CORE_zpamm( op, side, storev, M, N, K, L, A1, LDA1, A2, LDA2, V, LDV, W, LDW);
+}
+
+/**
  *
  * @ingroup CORE_MORSE_Complex64_t
  *
@@ -171,11 +197,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
-
-/***************************************************************************/
-
-
 void
 MORSE_TASK_zpamm(const MORSE_option_t *options,
                  int op, MORSE_enum side, int storev,
@@ -203,29 +224,3 @@ MORSE_TASK_zpamm(const MORSE_option_t *options,
         sizeof(int),                        &ldw,     VALUE,
         0);
 }
-
-void
-CORE_zpamm_quark(Quark *quark)
-{
-    int op;
-    MORSE_enum side;
-    int storev;
-    int M;
-    int N;
-    int K;
-    int L;
-    MORSE_Complex64_t *A1;
-    int LDA1;
-    MORSE_Complex64_t *A2;
-    int LDA2;
-    MORSE_Complex64_t *V;
-    int LDV;
-    MORSE_Complex64_t *W;
-    int LDW;
-
-    quark_unpack_args_15(quark, op, side, storev, M, N, K, L,
-            A1, LDA1, A2, LDA2, V, LDV, W, LDW);
-
-    CORE_zpamm( op, side, storev, M, N, K, L, A1, LDA1, A2, LDA2, V, LDV, W, LDW);
-}
-
diff --git a/runtime/quark/codelets/codelet_zplghe.c b/runtime/quark/codelets/codelet_zplghe.c
index 42f7f353bc4d9df75510ed913693b907021e60bd..f9b3764832afa2bc444b2c287434aa554ff39cd8 100644
--- a/runtime/quark/codelets/codelet_zplghe.c
+++ b/runtime/quark/codelets/codelet_zplghe.c
@@ -28,9 +28,25 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
+void CORE_zplghe_quark(Quark *quark)
+{
+    double bump;
+    int m;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    int bigM;
+    int m0;
+    int n0;
+    unsigned long long int seed;
 
+    quark_unpack_args_9( quark, bump, m, n, A, lda, bigM, m0, n0, seed );
+    CORE_zplghe( bump, m, n, A, lda, bigM, m0, n0, seed );
+}
 
 void MORSE_TASK_zplghe( const MORSE_option_t *options,
                         double bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda,
@@ -50,21 +66,3 @@ void MORSE_TASK_zplghe( const MORSE_option_t *options,
         sizeof(unsigned long long int),   &seed, VALUE,
         0);
 }
-
-
-void CORE_zplghe_quark(Quark *quark)
-{
-    double bump;
-    int m;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    int bigM;
-    int m0;
-    int n0;
-    unsigned long long int seed;
-
-    quark_unpack_args_9( quark, bump, m, n, A, lda, bigM, m0, n0, seed );
-    CORE_zplghe( bump, m, n, A, lda, bigM, m0, n0, seed );
-}
-
diff --git a/runtime/quark/codelets/codelet_zplgsy.c b/runtime/quark/codelets/codelet_zplgsy.c
index f454988bdb15428a084258b7bcdd2f252f30c01a..92095ba9879084b91245099cebea0d5caf848a86 100644
--- a/runtime/quark/codelets/codelet_zplgsy.c
+++ b/runtime/quark/codelets/codelet_zplgsy.c
@@ -28,9 +28,25 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
+void CORE_zplgsy_quark(Quark *quark)
+{
+    MORSE_Complex64_t bump;
+    int m;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    int bigM;
+    int m0;
+    int n0;
+    unsigned long long int seed;
 
+    quark_unpack_args_9( quark, bump, m, n, A, lda, bigM, m0, n0, seed );
+    CORE_zplgsy( bump, m, n, A, lda, bigM, m0, n0, seed );
+}
 
 void MORSE_TASK_zplgsy( const MORSE_option_t *options,
                         MORSE_Complex64_t bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda,
@@ -50,21 +66,3 @@ void MORSE_TASK_zplgsy( const MORSE_option_t *options,
         sizeof(unsigned long long int),   &seed, VALUE,
         0);
 }
-
-
-void CORE_zplgsy_quark(Quark *quark)
-{
-    MORSE_Complex64_t bump;
-    int m;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    int bigM;
-    int m0;
-    int n0;
-    unsigned long long int seed;
-
-    quark_unpack_args_9( quark, bump, m, n, A, lda, bigM, m0, n0, seed );
-    CORE_zplgsy( bump, m, n, A, lda, bigM, m0, n0, seed );
-}
-
diff --git a/runtime/quark/codelets/codelet_zplrnt.c b/runtime/quark/codelets/codelet_zplrnt.c
index 3c01d78c277a62f9c5811aad5031a18611e415c7..6bdadfe01aa3bcf5a4eebe460ebdc537de89793b 100644
--- a/runtime/quark/codelets/codelet_zplrnt.c
+++ b/runtime/quark/codelets/codelet_zplrnt.c
@@ -28,9 +28,24 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
+void CORE_zplrnt_quark(Quark *quark)
+{
+    int m;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    int bigM;
+    int m0;
+    int n0;
+    unsigned long long int seed;
 
+    quark_unpack_args_8( quark, m, n, A, lda, bigM, m0, n0, seed );
+    CORE_zplrnt( m, n, A, lda, bigM, m0, n0, seed );
+}
 
 void MORSE_TASK_zplrnt( const MORSE_option_t *options,
                         int m, int n, const MORSE_desc_t *A, int Am, int An, int lda,
@@ -49,20 +64,3 @@ void MORSE_TASK_zplrnt( const MORSE_option_t *options,
         sizeof(unsigned long long int),   &seed, VALUE,
         0);
 }
-
-
-void CORE_zplrnt_quark(Quark *quark)
-{
-    int m;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    int bigM;
-    int m0;
-    int n0;
-    unsigned long long int seed;
-
-    quark_unpack_args_8( quark, m, n, A, lda, bigM, m0, n0, seed );
-    CORE_zplrnt( m, n, A, lda, bigM, m0, n0, seed );
-}
-
diff --git a/runtime/quark/codelets/codelet_zplssq.c b/runtime/quark/codelets/codelet_zplssq.c
index a838cbbf06f96de4df65bb953d7960527c9d05f9..bcff3ea19417a7208a04e0941e7cbe54f8a95172 100644
--- a/runtime/quark/codelets/codelet_zplssq.c
+++ b/runtime/quark/codelets/codelet_zplssq.c
@@ -25,7 +25,24 @@
  *
  **/
 #include <math.h>
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zplssq_quark(Quark *quark)
+{
+    double *SCALESUMSQ;
+    double *SCLSSQ;
+
+    quark_unpack_args_2( quark, SCALESUMSQ, SCLSSQ );
+
+    if( SCLSSQ[0] < SCALESUMSQ[0] ) {
+        SCLSSQ[1] = SCALESUMSQ[1] + (SCLSSQ[1]     * (( SCLSSQ[0] / SCALESUMSQ[0] ) * ( SCLSSQ[0] / SCALESUMSQ[0] )));
+        SCLSSQ[0] = SCALESUMSQ[0];
+    } else {
+        SCLSSQ[1] = SCLSSQ[1]     + (SCALESUMSQ[1] * (( SCALESUMSQ[0] / SCLSSQ[0] ) * ( SCALESUMSQ[0] / SCLSSQ[0] )));
+    }
+}
 
 /*****************************************************************************
  *
@@ -70,19 +87,12 @@ void MORSE_TASK_zplssq( const MORSE_option_t *options,
 }
 
 
-void CORE_zplssq_quark(Quark *quark)
+void CORE_zplssq2_quark(Quark *quark)
 {
-    double *SCALESUMSQ;
-    double *SCLSSQ;
-
-    quark_unpack_args_2( quark, SCALESUMSQ, SCLSSQ );
+    double *RESULT;
 
-    if( SCLSSQ[0] < SCALESUMSQ[0] ) {
-        SCLSSQ[1] = SCALESUMSQ[1] + (SCLSSQ[1]     * (( SCLSSQ[0] / SCALESUMSQ[0] ) * ( SCLSSQ[0] / SCALESUMSQ[0] )));
-        SCLSSQ[0] = SCALESUMSQ[0];
-    } else {
-        SCLSSQ[1] = SCLSSQ[1]     + (SCALESUMSQ[1] * (( SCALESUMSQ[0] / SCLSSQ[0] ) * ( SCALESUMSQ[0] / SCLSSQ[0] )));
-    }
+    quark_unpack_args_1( quark, RESULT );
+    RESULT[0] = RESULT[0] * sqrt( RESULT[1] );
 }
 
 void MORSE_TASK_zplssq2( const MORSE_option_t *options,
@@ -93,12 +103,3 @@ void MORSE_TASK_zplssq2( const MORSE_option_t *options,
         sizeof(double)*2, RTBLKADDR(RESULT, double, RESULTm, RESULTn), INOUT,
         0);
 }
-
-
-void CORE_zplssq2_quark(Quark *quark)
-{
-    double *RESULT;
-
-    quark_unpack_args_1( quark, RESULT );
-    RESULT[0] = RESULT[0] * sqrt( RESULT[1] );
-}
diff --git a/runtime/quark/codelets/codelet_zpotrf.c b/runtime/quark/codelets/codelet_zpotrf.c
index e90669e836db9ba466e762452e621e07f12e4ddb..d49982a09836d1d446d8d932dea87e1dcffe80c9 100644
--- a/runtime/quark/codelets/codelet_zpotrf.c
+++ b/runtime/quark/codelets/codelet_zpotrf.c
@@ -28,33 +28,9 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/quark/include/morse_quark.h"
-
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
-
-void MORSE_TASK_zpotrf(const MORSE_option_t *options,
-                       MORSE_enum uplo, int n, int nb,
-                       const MORSE_desc_t *A, int Am, int An, int lda,
-                       int iinfo)
-{
-    quark_option_t *opt = (quark_option_t*)(options->schedopt);
-    DAG_CORE_POTRF;
-    QUARK_Insert_Task(opt->quark, CORE_zpotrf_quark, (Quark_Task_Flags*)opt,
-        sizeof(MORSE_enum),                &uplo,      VALUE,
-        sizeof(int),                        &n,         VALUE,
-        sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex64_t, Am, An),                 INOUT,
-        sizeof(int),                        &lda,       VALUE,
-        sizeof(MORSE_sequence_t*),           &(options->sequence),  VALUE,
-        sizeof(MORSE_request_t*),            &(options->request),   VALUE,
-        sizeof(int),                        &iinfo,     VALUE,
-        0);
-}
-
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_zpotrf_quark(Quark *quark)
 {
@@ -73,3 +49,21 @@ void CORE_zpotrf_quark(Quark *quark)
     if (sequence->status == MORSE_SUCCESS && info != 0)
         RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
 }
+
+void MORSE_TASK_zpotrf(const MORSE_option_t *options,
+                       MORSE_enum uplo, int n, int nb,
+                       const MORSE_desc_t *A, int Am, int An, int lda,
+                       int iinfo)
+{
+    quark_option_t *opt = (quark_option_t*)(options->schedopt);
+    DAG_CORE_POTRF;
+    QUARK_Insert_Task(opt->quark, CORE_zpotrf_quark, (Quark_Task_Flags*)opt,
+                      sizeof(MORSE_enum),                &uplo,      VALUE,
+                      sizeof(int),                        &n,         VALUE,
+                      sizeof(MORSE_Complex64_t)*nb*nb,    RTBLKADDR(A, MORSE_Complex64_t, Am, An),                 INOUT,
+                      sizeof(int),                        &lda,       VALUE,
+                      sizeof(MORSE_sequence_t*),           &(options->sequence),  VALUE,
+                      sizeof(MORSE_request_t*),            &(options->request),   VALUE,
+                      sizeof(int),                        &iinfo,     VALUE,
+                      0);
+}
diff --git a/runtime/quark/codelets/codelet_zssssm.c b/runtime/quark/codelets/codelet_zssssm.c
index 0134cedb84895007214949486460a0695337acba..6017ed56e748d603b9402dd988c017d52a9a680b 100644
--- a/runtime/quark/codelets/codelet_zssssm.c
+++ b/runtime/quark/codelets/codelet_zssssm.c
@@ -28,8 +28,32 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-#include "runtime/quark/include/morse_quark.h"
+#include "coreblas/cblas.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zssssm_quark(Quark *quark)
+{
+    int m1;
+    int n1;
+    int m2;
+    int n2;
+    int k;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *L1;
+    int ldl1;
+    MORSE_Complex64_t *L2;
+    int ldl2;
+    int *IPIV;
+
+    quark_unpack_args_15(quark, m1, n1, m2, n2, k, ib, A1, lda1, A2, lda2, L1, ldl1, L2, ldl2, IPIV);
+    CORE_zssssm(m1, n1, m2, n2, k, ib, A1, lda1, A2, lda2, L1, ldl1, L2, ldl2, IPIV);
+}
 
 /***************************************************************************//**
  *
@@ -101,7 +125,6 @@
  *         \retval <0 if INFO = -k, the k-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zssssm(const MORSE_option_t *options,
                        int m1, int n1, int m2, int n2, int k, int ib, int nb,
                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
@@ -130,26 +153,3 @@ void MORSE_TASK_zssssm(const MORSE_option_t *options,
         sizeof(int)*nb,                      IPIV,          INPUT,
         0);
 }
-
-
-void CORE_zssssm_quark(Quark *quark)
-{
-    int m1;
-    int n1;
-    int m2;
-    int n2;
-    int k;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *L1;
-    int ldl1;
-    MORSE_Complex64_t *L2;
-    int ldl2;
-    int *IPIV;
-
-    quark_unpack_args_15(quark, m1, n1, m2, n2, k, ib, A1, lda1, A2, lda2, L1, ldl1, L2, ldl2, IPIV);
-    CORE_zssssm(m1, n1, m2, n2, k, ib, A1, lda1, A2, lda2, L1, ldl1, L2, ldl2, IPIV);
-}
diff --git a/runtime/quark/codelets/codelet_zsymm.c b/runtime/quark/codelets/codelet_zsymm.c
index ff980afb285f2f90ddc262d88d852683210d8eae..949af0193b71c5d30e8afcd1f6c2056f583c84fd 100644
--- a/runtime/quark/codelets/codelet_zsymm.c
+++ b/runtime/quark/codelets/codelet_zsymm.c
@@ -28,13 +28,32 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_zsymm_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum uplo;
+    int M;
+    int N;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int LDA;
+    MORSE_Complex64_t *B;
+    int LDB;
+    MORSE_Complex64_t beta;
+    MORSE_Complex64_t *C;
+    int LDC;
+
+    quark_unpack_args_12(quark, side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC);
+    CORE_zsymm(side, uplo,
+        M, N,
+        alpha, A, LDA,
+        B, LDB,
+        beta, C, LDC);
+}
 
 void MORSE_TASK_zsymm(const MORSE_option_t *options,
                       MORSE_enum side, MORSE_enum uplo,
@@ -60,27 +79,3 @@ void MORSE_TASK_zsymm(const MORSE_option_t *options,
         sizeof(int),                        &ldc,     VALUE,
         0);
 }
-
-
-void CORE_zsymm_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum uplo;
-    int M;
-    int N;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int LDA;
-    MORSE_Complex64_t *B;
-    int LDB;
-    MORSE_Complex64_t beta;
-    MORSE_Complex64_t *C;
-    int LDC;
-
-    quark_unpack_args_12(quark, side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC);
-    CORE_zsymm(side, uplo,
-        M, N,
-        alpha, A, LDA,
-        B, LDB,
-        beta, C, LDC);
-}
diff --git a/runtime/quark/codelets/codelet_zsyr2k.c b/runtime/quark/codelets/codelet_zsyr2k.c
index dac5ea842d14d80a63a08af10f3ae607ce35c382..72bf3e596d48ff9b5ddcd4b07c5dc56640edba9a 100644
--- a/runtime/quark/codelets/codelet_zsyr2k.c
+++ b/runtime/quark/codelets/codelet_zsyr2k.c
@@ -28,13 +28,29 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_zsyr2k_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    MORSE_enum trans;
+    int n;
+    int k;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *B;
+    int ldb;
+    MORSE_Complex64_t beta;
+    MORSE_Complex64_t *C;
+    int ldc;
+
+    quark_unpack_args_12(quark, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
+    CORE_zsyr2k(uplo, trans,
+                n, k, alpha, A, lda, B, ldb, beta, C, ldc);
+}
 
 void MORSE_TASK_zsyr2k(const MORSE_option_t *options,
                        MORSE_enum uplo, MORSE_enum trans,
@@ -60,24 +76,3 @@ void MORSE_TASK_zsyr2k(const MORSE_option_t *options,
         sizeof(int),                        &ldc,       VALUE,
         0);
 }
-
-
-void CORE_zsyr2k_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    MORSE_enum trans;
-    int n;
-    int k;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *B;
-    int ldb;
-    MORSE_Complex64_t beta;
-    MORSE_Complex64_t *C;
-    int ldc;
-
-    quark_unpack_args_12(quark, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
-    CORE_zsyr2k(uplo, trans,
-                n, k, alpha, A, lda, B, ldb, beta, C, ldc);
-}
diff --git a/runtime/quark/codelets/codelet_zsyrk.c b/runtime/quark/codelets/codelet_zsyrk.c
index 8621679e65abdbee97e012387fab62091c4d7941..1dd33d770729fcb950202bd23df8643ea9357488 100644
--- a/runtime/quark/codelets/codelet_zsyrk.c
+++ b/runtime/quark/codelets/codelet_zsyrk.c
@@ -28,13 +28,29 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_zsyrk_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    MORSE_enum trans;
+    int n;
+    int k;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t beta;
+    MORSE_Complex64_t *C;
+    int ldc;
+
+    quark_unpack_args_10(quark, uplo, trans, n, k, alpha, A, lda, beta, C, ldc);
+    CORE_zsyrk(uplo, trans,
+        n, k,
+        alpha, A, lda,
+        beta, C, ldc);
+}
 
 void MORSE_TASK_zsyrk(const MORSE_option_t *options,
                       MORSE_enum uplo, MORSE_enum trans,
@@ -57,24 +73,3 @@ void MORSE_TASK_zsyrk(const MORSE_option_t *options,
         sizeof(int),                        &ldc,       VALUE,
         0);
 }
-
-
-void CORE_zsyrk_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    MORSE_enum trans;
-    int n;
-    int k;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t beta;
-    MORSE_Complex64_t *C;
-    int ldc;
-
-    quark_unpack_args_10(quark, uplo, trans, n, k, alpha, A, lda, beta, C, ldc);
-    CORE_zsyrk(uplo, trans,
-        n, k,
-        alpha, A, lda,
-        beta, C, ldc);
-}
diff --git a/runtime/quark/codelets/codelet_zsyssq.c b/runtime/quark/codelets/codelet_zsyssq.c
index 5eab60ccc83d3bd98fc202fecd5a189e83fec413..ab72718080fe44d72ac8e53046452f5b1fb51539 100644
--- a/runtime/quark/codelets/codelet_zsyssq.c
+++ b/runtime/quark/codelets/codelet_zsyssq.c
@@ -24,7 +24,21 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zsyssq_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    double *SCALESUMSQ;
+
+    quark_unpack_args_5( quark, uplo, n, A, lda, SCALESUMSQ );
+    CORE_zsyssq( uplo, n, A, lda, &SCALESUMSQ[0], &SCALESUMSQ[1]);
+}
 
 void MORSE_TASK_zsyssq( const MORSE_option_t *options,
                         MORSE_enum uplo, int n,
@@ -40,16 +54,3 @@ void MORSE_TASK_zsyssq( const MORSE_option_t *options,
         sizeof(double)*2,                RTBLKADDR(SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn), INOUT,
         0);
 }
-
-
-void CORE_zsyssq_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    double *SCALESUMSQ;
-
-    quark_unpack_args_5( quark, uplo, n, A, lda, SCALESUMSQ );
-    CORE_zsyssq( uplo, n, A, lda, &SCALESUMSQ[0], &SCALESUMSQ[1]);
-}
diff --git a/runtime/quark/codelets/codelet_zsytrf_nopiv.c b/runtime/quark/codelets/codelet_zsytrf_nopiv.c
index 421cbae163e97fc81ad0a2f0eb1de298ed484d15..162948ff9e16746b617d074be55ed3e332f8ebae 100644
--- a/runtime/quark/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/quark/codelets/codelet_zsytrf_nopiv.c
@@ -28,8 +28,26 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
+void CORE_zsytrf_nopiv_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_sequence_t *sequence;
+    MORSE_request_t *request;
+    int iinfo;
+    int info = 0;
+
+    quark_unpack_args_7(quark, uplo, n, A, lda, sequence, request, iinfo);
+    info = CORE_zsytf2_nopiv(uplo, n, A, lda);
+    if (sequence->status == MORSE_SUCCESS && info != 0)
+        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
+}
 
 void MORSE_TASK_zsytrf_nopiv(const MORSE_option_t *options,
                              MORSE_enum uplo, int n, int nb,
@@ -48,21 +66,3 @@ void MORSE_TASK_zsytrf_nopiv(const MORSE_option_t *options,
         sizeof(int),                     &iinfo,               VALUE,
         0);
 }
-
-
-void CORE_zsytrf_nopiv_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_sequence_t *sequence;
-    MORSE_request_t *request;
-    int iinfo;
-    int info = 0;
-
-    quark_unpack_args_7(quark, uplo, n, A, lda, sequence, request, iinfo);
-    info = CORE_zsytf2_nopiv(uplo, n, A, lda);
-    if (sequence->status == MORSE_SUCCESS && info != 0)
-        RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
-}
diff --git a/runtime/quark/codelets/codelet_ztile_zero.c b/runtime/quark/codelets/codelet_ztile_zero.c
index 19beb4362201b07071454867594cbf1bef787f75..4999db5b3a6e47075a7b9e974fb7570290b75c85 100644
--- a/runtime/quark/codelets/codelet_ztile_zero.c
+++ b/runtime/quark/codelets/codelet_ztile_zero.c
@@ -24,29 +24,10 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/*****************************************************************************
- *
- **/
-void MORSE_TASK_ztile_zero(const const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda)
-{
-    quark_option_t *opt = (quark_option_t*)(options->schedopt);
-    QUARK_Insert_Task(opt->quark, CORE_ztile_zero_quark, (Quark_Task_Flags*)opt,
-        sizeof(int),                       &X1,                                       VALUE,
-        sizeof(int),                       &X2,                                       VALUE,
-        sizeof(int),                       &Y1,                                       VALUE,
-        sizeof(int),                       &Y2,                                       VALUE,
-        sizeof(MORSE_Complex64_t)*A->bsiz,  RTBLKADDR(A, MORSE_Complex64_t, Am, An),  OUTPUT | LOCALITY,
-        sizeof(int),                       &lda,                                      VALUE,
-        0);
-}
-
-/*****************************************************************************
- *
- **/
 void CORE_ztile_zero_quark(Quark *quark)
 {
     int X1;
@@ -65,3 +46,18 @@ void CORE_ztile_zero_quark(Quark *quark)
             A[lda*x+y] = 0.0;
 
 }
+
+void MORSE_TASK_ztile_zero(const const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda)
+{
+    quark_option_t *opt = (quark_option_t*)(options->schedopt);
+    QUARK_Insert_Task(opt->quark, CORE_ztile_zero_quark, (Quark_Task_Flags*)opt,
+        sizeof(int),                       &X1,                                       VALUE,
+        sizeof(int),                       &X2,                                       VALUE,
+        sizeof(int),                       &Y1,                                       VALUE,
+        sizeof(int),                       &Y2,                                       VALUE,
+        sizeof(MORSE_Complex64_t)*A->bsiz,  RTBLKADDR(A, MORSE_Complex64_t, Am, An),  OUTPUT | LOCALITY,
+        sizeof(int),                       &lda,                                      VALUE,
+        0);
+}
diff --git a/runtime/quark/codelets/codelet_ztpmqrt.c b/runtime/quark/codelets/codelet_ztpmqrt.c
index 25bd5ac83089cc9147b1dbab07a17b95772d982c..d0efd49bd0a5bf70cf4d661f11575b79bed2feaa 100644
--- a/runtime/quark/codelets/codelet_ztpmqrt.c
+++ b/runtime/quark/codelets/codelet_ztpmqrt.c
@@ -22,7 +22,9 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static void
 CORE_ztpmqrt_quark( Quark *quark )
diff --git a/runtime/quark/codelets/codelet_ztpqrt.c b/runtime/quark/codelets/codelet_ztpqrt.c
index 9b7e098767dc5c11ab35c630d0c2a0125cacf420..72c763a66d344490b3889c48c3e9b6ffc2f2ce56 100644
--- a/runtime/quark/codelets/codelet_ztpqrt.c
+++ b/runtime/quark/codelets/codelet_ztpqrt.c
@@ -22,7 +22,9 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 static void
 CORE_ztpqrt_quark( Quark *quark )
diff --git a/runtime/quark/codelets/codelet_ztradd.c b/runtime/quark/codelets/codelet_ztradd.c
index f5b566b5188bf75634fe121d09d97a333076a380..020bffeeeafdada8d64867052e2df2f1d20cf8bd 100644
--- a/runtime/quark/codelets/codelet_ztradd.c
+++ b/runtime/quark/codelets/codelet_ztradd.c
@@ -24,7 +24,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_ztradd_quark(Quark *quark)
 {
diff --git a/runtime/quark/codelets/codelet_ztrasm.c b/runtime/quark/codelets/codelet_ztrasm.c
index bb2a2e3bf200cd986f8baa06032a4a3506a6d845..e1eb3faeec9e978e6323e301732a9b7e816a490a 100644
--- a/runtime/quark/codelets/codelet_ztrasm.c
+++ b/runtime/quark/codelets/codelet_ztrasm.c
@@ -24,7 +24,24 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_ztrasm_quark(Quark *quark)
+{
+    MORSE_enum storev;
+    MORSE_enum uplo;
+    MORSE_enum diag;
+    int M;
+    int N;
+    MORSE_Complex64_t *A;
+    int lda;
+    double *work;
+
+    quark_unpack_args_8(quark, storev, uplo, diag, M, N, A, lda, work);
+    CORE_ztrasm(storev, uplo, diag, M, N, A, lda, work);
+}
 
 void MORSE_TASK_ztrasm(const MORSE_option_t *options,
                        MORSE_enum storev, MORSE_enum uplo, MORSE_enum diag, int M, int N,
@@ -44,19 +61,3 @@ void MORSE_TASK_ztrasm(const MORSE_option_t *options,
         sizeof(double)*szeW,             RTBLKADDR(B, double, Bm, Bn), INOUT,
         0);
 }
-
-
-void CORE_ztrasm_quark(Quark *quark)
-{
-    MORSE_enum storev;
-    MORSE_enum uplo;
-    MORSE_enum diag;
-    int M;
-    int N;
-    MORSE_Complex64_t *A;
-    int lda;
-    double *work;
-
-    quark_unpack_args_8(quark, storev, uplo, diag, M, N, A, lda, work);
-    CORE_ztrasm(storev, uplo, diag, M, N, A, lda, work);
-}
diff --git a/runtime/quark/codelets/codelet_ztrmm.c b/runtime/quark/codelets/codelet_ztrmm.c
index c11a2d245d3b9a2c6dd34701fcb8ebbd3c76bb73..d75aeb2a9c5349099bda1194050f788114cf4eed 100644
--- a/runtime/quark/codelets/codelet_ztrmm.c
+++ b/runtime/quark/codelets/codelet_ztrmm.c
@@ -28,13 +28,31 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_ztrmm_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum uplo;
+    MORSE_enum transA;
+    MORSE_enum diag;
+    int M;
+    int N;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int LDA;
+    MORSE_Complex64_t *B;
+    int LDB;
+
+    quark_unpack_args_11(quark, side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB);
+    CORE_ztrmm(side, uplo,
+        transA, diag,
+        M, N,
+        alpha, A, LDA,
+        B, LDB);
+}
 
 void MORSE_TASK_ztrmm(const MORSE_option_t *options,
                       MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag,
@@ -58,28 +76,3 @@ void MORSE_TASK_ztrmm(const MORSE_option_t *options,
         sizeof(int),                        &ldb,       VALUE,
         0);
 }
-
-
-void CORE_ztrmm_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum uplo;
-    MORSE_enum transA;
-    MORSE_enum diag;
-    int M;
-    int N;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int LDA;
-    MORSE_Complex64_t *B;
-    int LDB;
-
-    quark_unpack_args_11(quark, side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB);
-    CORE_ztrmm(side, uplo,
-        transA, diag,
-        M, N,
-        alpha, A, LDA,
-        B, LDB);
-}
-
-
diff --git a/runtime/quark/codelets/codelet_ztrsm.c b/runtime/quark/codelets/codelet_ztrsm.c
index c8e52c2b11916e540e90465b0f94ccc06d4d3d7c..d6ccc5e49a777774fa38a6bb76c56808324dfbf7 100644
--- a/runtime/quark/codelets/codelet_ztrsm.c
+++ b/runtime/quark/codelets/codelet_ztrsm.c
@@ -28,13 +28,31 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_ztrsm_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum uplo;
+    MORSE_enum transA;
+    MORSE_enum diag;
+    int m;
+    int n;
+    MORSE_Complex64_t alpha;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *B;
+    int ldb;
+
+    quark_unpack_args_11(quark, side, uplo, transA, diag, m, n, alpha, A, lda, B, ldb);
+    CORE_ztrsm(side, uplo,
+        transA, diag,
+        m, n,
+        alpha, A, lda,
+        B, ldb);
+}
 
 void MORSE_TASK_ztrsm(const MORSE_option_t *options,
                       MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag,
@@ -58,26 +76,3 @@ void MORSE_TASK_ztrsm(const MORSE_option_t *options,
         sizeof(int),                        &ldb,       VALUE,
         0);
 }
-
-
-void CORE_ztrsm_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum uplo;
-    MORSE_enum transA;
-    MORSE_enum diag;
-    int m;
-    int n;
-    MORSE_Complex64_t alpha;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *B;
-    int ldb;
-
-    quark_unpack_args_11(quark, side, uplo, transA, diag, m, n, alpha, A, lda, B, ldb);
-    CORE_ztrsm(side, uplo,
-        transA, diag,
-        m, n,
-        alpha, A, lda,
-        B, ldb);
-}
diff --git a/runtime/quark/codelets/codelet_ztrssq.c b/runtime/quark/codelets/codelet_ztrssq.c
index 4492dbe874307d3e39521ccfdfe6e534b32a2e2a..8ebfcf856b13a0a50b368b7b1384681999784f67 100644
--- a/runtime/quark/codelets/codelet_ztrssq.c
+++ b/runtime/quark/codelets/codelet_ztrssq.c
@@ -24,7 +24,23 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_ztrssq_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    MORSE_enum diag;
+    int m;
+    int n;
+    MORSE_Complex64_t *A;
+    int lda;
+    double *SCALESUMSQ;
+
+    quark_unpack_args_7( quark, uplo, diag, m, n, A, lda, SCALESUMSQ );
+    CORE_ztrssq( uplo, diag, m, n, A, lda, &SCALESUMSQ[0], &SCALESUMSQ[1]);
+}
 
 void MORSE_TASK_ztrssq( const MORSE_option_t *options,
                         MORSE_enum uplo, MORSE_enum diag,
@@ -43,18 +59,3 @@ void MORSE_TASK_ztrssq( const MORSE_option_t *options,
         sizeof(double)*2,                RTBLKADDR(SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn), INOUT,
         0);
 }
-
-
-void CORE_ztrssq_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    MORSE_enum diag;
-    int m;
-    int n;
-    MORSE_Complex64_t *A;
-    int lda;
-    double *SCALESUMSQ;
-
-    quark_unpack_args_7( quark, uplo, diag, m, n, A, lda, SCALESUMSQ );
-    CORE_ztrssq( uplo, diag, m, n, A, lda, &SCALESUMSQ[0], &SCALESUMSQ[1]);
-}
diff --git a/runtime/quark/codelets/codelet_ztrtri.c b/runtime/quark/codelets/codelet_ztrtri.c
index 963ae940eaa483c5d3c55117f3d399595eeadcc3..d87c03fd55c38647021ea3e058b349a568e51caf 100644
--- a/runtime/quark/codelets/codelet_ztrtri.c
+++ b/runtime/quark/codelets/codelet_ztrtri.c
@@ -29,13 +29,28 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-/***************************************************************************//**
- *
- * @ingroup CORE_MORSE_Complex64_t
- *
- **/
+void CORE_ztrtri_quark(Quark *quark)
+{
+    MORSE_enum uplo;
+    MORSE_enum diag;
+    int N;
+    MORSE_Complex64_t *A;
+    int LDA;
+    MORSE_sequence_t *sequence;
+    MORSE_request_t *request;
+    int iinfo;
+
+    int info;
+
+    quark_unpack_args_8(quark, uplo, diag, N, A, LDA, sequence, request, iinfo);
+    CORE_ztrtri(uplo, diag, N, A, LDA, &info);
+    if ((sequence->status == MORSE_SUCCESS) && (info > 0))
+        RUNTIME_sequence_flush(quark, sequence, request, iinfo + info);
+}
 
 void MORSE_TASK_ztrtri(const MORSE_option_t *options,
                        MORSE_enum uplo, MORSE_enum diag,
@@ -56,23 +71,3 @@ void MORSE_TASK_ztrtri(const MORSE_option_t *options,
         sizeof(int),                        &iinfo,     VALUE,
         0);
 }
-
-
-void CORE_ztrtri_quark(Quark *quark)
-{
-    MORSE_enum uplo;
-    MORSE_enum diag;
-    int N;
-    MORSE_Complex64_t *A;
-    int LDA;
-    MORSE_sequence_t *sequence;
-    MORSE_request_t *request;
-    int iinfo;
-
-    int info;
-
-    quark_unpack_args_8(quark, uplo, diag, N, A, LDA, sequence, request, iinfo);
-    CORE_ztrtri(uplo, diag, N, A, LDA, &info);
-    if ((sequence->status == MORSE_SUCCESS) && (info > 0))
-        RUNTIME_sequence_flush(quark, sequence, request, iinfo + info);
-}
diff --git a/runtime/quark/codelets/codelet_ztslqt.c b/runtime/quark/codelets/codelet_ztslqt.c
index 1f2e181b7e360ac03ecd406e934d9522937e6452..766d3ff87a94212002ae0c6655dcd019a6062cb6 100644
--- a/runtime/quark/codelets/codelet_ztslqt.c
+++ b/runtime/quark/codelets/codelet_ztslqt.c
@@ -28,8 +28,27 @@
  * @precisions normal z -> c d s
  *
  **/
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_ztslqt_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *TAU;
+    MORSE_Complex64_t *WORK;
+
+    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+    CORE_ztslqt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+}
 
 /**
  *
@@ -127,22 +146,3 @@ void MORSE_TASK_ztslqt(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ib*nb,    NULL,          SCRATCH,
         0);
 }
-
-
-void CORE_ztslqt_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *TAU;
-    MORSE_Complex64_t *WORK;
-
-    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-    CORE_ztslqt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-}
diff --git a/runtime/quark/codelets/codelet_ztsmlq.c b/runtime/quark/codelets/codelet_ztsmlq.c
index 81dc27110abc0f7c761542fba7e4adafd2c395cf..a59d5b4e0b67eb4847cb14b328fc0678a635fb57 100644
--- a/runtime/quark/codelets/codelet_ztsmlq.c
+++ b/runtime/quark/codelets/codelet_ztsmlq.c
@@ -30,7 +30,36 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_ztsmlq_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum trans;
+    int m1;
+    int n1;
+    int m2;
+    int n2;
+    int k;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *V;
+    int ldv;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *WORK;
+    int ldwork;
+
+    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
+                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+    CORE_ztsmlq(side, trans, m1, n1, m2, n2, k, ib,
+                A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+}
 
 /**
  *
@@ -131,7 +160,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_ztsmlq(const MORSE_option_t *options,
                        MORSE_enum side, MORSE_enum trans,
                        int m1, int n1, int m2, int n2, int k, int ib, int nb,
@@ -165,31 +193,3 @@ void MORSE_TASK_ztsmlq(const MORSE_option_t *options,
         sizeof(int),                        &ldwork, VALUE,
         0);
 }
-
-
-void CORE_ztsmlq_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum trans;
-    int m1;
-    int n1;
-    int m2;
-    int n2;
-    int k;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *V;
-    int ldv;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *WORK;
-    int ldwork;
-
-    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
-                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-    CORE_ztsmlq(side, trans, m1, n1, m2, n2, k, ib,
-                A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-}
diff --git a/runtime/quark/codelets/codelet_ztsmlq_hetra1.c b/runtime/quark/codelets/codelet_ztsmlq_hetra1.c
index b381e12e2ae9762c283be3d6a081c29affa709f9..f9f436593e1c384408c1d976a8b7867acfac70a7 100644
--- a/runtime/quark/codelets/codelet_ztsmlq_hetra1.c
+++ b/runtime/quark/codelets/codelet_ztsmlq_hetra1.c
@@ -25,7 +25,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_ztsmlq_hetra1_quark(Quark *quark)
 {
diff --git a/runtime/quark/codelets/codelet_ztsmqr.c b/runtime/quark/codelets/codelet_ztsmqr.c
index aaff66e2830d3a352d9858a652025ce14e88d4d5..de57a8aa83c6fdeb8cc3a42f4073465d6ae0b7ca 100644
--- a/runtime/quark/codelets/codelet_ztsmqr.c
+++ b/runtime/quark/codelets/codelet_ztsmqr.c
@@ -30,7 +30,36 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_ztsmqr_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum trans;
+    int m1;
+    int n1;
+    int m2;
+    int n2;
+    int k;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *V;
+    int ldv;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *WORK;
+    int ldwork;
+
+    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
+                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+    CORE_ztsmqr(side, trans, m1, n1, m2, n2, k, ib,
+                A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+}
 
 /**
  *
@@ -131,7 +160,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_ztsmqr(const MORSE_option_t *options,
                        MORSE_enum side, MORSE_enum trans,
                        int m1, int n1, int m2, int n2, int k, int ib, int nb,
@@ -165,31 +193,3 @@ void MORSE_TASK_ztsmqr(const MORSE_option_t *options,
         sizeof(int),                        &ldwork, VALUE,
         0);
 }
-
-
-void CORE_ztsmqr_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum trans;
-    int m1;
-    int n1;
-    int m2;
-    int n2;
-    int k;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *V;
-    int ldv;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *WORK;
-    int ldwork;
-
-    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
-                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-    CORE_ztsmqr(side, trans, m1, n1, m2, n2, k, ib,
-                A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-}
diff --git a/runtime/quark/codelets/codelet_ztsmqr_hetra1.c b/runtime/quark/codelets/codelet_ztsmqr_hetra1.c
index 5e7277eef07f5a26ff0d7608c59cd71da4c6425e..4c06a3a4629546f8a2f08572b3ad224e438f931c 100644
--- a/runtime/quark/codelets/codelet_ztsmqr_hetra1.c
+++ b/runtime/quark/codelets/codelet_ztsmqr_hetra1.c
@@ -25,7 +25,9 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
 void CORE_ztsmqr_hetra1_quark(Quark *quark)
 {
diff --git a/runtime/quark/codelets/codelet_ztsqrt.c b/runtime/quark/codelets/codelet_ztsqrt.c
index 76546d31e37c9a07f8e77ab1a2f61ffddbf52d13..f3f09a3eada341478c802c9e8c482e1a09278df2 100644
--- a/runtime/quark/codelets/codelet_ztsqrt.c
+++ b/runtime/quark/codelets/codelet_ztsqrt.c
@@ -28,8 +28,27 @@
  * @precisions normal z -> c d s
  *
  **/
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_ztsqrt_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *TAU;
+    MORSE_Complex64_t *WORK;
+
+    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+    CORE_ztsqrt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+}
 
 /**
  *
@@ -93,7 +112,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_ztsqrt(const MORSE_option_t *options,
                        int m, int n, int ib, int nb,
                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
@@ -116,22 +134,3 @@ void MORSE_TASK_ztsqrt(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ib*nb,    NULL,          SCRATCH,
         0);
 }
-
-
-void CORE_ztsqrt_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *TAU;
-    MORSE_Complex64_t *WORK;
-
-    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-    CORE_ztsqrt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-}
diff --git a/runtime/quark/codelets/codelet_ztstrf.c b/runtime/quark/codelets/codelet_ztstrf.c
index 31e9c34ca7a013949af9145d5fb21531b6ad3008..d5a47f5fa895738d9d25fe76c5d5b88d5ab3fd61 100644
--- a/runtime/quark/codelets/codelet_ztstrf.c
+++ b/runtime/quark/codelets/codelet_ztstrf.c
@@ -28,10 +28,40 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
-#include "coreblas/include/cblas.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+#include "coreblas/cblas.h"
 #include <math.h>
 
+void CORE_ztstrf_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    int nb;
+    MORSE_Complex64_t *U;
+    int ldu;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *L;
+    int ldl;
+    int *IPIV;
+    MORSE_Complex64_t *WORK;
+    int ldwork;
+    MORSE_sequence_t *sequence;
+    MORSE_request_t *request;
+    MORSE_bool check_info;
+    int iinfo;
+
+    int info;
+
+    quark_unpack_args_17(quark, m, n, ib, nb, U, ldu, A, lda, L, ldl, IPIV, WORK, ldwork, sequence, request, check_info, iinfo);
+    CORE_ztstrf(m, n, ib, nb, U, ldu, A, lda, L, ldl, IPIV, WORK, ldwork, &info);
+    if (info != MORSE_SUCCESS && check_info)
+        RUNTIME_sequence_flush(quark, sequence, request, iinfo + info);
+}
+
 /***************************************************************************//**
  *
  * @ingroup CORE_MORSE_Complex64_t
@@ -98,7 +128,6 @@
  *              to solve a system of equations.
  *
  ******************************************************************************/
-
 void MORSE_TASK_ztstrf(const MORSE_option_t *options,
                        int m, int n, int ib, int nb,
                        const MORSE_desc_t *U, int Um, int Un, int ldu,
@@ -129,32 +158,3 @@ void MORSE_TASK_ztstrf(const MORSE_option_t *options,
         sizeof(int),                        &iinfo,         VALUE,
         0);
 }
-
-
-void CORE_ztstrf_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    int nb;
-    MORSE_Complex64_t *U;
-    int ldu;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *L;
-    int ldl;
-    int *IPIV;
-    MORSE_Complex64_t *WORK;
-    int ldwork;
-    MORSE_sequence_t *sequence;
-    MORSE_request_t *request;
-    MORSE_bool check_info;
-    int iinfo;
-
-    int info;
-
-    quark_unpack_args_17(quark, m, n, ib, nb, U, ldu, A, lda, L, ldl, IPIV, WORK, ldwork, sequence, request, check_info, iinfo);
-    CORE_ztstrf(m, n, ib, nb, U, ldu, A, lda, L, ldl, IPIV, WORK, ldwork, &info);
-    if (info != MORSE_SUCCESS && check_info)
-        RUNTIME_sequence_flush(quark, sequence, request, iinfo + info);
-}
diff --git a/runtime/quark/codelets/codelet_zttlqt.c b/runtime/quark/codelets/codelet_zttlqt.c
index 98b42550badcdc8053a720b467e32b04562ca32f..9ec2513320afcd10faf9f92300fc9df1062bfef6 100644
--- a/runtime/quark/codelets/codelet_zttlqt.c
+++ b/runtime/quark/codelets/codelet_zttlqt.c
@@ -28,8 +28,27 @@
  * @precisions normal z -> c d s
  *
  **/
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_zttlqt_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *TAU;
+    MORSE_Complex64_t *WORK;
+
+    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+    CORE_zttlqt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+}
 
 /**
  *
@@ -105,7 +124,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zttlqt(const MORSE_option_t *options,
                        int m, int n, int ib, int nb,
                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
@@ -128,22 +146,3 @@ void MORSE_TASK_zttlqt(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ib*nb,    NULL,          SCRATCH,
         0);
 }
-
-
-void CORE_zttlqt_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *TAU;
-    MORSE_Complex64_t *WORK;
-
-    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-    CORE_zttlqt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-}
diff --git a/runtime/quark/codelets/codelet_zttmlq.c b/runtime/quark/codelets/codelet_zttmlq.c
index cab48f44c9701c937ceeb596b87498a3bd4a7bdf..e2de201093fd517845994ba289ea1bbacc8b0ce7 100644
--- a/runtime/quark/codelets/codelet_zttmlq.c
+++ b/runtime/quark/codelets/codelet_zttmlq.c
@@ -28,7 +28,36 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zttmlq_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum trans;
+    int m1;
+    int n1;
+    int m2;
+    int n2;
+    int k;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *V;
+    int ldv;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *WORK;
+    int ldwork;
+
+    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
+                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+    CORE_zttmlq(side, trans, m1, n1, m2, n2, k, ib, A1, lda1,
+                A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+}
 
 /**
  *
@@ -123,7 +152,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zttmlq(const MORSE_option_t *options,
                        MORSE_enum side, MORSE_enum trans,
                        int m1, int n1, int m2, int n2, int k, int ib, int nb,
@@ -157,31 +185,3 @@ void MORSE_TASK_zttmlq(const MORSE_option_t *options,
         sizeof(int),                        &ldwork,    VALUE,
         0);
 }
-
-
-void CORE_zttmlq_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum trans;
-    int m1;
-    int n1;
-    int m2;
-    int n2;
-    int k;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *V;
-    int ldv;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *WORK;
-    int ldwork;
-
-    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
-                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-    CORE_zttmlq(side, trans, m1, n1, m2, n2, k, ib, A1, lda1,
-                A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-}
diff --git a/runtime/quark/codelets/codelet_zttmqr.c b/runtime/quark/codelets/codelet_zttmqr.c
index 849a5454d18cd3961205a47d95cf08cd63552314..ed4311d9955a7a2af10d478a403aa739a4ba2c53 100644
--- a/runtime/quark/codelets/codelet_zttmqr.c
+++ b/runtime/quark/codelets/codelet_zttmqr.c
@@ -28,7 +28,36 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zttmqr_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum trans;
+    int m1;
+    int n1;
+    int m2;
+    int n2;
+    int k;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *V;
+    int ldv;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *WORK;
+    int ldwork;
+
+    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
+                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+    CORE_zttmqr(side, trans, m1, n1, m2, n2, k, ib,
+                A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
+}
 
 /**
  *
@@ -123,7 +152,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zttmqr(const MORSE_option_t *options,
                        MORSE_enum side, MORSE_enum trans,
                        int m1, int n1, int m2, int n2, int k, int ib, int nb,
@@ -157,31 +185,3 @@ void MORSE_TASK_zttmqr(const MORSE_option_t *options,
         sizeof(int),                        &ldwork,    VALUE,
         0);
 }
-
-
-void CORE_zttmqr_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum trans;
-    int m1;
-    int n1;
-    int m2;
-    int n2;
-    int k;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *V;
-    int ldv;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *WORK;
-    int ldwork;
-
-    quark_unpack_args_18(quark, side, trans, m1, n1, m2, n2, k, ib,
-                         A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-    CORE_zttmqr(side, trans, m1, n1, m2, n2, k, ib,
-                A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork);
-}
diff --git a/runtime/quark/codelets/codelet_zttqrt.c b/runtime/quark/codelets/codelet_zttqrt.c
index 06106fc5a84299a1874116eb04670662470ecd69..c7397d924b1f7848d6b83c7115e97a34e83eca2f 100644
--- a/runtime/quark/codelets/codelet_zttqrt.c
+++ b/runtime/quark/codelets/codelet_zttqrt.c
@@ -28,8 +28,27 @@
  * @precisions normal z -> c d s
  *
  **/
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_zttqrt_quark(Quark *quark)
+{
+    int m;
+    int n;
+    int ib;
+    MORSE_Complex64_t *A1;
+    int lda1;
+    MORSE_Complex64_t *A2;
+    int lda2;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *TAU;
+    MORSE_Complex64_t *WORK;
+
+    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+    CORE_zttqrt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
+}
 
 /**
  *
@@ -105,7 +124,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zttqrt(const MORSE_option_t *options,
                        int m, int n, int ib, int nb,
                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
@@ -128,22 +146,3 @@ void MORSE_TASK_zttqrt(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ib*nb,    NULL,          SCRATCH,
         0);
 }
-
-
-void CORE_zttqrt_quark(Quark *quark)
-{
-    int m;
-    int n;
-    int ib;
-    MORSE_Complex64_t *A1;
-    int lda1;
-    MORSE_Complex64_t *A2;
-    int lda2;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *TAU;
-    MORSE_Complex64_t *WORK;
-
-    quark_unpack_args_11(quark, m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-    CORE_zttqrt(m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK);
-}
diff --git a/runtime/quark/codelets/codelet_zunmlq.c b/runtime/quark/codelets/codelet_zunmlq.c
index 1ae6b0899667469aad7ca8ba0376430622e50af2..53b52088223056871895698f74cd42e310888220 100644
--- a/runtime/quark/codelets/codelet_zunmlq.c
+++ b/runtime/quark/codelets/codelet_zunmlq.c
@@ -30,7 +30,32 @@
  *
  **/
 
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
+
+void CORE_zunmlq_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum trans;
+    int m;
+    int n;
+    int k;
+    int ib;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *C;
+    int ldc;
+    MORSE_Complex64_t *WORK;
+    int ldwork;
+
+    quark_unpack_args_14(quark, side, trans, m, n, k, ib,
+                         A, lda, T, ldt, C, ldc, WORK, ldwork);
+    CORE_zunmlq(side, trans, m, n, k, ib,
+                A, lda, T, ldt, C, ldc, WORK, ldwork);
+}
 
 /**
  *
@@ -115,7 +140,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zunmlq(const MORSE_option_t *options,
                        MORSE_enum side, MORSE_enum trans,
                        int m, int n, int k, int ib, int nb,
@@ -142,27 +166,3 @@ void MORSE_TASK_zunmlq(const MORSE_option_t *options,
         sizeof(int),                     &nb,    VALUE,
         0);
 }
-
-
-void CORE_zunmlq_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum trans;
-    int m;
-    int n;
-    int k;
-    int ib;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *C;
-    int ldc;
-    MORSE_Complex64_t *WORK;
-    int ldwork;
-
-    quark_unpack_args_14(quark, side, trans, m, n, k, ib,
-                         A, lda, T, ldt, C, ldc, WORK, ldwork);
-    CORE_zunmlq(side, trans, m, n, k, ib,
-                A, lda, T, ldt, C, ldc, WORK, ldwork);
-}
diff --git a/runtime/quark/codelets/codelet_zunmqr.c b/runtime/quark/codelets/codelet_zunmqr.c
index 01e9f150b909659302bd941f3cca8d80edc79154..8204632548475e7c97d645187d550eaabc9e06dd 100644
--- a/runtime/quark/codelets/codelet_zunmqr.c
+++ b/runtime/quark/codelets/codelet_zunmqr.c
@@ -28,8 +28,32 @@
  * @precisions normal z -> c d s
  *
  **/
+#include "chameleon_quark.h"
+#include "chameleon/morse_tasks_z.h"
+#include "coreblas/coreblas_z.h"
 
-#include "runtime/quark/include/morse_quark.h"
+void CORE_zunmqr_quark(Quark *quark)
+{
+    MORSE_enum side;
+    MORSE_enum trans;
+    int m;
+    int n;
+    int k;
+    int ib;
+    MORSE_Complex64_t *A;
+    int lda;
+    MORSE_Complex64_t *T;
+    int ldt;
+    MORSE_Complex64_t *C;
+    int ldc;
+    MORSE_Complex64_t *WORK;
+    int ldwork;
+
+    quark_unpack_args_14(quark, side, trans, m, n, k, ib,
+                         A, lda, T, ldt, C, ldc, WORK, ldwork);
+    CORE_zunmqr(side, trans, m, n, k, ib,
+                A, lda, T, ldt, C, ldc, WORK, ldwork);
+}
 
 /**
  *
@@ -115,7 +139,6 @@
  *          \retval <0 if -i, the i-th argument had an illegal value
  *
  ******************************************************************************/
-
 void MORSE_TASK_zunmqr(const MORSE_option_t *options,
                        MORSE_enum side, MORSE_enum trans,
                        int m, int n, int k, int ib, int nb,
@@ -142,27 +165,3 @@ void MORSE_TASK_zunmqr(const MORSE_option_t *options,
         sizeof(int),                     &nb,    VALUE,
         0);
 }
-
-
-void CORE_zunmqr_quark(Quark *quark)
-{
-    MORSE_enum side;
-    MORSE_enum trans;
-    int m;
-    int n;
-    int k;
-    int ib;
-    MORSE_Complex64_t *A;
-    int lda;
-    MORSE_Complex64_t *T;
-    int ldt;
-    MORSE_Complex64_t *C;
-    int ldc;
-    MORSE_Complex64_t *WORK;
-    int ldwork;
-
-    quark_unpack_args_14(quark, side, trans, m, n, k, ib,
-                         A, lda, T, ldt, C, ldc, WORK, ldwork);
-    CORE_zunmqr(side, trans, m, n, k, ib,
-                A, lda, T, ldt, C, ldc, WORK, ldwork);
-}
diff --git a/runtime/quark/control/runtime_async.c b/runtime/quark/control/runtime_async.c
index 8b7fc2c78f4e6d936aa5893c1649fc641f813c33..78692bba577fb10a1f2c131158249620071f1fe2 100644
--- a/runtime/quark/control/runtime_async.c
+++ b/runtime/quark/control/runtime_async.c
@@ -24,7 +24,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 /** *****************************************************************************
  *  Create a sequence
diff --git a/runtime/quark/control/runtime_context.c b/runtime/quark/control/runtime_context.c
index 1352ad5116896473853d25fe836e591b274d3026..8dca38a9aa53d8903119a15857c404c164205f4a 100644
--- a/runtime/quark/control/runtime_context.c
+++ b/runtime/quark/control/runtime_context.c
@@ -23,7 +23,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 /*******************************************************************************
  *  Create new context
diff --git a/runtime/quark/control/runtime_control.c b/runtime/quark/control/runtime_control.c
index fc4639fbe42f95be253bd074899e186f738eca44..a92f726d02899bf13b4edac6bcf5599c840d7334 100644
--- a/runtime/quark/control/runtime_control.c
+++ b/runtime/quark/control/runtime_control.c
@@ -24,7 +24,7 @@
  **/
 #include <stdio.h>
 #include <stdlib.h>
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 /*******************************************************************************
  * Thread rank.
diff --git a/runtime/quark/control/runtime_descriptor.c b/runtime/quark/control/runtime_descriptor.c
index 6e4dfa9d20ede9b54e254972890e5d297df4b53e..b1e47144b2b2bdac64d9e46ebdcbd7fd3f8ca6f3 100644
--- a/runtime/quark/control/runtime_descriptor.c
+++ b/runtime/quark/control/runtime_descriptor.c
@@ -23,7 +23,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 void RUNTIME_user_tag_size(int user_tag_width, int user_tag_sep) {
   (void)user_tag_width;
diff --git a/runtime/quark/control/runtime_options.c b/runtime/quark/control/runtime_options.c
index 9cd642706f563cf659449ff84dcff0448ff0c3b5..827e2b4b129a6efc2fffe0e56aad02b985fa419e 100644
--- a/runtime/quark/control/runtime_options.c
+++ b/runtime/quark/control/runtime_options.c
@@ -24,7 +24,7 @@
  **/
 #include <stdio.h>
 #include <stdlib.h>
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 void RUNTIME_options_init( MORSE_option_t *options, MORSE_context_t *morse,
                            MORSE_sequence_t *sequence, MORSE_request_t *request )
diff --git a/runtime/quark/control/runtime_profiling.c b/runtime/quark/control/runtime_profiling.c
index 0db7e55137b161719747d2d3f4866a4288167256..552ee387c4945c59d1645cbd21ce43435cda9bab 100644
--- a/runtime/quark/control/runtime_profiling.c
+++ b/runtime/quark/control/runtime_profiling.c
@@ -22,7 +22,7 @@
  * @date 2011-10-29 
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 #if defined( _WIN32 ) || defined( _WIN64 )
 #include <windows.h>
diff --git a/runtime/quark/control/runtime_zlocality.c b/runtime/quark/control/runtime_zlocality.c
index 1cf57754bb7df00416b329094c38b4c81a03a9b7..4d5ed31f7d4ecca97919c84985c1d95347c2fb89 100644
--- a/runtime/quark/control/runtime_zlocality.c
+++ b/runtime/quark/control/runtime_zlocality.c
@@ -23,7 +23,7 @@
  *  @precisions normal z -> s d c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 void RUNTIME_zlocality_allrestrict( uint32_t where )
 {
diff --git a/runtime/quark/control/runtime_zprofiling.c b/runtime/quark/control/runtime_zprofiling.c
index 29fdb7797fe2b8a5ae29d1b824bdaa0a6ff742dd..519dc9543e4cb22d610188d517cc4674c36c3b6b 100644
--- a/runtime/quark/control/runtime_zprofiling.c
+++ b/runtime/quark/control/runtime_zprofiling.c
@@ -25,7 +25,7 @@
  *  @precisions normal z -> s d c
  *
  **/
-#include "runtime/quark/include/morse_quark.h"
+#include "chameleon_quark.h"
 
 void RUNTIME_zdisplay_allprofile()
 {
diff --git a/runtime/quark/include/morse_quark.h b/runtime/quark/include/chameleon_quark.h
similarity index 88%
rename from runtime/quark/include/morse_quark.h
rename to runtime/quark/include/chameleon_quark.h
index 2c4dc590b80725a669b731606761b240a0de9579..50d11f52188dcdd8759820714aa9486cfb5be11b 100644
--- a/runtime/quark/include/morse_quark.h
+++ b/runtime/quark/include/chameleon_quark.h
@@ -10,7 +10,7 @@
 
 /**
  *
- * @file morse_quark.h
+ * @file chameleon_quark.h
  *
  *  MORSE codelets kernel
  *  MORSE is a software package provided by Univ. of Tennessee,
@@ -27,9 +27,8 @@
 #define _MORSE_QUARK_H_
 
 #include <quark.h>
-#include "coreblas/include/coreblas.h"
-#include "runtime/quark/include/quark_blas.h"
-#include "runtime/quark/include/core_blas_dag.h"
+#include "coreblas.h"
+#include "core_blas_dag.h"
 
 #include "control/common.h"
 
diff --git a/runtime/quark/include/quark_blas.h b/runtime/quark/include/quark_blas.h
deleted file mode 100644
index 56c97922bbd6dc2736c3cdc2cf226e933ccb9a14..0000000000000000000000000000000000000000
--- a/runtime/quark/include/quark_blas.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- *
- * @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.
- *
- **/
-
-/**
- *
- * @file quark_blas.h
- *
- *  MORSE auxiliary routines
- *  MORSE is a software package provided by Univ. of Tennessee,
- *  Univ. of California Berkeley and Univ. of Colorado Denver
- *
- * @version 0.9.0
- * @author Jakub Kurzak
- * @author Hatem Ltaief
- * @date 2010-11-15
- *
- **/
-#ifndef _QUARK_BLAS_H_
-#define _QUARK_BLAS_H_
-
-#include "coreblas/include/cblas.h"
-
-#include "runtime/quark/include/quark_zblas.h"
-#include "runtime/quark/include/quark_dblas.h"
-#include "runtime/quark/include/quark_cblas.h"
-#include "runtime/quark/include/quark_sblas.h"
-#include "runtime/quark/include/quark_zcblas.h"
-#include "runtime/quark/include/quark_dsblas.h"
-
-void CORE_ztile_zero_quark(Quark *quark);
-void CORE_dtile_zero_quark(Quark *quark);
-void CORE_ctile_zero_quark(Quark *quark);
-void CORE_stile_zero_quark(Quark *quark);
-
-#endif
diff --git a/runtime/quark/include/quark_zblas.h b/runtime/quark/include/quark_zblas.h
deleted file mode 100644
index e5fe96bac53a1ab8c8eea44c212fc75d5309788f..0000000000000000000000000000000000000000
--- a/runtime/quark/include/quark_zblas.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- *
- * @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.
- *
- **/
-
-/**
- *
- * @file quark_zblas.h
- *
- *  MORSE auxiliary routines
- *  MORSE is a software package provided by Univ. of Tennessee,
- *  Univ. of California Berkeley and Univ. of Colorado Denver
- *
- * @version 2.5.0
- * @comment This file has been automatically generated
- *          from Plasma 2.5.0 for MORSE 1.0.0
- * @author Jakub Kurzak
- * @author Hatem Ltaief
- * @author Azzam Haidar
- * @author Mathieu Faverge
- * @author Emmanuel Agullo
- * @author Cedric Castagnede
- * @date 2010-11-15
- * @precisions normal z -> c d s
- *
- **/
-#ifndef _QUARK_ZBLAS_H_
-#define _QUARK_ZBLAS_H_
-
-#define COMPLEX
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-/** ****************************************************************************
- *  Declarations of QUARK wrappers (called by QUARK) - alphabetical order
- **/
-void CORE_dzasum_quark(Quark *quark);
-void CORE_dzasum_f1_quark(Quark *quark);
-void CORE_zaxpy_quark(Quark *quark);
-void CORE_zgeadd_quark(Quark *quark);
-void CORE_zbrdalg_quark(Quark *quark);
-void CORE_zgelqt_quark(Quark *quark);
-void CORE_zgemm_quark(Quark *quark);
-void CORE_zgeqrt_quark(Quark *quark);
-void CORE_zgessm_quark(Quark *quark);
-void CORE_zgessq_quark(Quark *quark);
-void CORE_zgetrf_quark(Quark *quark);
-void CORE_zgetrf_incpiv_quark(Quark *quark);
-void CORE_zgetrf_nopiv_quark(Quark *quark);
-void CORE_zgetrf_reclap_quark(Quark *quark);
-void CORE_zgetrf_rectil_quark(Quark* quark);
-void CORE_zgetrip_quark(Quark *quark);
-void CORE_zgetrip_f1_quark(Quark *quark);
-void CORE_zgetrip_f2_quark(Quark *quark);
-#ifdef COMPLEX
-void CORE_zhemm_quark(Quark *quark);
-void CORE_zherk_quark(Quark *quark);
-void CORE_zher2k_quark(Quark *quark);
-#endif
-void CORE_zhegst_quark(Quark *quark);
-void CORE_zherfb_quark(Quark *quark);
-void CORE_zhessq_quark(Quark *quark);
-void CORE_zlatro_quark(Quark *quark);
-void CORE_zlange_quark(Quark *quark);
-void CORE_zlange_max_quark(Quark *quark);
-#ifdef COMPLEX
-void CORE_zlanhe_quark(Quark *quark);
-#endif
-void CORE_zlansy_quark(Quark *quark);
-void CORE_zlantr_quark(Quark *quark);
-void CORE_zlaset_quark(Quark *quark);
-void CORE_zlaset2_quark(Quark *quark);
-void CORE_zlatro_quark(Quark *quark);
-void CORE_zlauum_quark(Quark *quark);
-void CORE_zpamm_quark(Quark *quark);
-void CORE_zplghe_quark(Quark *quark);
-void CORE_zplgsy_quark(Quark *quark);
-void CORE_zplrnt_quark(Quark *quark);
-void CORE_zplssq_quark(Quark *quark);
-void CORE_zplssq2_quark(Quark *quark);
-void CORE_zpotrf_quark(Quark *quark);
-void CORE_zshift_quark(Quark *quark);
-void CORE_zshiftw_quark(Quark *quark);
-void CORE_zssssm_quark(Quark *quark);
-void CORE_zsymm_quark(Quark *quark);
-void CORE_zsyrk_quark(Quark *quark);
-void CORE_zsyr2k_quark(Quark *quark);
-void CORE_zsyssq_quark(Quark *quark);
-void CORE_zsytrf_nopiv_quark(Quark *quark);
-void CORE_zswpab_quark(Quark *quark);
-void CORE_zswptr_ontile_quark(Quark *quark);
-void CORE_ztrasm_quark(Quark *quark);
-void CORE_ztrdalg_quark(Quark *quark);
-void CORE_ztrmm_quark(Quark *quark);
-void CORE_ztrsm_quark(Quark *quark);
-void CORE_ztrssq_quark(Quark *quark);
-void CORE_ztrtri_quark(Quark *quark);
-void CORE_ztslqt_quark(Quark *quark);
-void CORE_ztsmlq_quark(Quark *quark);
-void CORE_ztsmlq_hetra1_quark(Quark *quark);
-void CORE_ztsmlq_corner_quark(Quark *quark);
-void CORE_ztsmqr_quark(Quark *quark);
-void CORE_ztsmqr_hetra1_quark(Quark *quark);
-void CORE_ztsmqr_corner_quark(Quark *quark);
-void CORE_ztsqrt_quark(Quark *quark);
-void CORE_ztstrf_quark(Quark *quark);
-void CORE_zttmqr_quark(Quark *quark);
-void CORE_zttqrt_quark(Quark *quark);
-void CORE_zttmlq_quark(Quark *quark);
-void CORE_zttlqt_quark(Quark *quark);
-void CORE_zunmlq_quark(Quark *quark);
-void CORE_zunmqr_quark(Quark *quark);
-
-void CORE_zlaswp_quark(Quark* quark);
-void CORE_zlaswp_f2_quark(Quark* quark);
-void CORE_zlaswp_ontile_quark(Quark *quark);
-void CORE_zlaswp_ontile_f2_quark(Quark *quark);
-void CORE_zlaswpc_ontile_quark(Quark *quark);
-void CORE_ztrmm_p2_quark(Quark* quark);
-void CORE_zgemm_f2_quark(Quark* quark);
-void CORE_zgemm_p2_quark(Quark* quark);
-void CORE_zgemm_p2f1_quark(Quark* quark);
-void CORE_zgemm_p3_quark(Quark* quark);
-
-void CORE_zbuild_quark(Quark *quark);
-
-#ifdef __cplusplus
-}
-#endif
-
-#undef COMPLEX
-
-#endif
diff --git a/runtime/quark/include/quark_zcblas.h b/runtime/quark/include/quark_zcblas.h
deleted file mode 100644
index 2f14a3ae6a6fadf1346b5e95e9fcc370c6d49f44..0000000000000000000000000000000000000000
--- a/runtime/quark/include/quark_zcblas.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- *
- * @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.
- *
- **/
-
-/**
- *
- * @file quark_zcblas.h
- *
- *  MORSE auxiliary routines
- *  MORSE is a software package provided by Univ. of Tennessee,
- *  Univ. of California Berkeley and Univ. of Colorado Denver
- *
- * @version 2.5.0
- * @comment This file has been automatically generated
- *          from Plasma 2.5.0 for MORSE 1.0.0
- * @author Jakub Kurzak
- * @author Hatem Ltaief
- * @author Mathieu Faverge
- * @author Emmanuel Agullo
- * @author Cedric Castagnede
- * @date 2010-11-15
- * @precisions mixed zc -> ds
- *
- **/
-#ifndef _QUARK_ZCBLAS_H_
-#define _QUARK_ZCBLAS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-/** ****************************************************************************
- *  Declarations of QUARK wrappers (called by QUARK) - alphabetical order
- **/
-void CORE_clag2z_quark(Quark *quark);
-void CORE_zlag2c_quark(Quark *quark);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt
index f2109a8ce4956edc2a27b3b0b5d9e8912e6a7855..ba66f9a325c195bd1c33ecf19bcd514aa296f323 100644
--- a/runtime/starpu/CMakeLists.txt
+++ b/runtime/starpu/CMakeLists.txt
@@ -1,10 +1,10 @@
 ###
 #
-# @copyright (c) 2009-2014 The University of Tennessee and The University
+# @copyright (c) 2009-2015 The University of Tennessee and The University
 #                          of Tennessee Research Foundation.
 #                          All rights reserved.
-# @copyright (c) 2012-2016 Inria. All rights reserved.
-# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+# @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+#                          Univ. Bordeaux. All rights reserved.
 #
 ###
 #
@@ -26,81 +26,96 @@
 #  @date 13-07-2012
 #
 ###
-
 cmake_minimum_required(VERSION 2.8)
 
+include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include )
+include_directories( ${CMAKE_CURRENT_BINARY_DIR}/include )
+
+configure_file("include/chameleon_starpu.h.in"
+               "include/chameleon_starpu.h"
+               @ONLY)
+
 # Generate headers for all possible precisions
 # --------------------------------------------
 set(RUNTIME_HDRS_GENERATED "")
 set(ZHDR
   include/runtime_codelet_z.h
-)
+  )
 
 precisions_rules_py(RUNTIME_HDRS_GENERATED "${ZHDR}"
-                    PRECISIONS "s;d;c;z;ds;zc"
-                    TARGETDIR  "include")
+  PRECISIONS "s;d;c;z;ds;zc"
+  TARGETDIR  "include")
 
 # Define the list of headers
 # --------------------------
 set(RUNTIME_HDRS
-    include/morse_starpu.h
-    include/runtime_codelet_profile.h
-    include/runtime_codelets.h
-    include/runtime_profiling.h
-    include/runtime_workspace.h
-    ${RUNTIME_HDRS_GENERATED}
-    )
+  ${CMAKE_CURRENT_BINARY_DIR}/include/chameleon_starpu.h
+  include/runtime_codelet_profile.h
+  include/runtime_codelets.h
+  include/runtime_profiling.h
+  include/runtime_workspace.h
+  )
+
+# Add generated headers
+# ---------------------
+foreach( hdr_file ${RUNTIME_HDRS_GENERATED} )
+  list(APPEND RUNTIME_HDRS ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
+endforeach()
 
 # Force generation of headers
 # ---------------------------
-add_custom_target(runtime_starpu_include ALL SOURCES ${RUNTIME_HDRS})
+add_custom_target(
+  runtime_starpu_include
+  ALL SOURCES ${RUNTIME_HDRS})
 
-# installation
+# Installation
 # ------------
-#install(FILES ${RUNTIME_HDRS}
-#        DESTINATION include)
+install(
+  FILES ${RUNTIME_HDRS}
+  DESTINATION include/runtime/starpu )
 
-# Generate the morse common for all possible precisions
-# -----------------------------------------------------
+# Generate the Chameleon common for all possible precisions
+# ---------------------------------------------------------
 set(RUNTIME_COMMON_GENERATED "")
 set(ZSRC
-    control/runtime_zprofiling.c
-    control/runtime_zlocality.c
-    )
+  control/runtime_zprofiling.c
+  control/runtime_zlocality.c
+  )
 
-precisions_rules_py(RUNTIME_COMMON_GENERATED "${ZSRC}"
-                    PRECISIONS "${CHAMELEON_PRECISION}"
-                    TARGETDIR "control")
+precisions_rules_py(
+  RUNTIME_COMMON_GENERATED "${ZSRC}"
+  PRECISIONS "${CHAMELEON_PRECISION}"
+  TARGETDIR "control")
 
 set(RUNTIME_COMMON
-    control/runtime_async.c
-    control/runtime_context.c
-    control/runtime_control.c
-    control/runtime_descriptor.c
-    control/runtime_options.c
-    control/runtime_profiling.c
-    control/runtime_workspace.c
-    codelets/codelet_dataflush.c
-    ${RUNTIME_COMMON_GENERATED}
-    )
+  control/runtime_async.c
+  control/runtime_context.c
+  control/runtime_control.c
+  control/runtime_descriptor.c
+  control/runtime_options.c
+  control/runtime_profiling.c
+  control/runtime_workspace.c
+  codelets/codelet_dataflush.c
+  ${RUNTIME_COMMON_GENERATED}
+  )
 
 set(flags_to_add "")
 foreach(_prec ${CHAMELEON_PRECISION})
-    set(flags_to_add "${flags_to_add} -DPRECISION_${_prec}")
+  set(flags_to_add "${flags_to_add} -DPRECISION_${_prec}")
 endforeach()
 set_source_files_properties(control/runtime_profiling.c PROPERTIES COMPILE_FLAGS "${flags_to_add}")
 
-# Generate the morse sources for all possible precisions
-# ------------------------------------------------------
+# Generate the Chameleon sources for all possible precisions
+# ----------------------------------------------------------
 set(RUNTIME_SRCS_GENERATED "")
 set(ZSRC
-    codelets/codelet_zcallback.c
-    ${CODELETS_ZSRC}
-    )
+  codelets/codelet_zcallback.c
+  ${CODELETS_ZSRC}
+  )
 
 precisions_rules_py(RUNTIME_SRCS_GENERATED "${ZSRC}"
-                    PRECISIONS "${CHAMELEON_PRECISION}"
-                    TARGETDIR "codelets")
+  PRECISIONS "${CHAMELEON_PRECISION}"
+  TARGETDIR "codelets")
 
 set(RUNTIME_SRCS
   ${RUNTIME_COMMON}
@@ -113,32 +128,34 @@ add_library(chameleon_starpu ${RUNTIME_SRCS})
 set_property(TARGET chameleon_starpu PROPERTY LINKER_LANGUAGE Fortran)
 set_property(TARGET chameleon_starpu PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 
-target_link_libraries(chameleon_starpu ${STARPU_LIBRARIES_DEP})
+target_link_libraries(chameleon_starpu
+  ${STARPU_LIBRARIES_DEP})
 if (NOT CHAMELEON_SIMULATION)
-    target_link_libraries(chameleon_starpu coreblas)
-endif()
-if(CHAMELEON_USE_CUDA AND NOT CHAMELEON_SIMULATION)
-    target_link_libraries(chameleon_starpu cudablas)
-endif(CHAMELEON_USE_CUDA AND NOT CHAMELEON_SIMULATION)
+  target_link_libraries(chameleon_starpu
+    coreblas)
+  if(CHAMELEON_USE_CUDA)
+    target_link_libraries(chameleon_starpu
+      cudablas)
+  endif(CHAMELEON_USE_CUDA)
+endif(NOT CHAMELEON_SIMULATION)
 
 add_dependencies(chameleon_starpu
   chameleon_include
-  coreblas_include
   control_include
   runtime_starpu_include
-)
+  )
 if (NOT CHAMELEON_SIMULATION)
-    add_dependencies(chameleon_starpu coreblas_include)
-endif()
-
-if (CHAMELEON_USE_CUDA AND NOT CHAMELEON_SIMULATION)
+  add_dependencies(chameleon_starpu coreblas_include)
+  if (CHAMELEON_USE_CUDA)
     add_dependencies(chameleon_starpu cudablas_include)
+  endif()
 endif()
 
 # installation
 # ------------
 install(TARGETS chameleon_starpu
-        DESTINATION lib)
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib)
 
 ###
 ### END CMakeLists.txt
diff --git a/runtime/starpu/codelets/codelet_dataflush.c b/runtime/starpu/codelets/codelet_dataflush.c
index c1e6c2fb90fdc1957eb6e7223fdc35296029d76c..2e43d5ec1f324151b3429b5c3726bf8bf529b186 100644
--- a/runtime/starpu/codelets/codelet_dataflush.c
+++ b/runtime/starpu/codelets/codelet_dataflush.c
@@ -24,7 +24,8 @@
  * @date 2014-02-05
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
+#include "chameleon/morse_tasks.h"
 
 #ifdef HAVE_STARPU_DATA_WONT_USE
 #elif defined HAVE_STARPU_IDLE_PREFETCH
diff --git a/runtime/starpu/codelets/codelet_zasum.c b/runtime/starpu/codelets/codelet_zasum.c
index 2323b95e6d2a4e72ee6a0b13842c7d31e678132a..d73861beb853e2950c65561ad1e3d2a4c20c46c8 100644
--- a/runtime/starpu/codelets/codelet_zasum.c
+++ b/runtime/starpu/codelets/codelet_zasum.c
@@ -24,9 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
-#include "runtime_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_dzasum(const MORSE_option_t *options,
                        MORSE_enum storev, MORSE_enum uplo, int M, int N,
diff --git a/runtime/starpu/codelets/codelet_zaxpy.c b/runtime/starpu/codelets/codelet_zaxpy.c
index 56b03bfe80a83d0cf9856e72d261112cb510fff5..b41925a34e8af57186f499bd151622bd41d62c7b 100644
--- a/runtime/starpu/codelets/codelet_zaxpy.c
+++ b/runtime/starpu/codelets/codelet_zaxpy.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zaxpy(const MORSE_option_t *options,
                       int M, MORSE_Complex64_t alpha,
diff --git a/runtime/starpu/codelets/codelet_zbuild.c b/runtime/starpu/codelets/codelet_zbuild.c
index 6271384564537e164713f4c5d1fc45a03117509b..9cc59fd4d13d98688192523c294c45fabc0c2f0f 100644
--- a/runtime/starpu/codelets/codelet_zbuild.c
+++ b/runtime/starpu/codelets/codelet_zbuild.c
@@ -29,10 +29,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
-
-
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zbuild( const MORSE_option_t *options,
                         const MORSE_desc_t *A, int Am, int An, int lda,
diff --git a/runtime/starpu/codelets/codelet_zcallback.c b/runtime/starpu/codelets/codelet_zcallback.c
index aa4d4dda3244fc7d5f507088a6c155bf97a7a0ce..905bc8a9a86da0bfe5282135eeadf2b1a9bf605a 100644
--- a/runtime/starpu/codelets/codelet_zcallback.c
+++ b/runtime/starpu/codelets/codelet_zcallback.c
@@ -25,8 +25,8 @@
  *  @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 CHAMELEON_CL_CB(zasum,         starpu_matrix_get_nx(task->handles[0]), starpu_matrix_get_ny(task->handles[0]), 0,                                      M*N)
 CHAMELEON_CL_CB(zaxpy,         starpu_matrix_get_nx(task->handles[0]), starpu_matrix_get_nx(task->handles[1]), 0,                                      M)
diff --git a/runtime/starpu/codelets/codelet_zgeadd.c b/runtime/starpu/codelets/codelet_zgeadd.c
index a65b6daf5345bf539002703dea82ff61d9244905..9597ec9f1c606a581f89976565765e734981ccbb 100644
--- a/runtime/starpu/codelets/codelet_zgeadd.c
+++ b/runtime/starpu/codelets/codelet_zgeadd.c
@@ -26,8 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  ******************************************************************************
diff --git a/runtime/starpu/codelets/codelet_zgelqt.c b/runtime/starpu/codelets/codelet_zgelqt.c
index e215ce20f9898969a609b186b433522efcf77126..422d14327bdbf0d0a2e763180b6011d66c5a85ab 100644
--- a/runtime/starpu/codelets/codelet_zgelqt.c
+++ b/runtime/starpu/codelets/codelet_zgelqt.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zgemm.c b/runtime/starpu/codelets/codelet_zgemm.c
index 90fe880a741d756713ef0083fd4a73a83f1e225f..eb439b162fa25804dacf1a587ee13aee9a6f42fb 100644
--- a/runtime/starpu/codelets/codelet_zgemm.c
+++ b/runtime/starpu/codelets/codelet_zgemm.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zgeqrt.c b/runtime/starpu/codelets/codelet_zgeqrt.c
index 595bafa1b86321d57ec47e76f2dfdd96922801d9..e5ecb4c451848e7c793cd8b641bcb1153c4b6bef 100644
--- a/runtime/starpu/codelets/codelet_zgeqrt.c
+++ b/runtime/starpu/codelets/codelet_zgeqrt.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zgessm.c b/runtime/starpu/codelets/codelet_zgessm.c
index 1b5a72908c1b76b9a1b34b46d62e3a65cbf02153..97bc41a51a4907f967d2362854c43363076d2fd5 100644
--- a/runtime/starpu/codelets/codelet_zgessm.c
+++ b/runtime/starpu/codelets/codelet_zgessm.c
@@ -28,10 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zgessq.c b/runtime/starpu/codelets/codelet_zgessq.c
index 094c7ba09e7da55c4774cd6d6ce6f68805e6cd16..67883aa7eb3338124563b725e9cbdba9815bc97d 100644
--- a/runtime/starpu/codelets/codelet_zgessq.c
+++ b/runtime/starpu/codelets/codelet_zgessq.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zgessq( const MORSE_option_t *options,
                         int m, int n,
diff --git a/runtime/starpu/codelets/codelet_zgetrf.c b/runtime/starpu/codelets/codelet_zgetrf.c
index e9b5327bfc6ef02a5dbec929ed096cac06ae2dc7..597353b22be33595441fc9a220700001a22296d9 100644
--- a/runtime/starpu/codelets/codelet_zgetrf.c
+++ b/runtime/starpu/codelets/codelet_zgetrf.c
@@ -26,9 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zgetrf(const MORSE_option_t *options,
                        int m, int n, int nb,
diff --git a/runtime/starpu/codelets/codelet_zgetrf_incpiv.c b/runtime/starpu/codelets/codelet_zgetrf_incpiv.c
index bc91e972a6d224bd783a0dc1ba02cfae6fdbf734..2c8a49a98c150e7a170aa2ba6dce0a8dae6e08b3 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_incpiv.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zgetrf_nopiv.c b/runtime/starpu/codelets/codelet_zgetrf_nopiv.c
index 8ca85664bf98c89e205b848e96642a6a0d859175..42b3b91a4e8925da39af9bc96f7b5ebde1f3921a 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_nopiv.c
@@ -25,8 +25,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zhe2ge.c b/runtime/starpu/codelets/codelet_zhe2ge.c
index 6551a8fbb0fe55b06a341c55f0e8aa17345bb59a..9af2ab510230d7d246153657fae314426f0f786e 100644
--- a/runtime/starpu/codelets/codelet_zhe2ge.c
+++ b/runtime/starpu/codelets/codelet_zhe2ge.c
@@ -20,8 +20,8 @@
  *
  **/
 
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zhemm.c b/runtime/starpu/codelets/codelet_zhemm.c
index 97f0adcc5b3fbf1c275e5feded3fa258b77ed12f..d800964e7912b8e2ca219611f00730ed17820c06 100644
--- a/runtime/starpu/codelets/codelet_zhemm.c
+++ b/runtime/starpu/codelets/codelet_zhemm.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zher2k.c b/runtime/starpu/codelets/codelet_zher2k.c
index 7c5509240eb3893fab6e471a2d7beed51159f41c..0ff45dd33581e96bd4f19604c643c772d4824ca2 100644
--- a/runtime/starpu/codelets/codelet_zher2k.c
+++ b/runtime/starpu/codelets/codelet_zher2k.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zherfb.c b/runtime/starpu/codelets/codelet_zherfb.c
index 8b6c5d8d37e80d64da4d526554faaf2d0e67d4be..f4898a60c386fc72fc32103aafd996596d3fe308 100644
--- a/runtime/starpu/codelets/codelet_zherfb.c
+++ b/runtime/starpu/codelets/codelet_zherfb.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zherk.c b/runtime/starpu/codelets/codelet_zherk.c
index 0576cef52ac2abcca50dbfc36ed5422746f4c5a1..e6a8e29b3b2a9b387b3af9698d26bb463b498f24 100644
--- a/runtime/starpu/codelets/codelet_zherk.c
+++ b/runtime/starpu/codelets/codelet_zherk.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zhessq.c b/runtime/starpu/codelets/codelet_zhessq.c
index 8f9ddf984bfb5533e6c93e6c9eabd636cd7cddd5..dbb036a5ad1e1d35cae7b9d54abd16650cff6527 100644
--- a/runtime/starpu/codelets/codelet_zhessq.c
+++ b/runtime/starpu/codelets/codelet_zhessq.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zhessq( const MORSE_option_t *options,
                         MORSE_enum uplo, int n,
diff --git a/runtime/starpu/codelets/codelet_zlacpy.c b/runtime/starpu/codelets/codelet_zlacpy.c
index 99274e18383f14a36c6e117528eeabbf483aaf49..eae3ea4650f63d0d86ba72e87fedf2eba19c8486 100644
--- a/runtime/starpu/codelets/codelet_zlacpy.c
+++ b/runtime/starpu/codelets/codelet_zlacpy.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zlag2c.c b/runtime/starpu/codelets/codelet_zlag2c.c
index f09c80846b3ba17e2decea7b2aed145c1c858c66..de49959497e4d1328289cd5ceb65969822975873 100644
--- a/runtime/starpu/codelets/codelet_zlag2c.c
+++ b/runtime/starpu/codelets/codelet_zlag2c.c
@@ -26,9 +26,8 @@
  * @precisions mixed zc -> ds
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zlange.c b/runtime/starpu/codelets/codelet_zlange.c
index 9571eec74fdafabafd27866d5de9a040857fdad8..f2d412623e2da3b645dba787bf098e03f7d06373 100644
--- a/runtime/starpu/codelets/codelet_zlange.c
+++ b/runtime/starpu/codelets/codelet_zlange.c
@@ -26,9 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zlange(const MORSE_option_t *options,
                        MORSE_enum norm, int M, int N, int NB,
diff --git a/runtime/starpu/codelets/codelet_zlanhe.c b/runtime/starpu/codelets/codelet_zlanhe.c
index 37725f178d09623af6933cc63217a0ddb8d8ea14..b5560132a5e491d927a6d7db407d28ba5dbb854f 100644
--- a/runtime/starpu/codelets/codelet_zlanhe.c
+++ b/runtime/starpu/codelets/codelet_zlanhe.c
@@ -26,8 +26,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zlanhe(const MORSE_option_t *options,
                        MORSE_enum norm, MORSE_enum uplo, int N, int NB,
diff --git a/runtime/starpu/codelets/codelet_zlansy.c b/runtime/starpu/codelets/codelet_zlansy.c
index dd01215c23e4da1334215d5e54124b1f51bda397..43be8209f0fe59453f69b132f0c8181104f38a94 100644
--- a/runtime/starpu/codelets/codelet_zlansy.c
+++ b/runtime/starpu/codelets/codelet_zlansy.c
@@ -26,9 +26,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zlansy(const MORSE_option_t *options,
                        MORSE_enum norm, MORSE_enum uplo, int N, int NB,
diff --git a/runtime/starpu/codelets/codelet_zlantr.c b/runtime/starpu/codelets/codelet_zlantr.c
index e950fd7e2606f3a19462cf89bffcd83066d38170..f4a542cf0647b25e8c0ab348dfa6c599ac15868b 100644
--- a/runtime/starpu/codelets/codelet_zlantr.c
+++ b/runtime/starpu/codelets/codelet_zlantr.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zlantr(const MORSE_option_t *options,
                        MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag,
diff --git a/runtime/starpu/codelets/codelet_zlascal.c b/runtime/starpu/codelets/codelet_zlascal.c
index 614962ed4e5420d504e64a2f0ba4b10df3fa0e24..518278ee71b7fe09ba41ab218192b40e34be5f16 100644
--- a/runtime/starpu/codelets/codelet_zlascal.c
+++ b/runtime/starpu/codelets/codelet_zlascal.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zlaset.c b/runtime/starpu/codelets/codelet_zlaset.c
index fcba9efaa1de298206aefb5afa87afb065ab8eab..b4be0033479fc3c82be90f70d9c4fb23739a0449 100644
--- a/runtime/starpu/codelets/codelet_zlaset.c
+++ b/runtime/starpu/codelets/codelet_zlaset.c
@@ -27,9 +27,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 
 /**
diff --git a/runtime/starpu/codelets/codelet_zlaset2.c b/runtime/starpu/codelets/codelet_zlaset2.c
index 0d5efc1de99e772b81572793b1ec21a0aa6d2e9d..4825f9cc9f121d794c94a3793768eaba64353a7e 100644
--- a/runtime/starpu/codelets/codelet_zlaset2.c
+++ b/runtime/starpu/codelets/codelet_zlaset2.c
@@ -27,9 +27,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 
 /**
diff --git a/runtime/starpu/codelets/codelet_zlatro.c b/runtime/starpu/codelets/codelet_zlatro.c
index 9faa75eb64cafc605c736e0f79e17f3a15aabf1f..4b08a31921cca7a7fd0a012b0b8dc425dc1c1968 100644
--- a/runtime/starpu/codelets/codelet_zlatro.c
+++ b/runtime/starpu/codelets/codelet_zlatro.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zlauum.c b/runtime/starpu/codelets/codelet_zlauum.c
index 7f23c56821d3f39b14fda2e2828da23cb118f17f..c2eef8209e78cd7d59dd4753052ac8d69006e715 100644
--- a/runtime/starpu/codelets/codelet_zlauum.c
+++ b/runtime/starpu/codelets/codelet_zlauum.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zplghe.c b/runtime/starpu/codelets/codelet_zplghe.c
index 79ff9238fa36e4fe5ddfaf0c8f2ea8ac9d6a38b8..be161ef0db5eb546bb1e09d30149362cb4d1ba9e 100644
--- a/runtime/starpu/codelets/codelet_zplghe.c
+++ b/runtime/starpu/codelets/codelet_zplghe.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /*   MORSE_TASK_zplghe - Generate a tile for random hermitian (positive definite if bump is large enough) matrix. */
 
diff --git a/runtime/starpu/codelets/codelet_zplgsy.c b/runtime/starpu/codelets/codelet_zplgsy.c
index cbe5f9ee2970b7f924aa46303b167640e3db69bb..30777e55e3e9252fa1a7dcc0e5603c22062a9d97 100644
--- a/runtime/starpu/codelets/codelet_zplgsy.c
+++ b/runtime/starpu/codelets/codelet_zplgsy.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
-
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /*   MORSE_TASK_zplgsy - Generate a tile for random symmetric (positive definite if 'bump' is large enough) matrix. */
 
diff --git a/runtime/starpu/codelets/codelet_zplrnt.c b/runtime/starpu/codelets/codelet_zplrnt.c
index b8c96b26348d48af715214639e7657d03e22f25b..f4ce3636949f500d13f13396b81f2c9b88273fdc 100644
--- a/runtime/starpu/codelets/codelet_zplrnt.c
+++ b/runtime/starpu/codelets/codelet_zplrnt.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
-
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /*   MORSE_TASK_zplrnt - Generate a tile for random matrix. */
 
diff --git a/runtime/starpu/codelets/codelet_zplssq.c b/runtime/starpu/codelets/codelet_zplssq.c
index 75538476ebfe37346cb37be9276222076acbb106..c102bb4d90cf4b91573cbfb7181a60f9fa92bbda 100644
--- a/runtime/starpu/codelets/codelet_zplssq.c
+++ b/runtime/starpu/codelets/codelet_zplssq.c
@@ -25,8 +25,8 @@
  *
  **/
 #include <math.h>
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /*****************************************************************************
  *
diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c
index 686814274424ef112cf8bb90ca6c44333e8af9f3..ecdcf51a908abf40cf43ad6bb4e0096ee90bc095 100644
--- a/runtime/starpu/codelets/codelet_zpotrf.c
+++ b/runtime/starpu/codelets/codelet_zpotrf.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zssssm.c b/runtime/starpu/codelets/codelet_zssssm.c
index 6d1c3ee08cefee4ab99bd72354fb4c1cb6684ef9..679b4b8ed7ba99cc92f4a854ef252027713dd06b 100644
--- a/runtime/starpu/codelets/codelet_zssssm.c
+++ b/runtime/starpu/codelets/codelet_zssssm.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "coreblas/include/cblas.h"
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zsymm.c b/runtime/starpu/codelets/codelet_zsymm.c
index bb01bfc7bac752da147983e5ac3a7640836d1925..4c55153e3922ff91f87c32976e8ee3b2533266b0 100644
--- a/runtime/starpu/codelets/codelet_zsymm.c
+++ b/runtime/starpu/codelets/codelet_zsymm.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zsyr2k.c b/runtime/starpu/codelets/codelet_zsyr2k.c
index aec9d75f5a5f43dc087dfdcbb684cc5b68216b12..fb097f10e201ae48cb8b3184cea1cd78aa677434 100644
--- a/runtime/starpu/codelets/codelet_zsyr2k.c
+++ b/runtime/starpu/codelets/codelet_zsyr2k.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zsyrk.c b/runtime/starpu/codelets/codelet_zsyrk.c
index 265a8922d43779fc8897c4a26e48f6ac3d034ea9..5d79d9ad618e105ca1e1c5bd9e419019585934cd 100644
--- a/runtime/starpu/codelets/codelet_zsyrk.c
+++ b/runtime/starpu/codelets/codelet_zsyrk.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zsyssq.c b/runtime/starpu/codelets/codelet_zsyssq.c
index 882650f2865138f4d3e804631de879e1add16b04..33f888dd1060c637699220a7ef70496160fc033d 100644
--- a/runtime/starpu/codelets/codelet_zsyssq.c
+++ b/runtime/starpu/codelets/codelet_zsyssq.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zsyssq( const MORSE_option_t *options,
                         MORSE_enum uplo, int n,
diff --git a/runtime/starpu/codelets/codelet_zsytrf_nopiv.c b/runtime/starpu/codelets/codelet_zsytrf_nopiv.c
index 002591071b3b5a7509b9e4941732a264bfc1aaed..24203fdb15f47720bf3b40be370fc945957291e3 100644
--- a/runtime/starpu/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/starpu/codelets/codelet_zsytrf_nopiv.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
-
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_zsytrf_nopiv(const MORSE_option_t *options,
                              MORSE_enum uplo, int n, int nb,
diff --git a/runtime/starpu/codelets/codelet_ztile_zero.c b/runtime/starpu/codelets/codelet_ztile_zero.c
index b07702888352d4402837a23c8f63a15fc74eeeaf..26841ceb373d51768a66062e05feb11bb75ed2d6 100644
--- a/runtime/starpu/codelets/codelet_ztile_zero.c
+++ b/runtime/starpu/codelets/codelet_ztile_zero.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /*****************************************************************************
  *
diff --git a/runtime/starpu/codelets/codelet_ztpmqrt.c b/runtime/starpu/codelets/codelet_ztpmqrt.c
index c1344760444deb6f292017ed0252eb0c7d9188df..b2ff0e2fd31d81249aa42b7a0289c092f0b41b76 100644
--- a/runtime/starpu/codelets/codelet_ztpmqrt.c
+++ b/runtime/starpu/codelets/codelet_ztpmqrt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_ztpmqrt( const MORSE_option_t *options,
                          MORSE_enum side, MORSE_enum trans,
diff --git a/runtime/starpu/codelets/codelet_ztpqrt.c b/runtime/starpu/codelets/codelet_ztpqrt.c
index 893a3ec9735607828e41d8c9186a1c5134b916c9..1573e1ed4b82a2c4e9eaa05cacf7a575c00cc4e9 100644
--- a/runtime/starpu/codelets/codelet_ztpqrt.c
+++ b/runtime/starpu/codelets/codelet_ztpqrt.c
@@ -22,8 +22,8 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_ztpqrt( const MORSE_option_t *options,
                         int M, int N, int L, int ib, int nb,
diff --git a/runtime/starpu/codelets/codelet_ztradd.c b/runtime/starpu/codelets/codelet_ztradd.c
index ffce0ea3f581a58470f5b01a16f682d898bb7ee7..ec8c08c5be6fdc26f0bf795a5de4c6b387a4aee2 100644
--- a/runtime/starpu/codelets/codelet_ztradd.c
+++ b/runtime/starpu/codelets/codelet_ztradd.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  ******************************************************************************
diff --git a/runtime/starpu/codelets/codelet_ztrasm.c b/runtime/starpu/codelets/codelet_ztrasm.c
index 03e30ff6c330c3b07ee93f1981af345b610d46f0..83002029e13e5bc56a2ca4d1b4813a254398ed8b 100644
--- a/runtime/starpu/codelets/codelet_ztrasm.c
+++ b/runtime/starpu/codelets/codelet_ztrasm.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_ztrasm(const MORSE_option_t *options,
                        MORSE_enum storev, MORSE_enum uplo, MORSE_enum diag, int M, int N,
diff --git a/runtime/starpu/codelets/codelet_ztrmm.c b/runtime/starpu/codelets/codelet_ztrmm.c
index b002c81709b0811d838670c96d38fbdb94086897..17b4c250d72b1bd04364c04953884c7f33b779f1 100644
--- a/runtime/starpu/codelets/codelet_ztrmm.c
+++ b/runtime/starpu/codelets/codelet_ztrmm.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_ztrsm.c b/runtime/starpu/codelets/codelet_ztrsm.c
index 288427e82cb5c65809ed9fdfd6bbe48de7adba01..a54ef383157aedce30fa99ab35efa4d70e126f5e 100644
--- a/runtime/starpu/codelets/codelet_ztrsm.c
+++ b/runtime/starpu/codelets/codelet_ztrsm.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_ztrssq.c b/runtime/starpu/codelets/codelet_ztrssq.c
index 578b318cee6174de50647efb18a59963e14dc40b..67ff9c3f15415dec46c3791483c6ab6b315f7db1 100644
--- a/runtime/starpu/codelets/codelet_ztrssq.c
+++ b/runtime/starpu/codelets/codelet_ztrssq.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void MORSE_TASK_ztrssq( const MORSE_option_t *options,
                         MORSE_enum uplo, MORSE_enum diag,
diff --git a/runtime/starpu/codelets/codelet_ztrtri.c b/runtime/starpu/codelets/codelet_ztrtri.c
index 73d1a439e4c6baca68e701d2d96645fceca82b80..c3706a89df66c7a4e65ed8be24345a04165419f0 100644
--- a/runtime/starpu/codelets/codelet_ztrtri.c
+++ b/runtime/starpu/codelets/codelet_ztrtri.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_ztslqt.c b/runtime/starpu/codelets/codelet_ztslqt.c
index 56c278094de88b9bc90214642700e670b3312cd9..722d20352cfa57fa40ebd6912745c9293ca80f1e 100644
--- a/runtime/starpu/codelets/codelet_ztslqt.c
+++ b/runtime/starpu/codelets/codelet_ztslqt.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 #undef REAL
 #define COMPLEX
 
diff --git a/runtime/starpu/codelets/codelet_ztsmlq.c b/runtime/starpu/codelets/codelet_ztsmlq.c
index 1ec507ca2f66d682624e9b69a83dfcbb105d0f84..8423b3865b940fb89d780555209b3d7505e73e68 100644
--- a/runtime/starpu/codelets/codelet_ztsmlq.c
+++ b/runtime/starpu/codelets/codelet_ztsmlq.c
@@ -30,8 +30,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c b/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c
index 6a2a43768ba0209eaf265b685f7a329b0a81b76b..1256265adf94914d8b1e5e614fac5812cd264774 100644
--- a/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c
+++ b/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_ztsmqr.c b/runtime/starpu/codelets/codelet_ztsmqr.c
index bb3e72c67f80dfac07198ed5422ee37431ca83dd..ef400fab496da37824ef338d9cb5f17f8c51d8f5 100644
--- a/runtime/starpu/codelets/codelet_ztsmqr.c
+++ b/runtime/starpu/codelets/codelet_ztsmqr.c
@@ -30,8 +30,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c b/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c
index 792d9e0592832bb075a1916408fa983d9b82bef8..21743919d9fcd7cf88523dacefdad27a7781ccd8 100644
--- a/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c
+++ b/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_ztsqrt.c b/runtime/starpu/codelets/codelet_ztsqrt.c
index 969da0611698b3c9c72b23eaa04d869b3411f105..a1bcada463ddc9b777cd1a6a69bdaf53324ec5f9 100644
--- a/runtime/starpu/codelets/codelet_ztsqrt.c
+++ b/runtime/starpu/codelets/codelet_ztsqrt.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 #undef REAL
 #define COMPLEX
 
diff --git a/runtime/starpu/codelets/codelet_ztstrf.c b/runtime/starpu/codelets/codelet_ztstrf.c
index 59f7428077125914ce178b330265057444137afb..3d98f8e22575966417e6913558de47d8ba3004e2 100644
--- a/runtime/starpu/codelets/codelet_ztstrf.c
+++ b/runtime/starpu/codelets/codelet_ztstrf.c
@@ -28,10 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
-#include "coreblas/include/cblas.h"
-#include <math.h>
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zttlqt.c b/runtime/starpu/codelets/codelet_zttlqt.c
index f89913e6922496aa20d3ce275461b3805dc97c78..0cb195fdfee96042390030274ab84fc25360146e 100644
--- a/runtime/starpu/codelets/codelet_zttlqt.c
+++ b/runtime/starpu/codelets/codelet_zttlqt.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zttmlq.c b/runtime/starpu/codelets/codelet_zttmlq.c
index 2a75969c1e45651602f21fa00aaf707510f393f0..0b37a2d9eeb2ef33d3ff7b9bf91be51c0d091943 100644
--- a/runtime/starpu/codelets/codelet_zttmlq.c
+++ b/runtime/starpu/codelets/codelet_zttmlq.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zttmqr.c b/runtime/starpu/codelets/codelet_zttmqr.c
index 9ffaa524c8dcc120b04c1d4866ded48d9c2b09d6..7563ba012bf8f52a88c146df13ec14b79a471d9e 100644
--- a/runtime/starpu/codelets/codelet_zttmqr.c
+++ b/runtime/starpu/codelets/codelet_zttmqr.c
@@ -28,8 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zttqrt.c b/runtime/starpu/codelets/codelet_zttqrt.c
index 02bc8245873c567e641f76b5e7b0bac82e613628..8d03e589351f80c26e360d72e68497663fb1f2f3 100644
--- a/runtime/starpu/codelets/codelet_zttqrt.c
+++ b/runtime/starpu/codelets/codelet_zttqrt.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zunmlq.c b/runtime/starpu/codelets/codelet_zunmlq.c
index b990da74beadad4b29ab49c6acfc1f4dd0cd413d..4725dd113acf8b8cb6dc1cbf74f8a1dc39af80a2 100644
--- a/runtime/starpu/codelets/codelet_zunmlq.c
+++ b/runtime/starpu/codelets/codelet_zunmlq.c
@@ -29,9 +29,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/codelets/codelet_zunmqr.c b/runtime/starpu/codelets/codelet_zunmqr.c
index d4c6d6d813ae9d948d232908da530c1c963acd3e..15bfbd7c985944ee0d2f037c7b79c520b10f58e4 100644
--- a/runtime/starpu/codelets/codelet_zunmqr.c
+++ b/runtime/starpu/codelets/codelet_zunmqr.c
@@ -28,9 +28,8 @@
  * @precisions normal z -> c d s
  *
  **/
-
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 /**
  *
diff --git a/runtime/starpu/control/runtime_async.c b/runtime/starpu/control/runtime_async.c
index 03f5a6fa73156f7b619241209cd016c2fab3a926..4d9b646acad528cca09a0bbb578f6e433f99dceb 100644
--- a/runtime/starpu/control/runtime_async.c
+++ b/runtime/starpu/control/runtime_async.c
@@ -23,7 +23,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
 
 /*******************************************************************************
  *  Create a sequence
@@ -54,28 +54,33 @@ extern void (*update_progress_callback)(int, int) ;
 /*******************************************************************************
  *  Display a progress information when executing the tasks
  **/
-int RUNTIME_progress( MORSE_context_t *morse)
+int RUNTIME_progress( MORSE_context_t *morse )
 {
+    int tasksLeft, current, timer = 0;
+    int max;
+
 #if defined(CHAMELEON_USE_MPI)
-  if (morse->my_mpi_rank!=0)
-    return MORSE_SUCCESS;
+    if ( morse->my_mpi_rank != 0 )
+        return MORSE_SUCCESS;
 #endif
-  int tasksLeft, current, timer=0;
-  int max = starpu_task_nsubmitted();
-  if (max==0)
-    return MORSE_SUCCESS;
-  //  update_progress_callback(0, max);
-  while ((tasksLeft = starpu_task_nsubmitted()) > 0) {
-    current = max - tasksLeft;
+
+    max = starpu_task_nsubmitted();
+    if ( max == 0 )
+        return MORSE_SUCCESS;
+
+    //  update_progress_callback(0, max);
+    while ((tasksLeft = starpu_task_nsubmitted()) > 0) {
+        current = max - tasksLeft;
+        if (timer > PROGRESS_MINIMUM_DURATION)
+            update_progress_callback(current, max);
+        sleep(1);
+        timer++;
+    }
     if (timer > PROGRESS_MINIMUM_DURATION)
-      update_progress_callback(current, max);
-    sleep(1);
-    timer++;
-  }
-  if (timer > PROGRESS_MINIMUM_DURATION)
-    update_progress_callback(max, max);
+        update_progress_callback(max, max);
 
-  return MORSE_SUCCESS;
+    (void)morse;
+    return MORSE_SUCCESS;
 }
 
 /*******************************************************************************
@@ -86,7 +91,7 @@ int RUNTIME_sequence_wait( MORSE_context_t *morse, MORSE_sequence_t *sequence )
     (void)morse;
     (void)sequence;
     if (morse->progress_enabled)
-      RUNTIME_progress(morse);
+        RUNTIME_progress(morse);
     starpu_task_wait_for_all();
 #if defined(CHAMELEON_USE_MPI)
     starpu_mpi_barrier(MPI_COMM_WORLD);
diff --git a/runtime/starpu/control/runtime_context.c b/runtime/starpu/control/runtime_context.c
index 806eeb3523e533921f806f3d1a4a471d0cd6b8df..a96a071e2c35c8f462dfac901316a3713764a754 100644
--- a/runtime/starpu/control/runtime_context.c
+++ b/runtime/starpu/control/runtime_context.c
@@ -24,7 +24,7 @@
  *
  **/
 #include <stdlib.h>
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
 
 #if (STARPU_MAJOR_VERSION > 1) || ((STARPU_MAJOR_VERSION == 1) && (STARPU_MINOR_VERSION >= 3))
 /* Defined by StarPU as external function */
diff --git a/runtime/starpu/control/runtime_control.c b/runtime/starpu/control/runtime_control.c
index c1c83499b21f20ade3c2150166e9a66bb7cab462..bbf792875153712d4ca6cbae90a53635d09a2aea 100644
--- a/runtime/starpu/control/runtime_control.c
+++ b/runtime/starpu/control/runtime_control.c
@@ -25,7 +25,7 @@
  **/
 #include <stdio.h>
 #include <stdlib.h>
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
 
 #if defined(CHAMELEON_SIMULATION)
 # ifndef STARPU_SIMGRID
diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index 6a05ce8baf0822c7222523f1d735ed9faf89f6e5..b14888842d1e0b81cd54df2371268c37a1f383ce 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -23,7 +23,7 @@
  **/
 #include <stdlib.h>
 #include <unistd.h>
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
 
 #if defined(CHAMELEON_USE_MPI)
 
@@ -50,14 +50,17 @@ static int _tag_mpi_initialized_ = 0;
 #define FOLDED 0
 #endif
 
-void RUNTIME_user_tag_size(int user_tag_width, int user_tag_sep) {
+void RUNTIME_user_tag_size( int user_tag_width, int user_tag_sep ) {
 #if defined(CHAMELEON_USE_MPI)
     if (_tag_mpi_initialized_ == 0) {
-        tag_width=user_tag_width;
-        tag_sep=user_tag_sep;
-    } else
-        morse_error("RUNTIME_user_tag_size", "must be called before creating any Morse descriptor with MORSE_Desc_create(). The tag sizes will not be modified.");
+        tag_width = user_tag_width;
+        tag_sep   = user_tag_sep;
+    } else {
+        morse_error("RUNTIME_user_tag_size",
+                    "must be called before creating any Morse descriptor with MORSE_Desc_create(). The tag sizes will not be modified.");
+    }
 #endif
+    (void)user_tag_width; (void)user_tag_sep;
 }
 
 
@@ -126,9 +129,9 @@ void RUNTIME_desc_create( MORSE_desc_t *desc )
         int pagesize = getpagesize();
 
         if ((desc->mb * desc->nb * eltsze) % pagesize != 0
-         || (lastmm   * desc->nb * eltsze) % pagesize != 0
-         || (desc->mb * lastnn   * eltsze) % pagesize != 0
-         || (lastmm   * lastnn   * eltsze) % pagesize != 0)
+            || (lastmm   * desc->nb * eltsze) % pagesize != 0
+            || (desc->mb * lastnn   * eltsze) % pagesize != 0
+            || (lastmm   * lastnn   * eltsze) % pagesize != 0)
         {
             morse_error("RUNTIME_desc_create", "Matrix and tile size not suitable for out-of-core: all tiles have to be multiples of 4096. Tip : choose 'n' and 'nb' as both multiples of 32.");
             return;
diff --git a/runtime/starpu/control/runtime_options.c b/runtime/starpu/control/runtime_options.c
index 902d49417cb23881f94fd5b23b59112f44436f10..55caf9a7ae505c0e0f2cd4cc4a24c59aab944fc6 100644
--- a/runtime/starpu/control/runtime_options.c
+++ b/runtime/starpu/control/runtime_options.c
@@ -25,7 +25,7 @@
  **/
 #include <stdio.h>
 #include <stdlib.h>
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
 
 void RUNTIME_options_init( MORSE_option_t *option, MORSE_context_t *morse,
                            MORSE_sequence_t *sequence, MORSE_request_t *request )
diff --git a/runtime/starpu/control/runtime_profiling.c b/runtime/starpu/control/runtime_profiling.c
index 33bbb4021690aa53ef39db1409aa85b0a6d93f27..4b9c700d50c9c2430d1094f1ec4b81fedabd10a4 100644
--- a/runtime/starpu/control/runtime_profiling.c
+++ b/runtime/starpu/control/runtime_profiling.c
@@ -24,7 +24,7 @@
  *
  **/
 #include <math.h>
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
 #if defined(HAVE_STARPU_FXT_PROFILING)
 #include <starpu_fxt.h>
 #endif
diff --git a/runtime/starpu/control/runtime_workspace.c b/runtime/starpu/control/runtime_workspace.c
index d67f95a82bac96d8dae1ab615a6e853fd145bc07..c79f0db1fce281273a1700b067ee191441fa83b9 100644
--- a/runtime/starpu/control/runtime_workspace.c
+++ b/runtime/starpu/control/runtime_workspace.c
@@ -23,7 +23,7 @@
  * @date 2011-06-01
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
+#include "chameleon_starpu.h"
 
 static void RUNTIME_allocate_workspace_on_workers(void *arg)
 {
diff --git a/runtime/starpu/control/runtime_zlocality.c b/runtime/starpu/control/runtime_zlocality.c
index a83ddceb5df06a6e035bab0e65e121a01c1dfbce..19317707ffeaba6910050149e5e297e8322d16ef 100644
--- a/runtime/starpu/control/runtime_zlocality.c
+++ b/runtime/starpu/control/runtime_zlocality.c
@@ -25,8 +25,8 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 #ifdef CHAMELEON_USE_CUDA
 /* Only codelets with multiple choices are present here */
@@ -250,8 +250,23 @@ void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel )
     }
 }
 #else
-void RUNTIME_zlocality_allrestrict( uint32_t where ) {}
-void RUNTIME_zlocality_onerestrict( MORSE_kernel_t kernel, uint32_t where ) {}
+
+void RUNTIME_zlocality_allrestrict( uint32_t where )
+{
+    (void)where;
+}
+
+void RUNTIME_zlocality_onerestrict( MORSE_kernel_t kernel, uint32_t where )
+{
+    (void)kernel;
+    (void)where;
+}
+
 void RUNTIME_zlocality_allrestore( ) {}
-void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel ) {}
+
+void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel )
+{
+    (void)kernel;
+}
+
 #endif
diff --git a/runtime/starpu/control/runtime_zprofiling.c b/runtime/starpu/control/runtime_zprofiling.c
index c2fc5f5e61987e2d968b9c588cb14f858979b2fd..4167bcf2f0f3ef01cc0a0c97caf65e39aa40d2a5 100644
--- a/runtime/starpu/control/runtime_zprofiling.c
+++ b/runtime/starpu/control/runtime_zprofiling.c
@@ -25,8 +25,8 @@
  * @precisions normal z -> s d c
  *
  **/
-#include "runtime/starpu/include/morse_starpu.h"
-#include "runtime/starpu/include/runtime_codelet_z.h"
+#include "chameleon_starpu.h"
+#include "runtime_codelet_z.h"
 
 void RUNTIME_zdisplay_allprofile()
 {
diff --git a/runtime/starpu/include/morse_starpu.h b/runtime/starpu/include/chameleon_starpu.h.in
similarity index 88%
rename from runtime/starpu/include/morse_starpu.h
rename to runtime/starpu/include/chameleon_starpu.h.in
index 095b6886bb62c956501fcc40c8d4fb22ba67b26b..5c24359b83490110900a61e680381b7115a5b210 100644
--- a/runtime/starpu/include/morse_starpu.h
+++ b/runtime/starpu/include/chameleon_starpu.h.in
@@ -7,7 +7,6 @@
  * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
  *
  **/
-
 /**
  *
  * @file morse_starpu.h
@@ -20,13 +19,25 @@
  * @version 0.9.0
  * @author Mathieu Faverge
  * @author Cedric Castagnede
+ * @author Florent Pruvost
  * @date 2011-06-01
  *
  **/
 #ifndef _MORSE_STARPU_H_
 #define _MORSE_STARPU_H_
 
-#include "include/chameleon_config.h"
+#include "chameleon/chameleon_config.h"
+
+/* StarPU options */
+#cmakedefine HAVE_STARPU_FXT_PROFILING
+#cmakedefine HAVE_STARPU_IDLE_PREFETCH
+#cmakedefine HAVE_STARPU_ITERATION_PUSH
+#cmakedefine HAVE_STARPU_DATA_WONT_USE
+#cmakedefine HAVE_STARPU_DATA_SET_COORDINATES
+#cmakedefine HAVE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS
+#cmakedefine HAVE_STARPU_MPI_DATA_REGISTER
+#cmakedefine HAVE_STARPU_MPI_COMM_RANK
+#cmakedefine HAVE_STARPU_MPI_CACHED_RECEIVE
 
 #if defined(CHAMELEON_USE_MPI)
 #include <starpu_mpi.h>
@@ -49,10 +60,10 @@
 #endif
 
 #include "control/common.h"
-#include "runtime/starpu/include/runtime_codelets.h"
-#include "runtime/starpu/include/runtime_profiling.h"
-#include "runtime/starpu/include/runtime_codelet_profile.h"
-#include "runtime/starpu/include/runtime_workspace.h"
+#include "runtime_codelets.h"
+#include "runtime_profiling.h"
+#include "runtime_codelet_profile.h"
+#include "runtime_workspace.h"
 
 typedef struct starpu_conf starpu_conf_t;
 
diff --git a/runtime/starpu/include/runtime_codelet_profile.h b/runtime/starpu/include/runtime_codelet_profile.h
index 67942fc015404a082c9a99596721136f43a1cc1d..e195b5d8f3a932bd1cbad08ec460cdd425c87bf4 100644
--- a/runtime/starpu/include/runtime_codelet_profile.h
+++ b/runtime/starpu/include/runtime_codelet_profile.h
@@ -28,6 +28,8 @@
 #ifndef __CODELET_PROFILE_H__
 #define __CODELET_PROFILE_H__
 
+#include <math.h>
+
 #define CHAMELEON_CL_CB(name, _m, _n, _k, _nflops)			\
     static measure_t name##_perf[STARPU_NMAXWORKERS];                                          \
     void cl_##name##_callback()                                                                \
diff --git a/runtime/starpu/include/runtime_codelet_z.h b/runtime/starpu/include/runtime_codelet_z.h
index 16de7ea017d057fa15d4f0760c95b9af4045200a..19e293c4c74845a81fdd0998f2767c0317f0decb 100644
--- a/runtime/starpu/include/runtime_codelet_z.h
+++ b/runtime/starpu/include/runtime_codelet_z.h
@@ -30,7 +30,15 @@
 #define _CODELETS_Z_H_
 
 #include <stdio.h>
-#include "runtime/starpu/include/runtime_codelets.h"
+#include "runtime_codelets.h"
+
+#include "chameleon/morse_tasks_z.h"
+#if !defined(CHAMELEON_SIMULATION)
+#include "coreblas/coreblas_z.h"
+#if defined(CHAMELEON_USE_CUDA)
+#include "cudablas/cudablas_z.h"
+#endif
+#endif
 
 /*
  * Management functions
diff --git a/runtime/starpu/include/runtime_codelets.h b/runtime/starpu/include/runtime_codelets.h
index ad18261bcae347de1574cc45e491e46bf47f910a..4fa08b2808bbf96fe44755cb0676a2365bb8819c 100644
--- a/runtime/starpu/include/runtime_codelets.h
+++ b/runtime/starpu/include/runtime_codelets.h
@@ -1,4 +1,4 @@
-/**
+ /**
  *
  * @copyright (c) 2009-2014 The University of Tennessee and The University
  *                          of Tennessee Research Foundation.
@@ -28,7 +28,7 @@
 #ifndef _CODELETS_H_
 #define _CODELETS_H_
 
-#include "include/chameleon_config.h"
+#include "chameleon/chameleon_config.h"
 #include "runtime_codelet_profile.h"
 
 //#undef STARPU_CUDA_ASYNC
diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
index beb55c62bf9fefc860da43203051f72475ccfde5..1b2e5d9e4e691a3defb71b82eed0d75946650f8b 100644
--- a/testing/CMakeLists.txt
+++ b/testing/CMakeLists.txt
@@ -25,7 +25,9 @@
 #  @date 13-07-2012
 #
 ###
-
+if (CHAMELEON_SIMULATION)
+  message(ERROR "testing directory should not be included when simulation is enabled")
+endif()
 
 # Check for subdirectories
 # ------------------------
@@ -102,66 +104,42 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
 # Define what libraries we have to link with
 # ------------------------------------------
 unset(libs_for_tests)
-list(APPEND libs_for_tests chameleon)
+list(APPEND libs_for_tests
+  chameleon
+  )
 
-if(CHAMELEON_SCHED_STARPU)
-    list(APPEND libs_for_tests
-      chameleon_starpu
-      ${STARPU_LIBRARIES_DEP}
-    )
-    link_directories(${STARPU_LIBRARY_DIRS})
-elseif(CHAMELEON_SCHED_PARSEC)
-    list(APPEND libs_for_tests
-        chameleon_parsec
-        ${PARSEC_LIBRARIES_DEP}
-      )
-    link_directories(${PARSEC_LIBRARY_DIRS_DEP})
-elseif(CHAMELEON_SCHED_QUARK)
-    list(APPEND libs_for_tests
-        chameleon_quark
-        ${QUARK_LIBRARIES}
-      )
-    link_directories(${QUARK_LIBRARY_DIRS})
+if(CHAMELEON_USE_CUDA)
+  list(APPEND libs_for_tests
+    cudablas)
 endif()
-
-if(NOT CHAMELEON_SIMULATION)
-
-    if(CHAMELEON_USE_CUDA)
-        list(APPEND libs_for_tests
-        cudablas)
-    endif()
-    if(CHAMELEON_USE_CUDA)
-        link_directories(${CUDA_LIBRARY_DIRS})
-    endif()
-
-    list(APPEND libs_for_tests
-    coreblas
-    ${LAPACKE_LIBRARIES}
-    ${TMG_LIBRARIES}
-    ${LAPACK_LIBRARIES}
-    ${CBLAS_LIBRARIES}
-    ${BLAS_LIBRARIES}
-    ${HWLOC_LIBRARIES}
-    ${EXTRA_LIBRARIES}
-    )
-
-    link_directories(${LAPACKE_LIBRARY_DIRS})
-    link_directories(${TMG_LIBRARY_DIRS})
-    link_directories(${LAPACK_LIBRARY_DIRS})
-    link_directories(${CBLAS_LIBRARY_DIRS})
-    link_directories(${BLAS_LIBRARY_DIRS})
-
-else()
-
-    list(APPEND libs_for_tests ${EXTRA_LIBRARIES})
-
+if(CHAMELEON_USE_CUDA)
+  link_directories(${CUDA_LIBRARY_DIRS})
 endif()
 
+list(APPEND libs_for_tests
+  coreblas
+  ${LAPACKE_LIBRARIES}
+  ${TMG_LIBRARIES}
+  ${LAPACK_LIBRARIES}
+  ${CBLAS_LIBRARIES}
+  ${BLAS_LIBRARIES}
+  )
+
+link_directories(${LAPACKE_LIBRARY_DIRS})
+link_directories(${TMG_LIBRARY_DIRS})
+link_directories(${LAPACK_LIBRARY_DIRS})
+link_directories(${CBLAS_LIBRARY_DIRS})
+link_directories(${BLAS_LIBRARY_DIRS})
+
+list(APPEND libs_for_tests
+  hqr
+  ${EXTRA_LIBRARIES}
+  )
+
 # message("LAPACKE_LIBRARY_DIRS: ${LAPACKE_LIBRARY_DIRS}")
 # message("LAPACK_LIBRARY_DIRS: ${LAPACK_LIBRARY_DIRS}")
 # message("CBLAS_LIBRARY_DIRS: ${CBLAS_LIBRARY_DIRS}")
 # message("BLAS_LIBRARY_DIRS: ${BLAS_LIBRARY_DIRS}")
-# message("HWLOC_LIBRARY_DIRS: ${HWLOC_LIBRARY_DIRS}")
 
 # list(APPEND libs_for_tests ${CMAKE_Fortran_FLAGS}  )
 # list(APPEND libs_for_tests ${CMAKE_Fortran_LDFLAGS})
@@ -186,41 +164,20 @@ foreach(_precision ${CHAMELEON_PRECISION} )
     target_link_libraries(${_precision}testing ${libs_for_tests})
 
     install(TARGETS ${_precision}testing
-            DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/chameleon/testing)
+            DESTINATION bin/testing)
 
 endforeach()
 
 # Copy python scripts to use test drivers
 # ---------------------------------------
-if(CHAMELEON_SCHED_STARPU)
-    # Copy launcher
-    add_custom_target(testing_launcher_starpu ALL
-                     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/chameleon_testing.py
-                                                      ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py)
-    # install file
-    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py
-            DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/chameleon/testing)
-endif()
-
-if(CHAMELEON_SCHED_PARSEC)
-    # Copy launcher
-    add_custom_target(testing_launcher_parsec ALL
-                     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/chameleon_testing.py
-                                                      ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py)
-    # install file
-    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py
-            DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/chameleon/testing)
-endif()
-
-if(CHAMELEON_SCHED_QUARK)
-    # Copy launcher
-    add_custom_target(testing_launcher_quark ALL
-                     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/chameleon_testing.py
-                                                      ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py)
-    # install file
-    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py
-            DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/chameleon/testing)
-endif()
+# Copy launcher
+add_custom_target(testing_launcher ALL
+  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/chameleon_testing.py
+  ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py)
+
+# install file
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/chameleon_testing.py
+  DESTINATION bin/testing )
 
 #-------- Tests ---------
 include(CTestLists.cmake)
diff --git a/testing/CTestLists.cmake b/testing/CTestLists.cmake
index c68d4e5dd53a2d76c5196a40bc71acee6cbf62b7..9a9ddf9806ef694691b5870da8259b54606af4d8 100644
--- a/testing/CTestLists.cmake
+++ b/testing/CTestLists.cmake
@@ -26,7 +26,7 @@ foreach(cat  ${TEST_CATEGORIES})
         add_test(test_${cat}_${prec}syrk  ./${prec}${TEST_CMD_${cat}} SYRK  1.0 -2.0 600 500 650 625)
         add_test(test_${cat}_${prec}syr2k ./${prec}${TEST_CMD_${cat}} SYR2K 1.0 -2.0 600 500 650 625 700)
 
-        if ( ${prec} STREQUAL "c" OR ${prec} STREQUAL "z" )
+        if ( ${prec} STREQUAL c OR ${prec} STREQUAL z )
           add_test(test_${cat}_${prec}hemm  ./${prec}${TEST_CMD_${cat}} HEMM      1.0 -2.0 600 500 650 625 600)
           add_test(test_${cat}_${prec}herk  ./${prec}${TEST_CMD_${cat}} HERK      1.0 -2.0 600 500 650 625)
           add_test(test_${cat}_${prec}her2k ./${prec}${TEST_CMD_${cat}} HER2K     1.0 -2.0 600 500 650 625 700)
@@ -47,8 +47,8 @@ foreach(cat  ${TEST_CATEGORIES})
          add_test(test_${cat}_${prec}gels_hlq_fibonacci ./${prec}${TEST_CMD_${cat}} GELS_HQR 1000 1500 1000 10 1000 4 -1 2 -1 0)
          add_test(test_${cat}_${prec}gels_hlq_binary    ./${prec}${TEST_CMD_${cat}} GELS_HQR 1000 1500 1000 10 1000 4 -1 3 -1 0)
 
-         add_test(test_${cat}_${prec}gels_rq_systolic      ./${prec}${TEST_CMD_${cat}} GELS_SYSTOLIC 1000 1000 1000 10 1000 3 2)
-         add_test(test_${cat}_${prec}gels_lq_systolic      ./${prec}${TEST_CMD_${cat}} GELS_SYSTOLIC 1000 1500 1000 10 1000 3 2)
+         add_test(test_${cat}_${prec}gels_rq_systolic   ./${prec}${TEST_CMD_${cat}} GELS_SYSTOLIC 1000 1000 1000 10 1000 3 2)
+         add_test(test_${cat}_${prec}gels_lq_systolic   ./${prec}${TEST_CMD_${cat}} GELS_SYSTOLIC 1000 1500 1000 10 1000 3 2)
      endif()
 
   endforeach()
@@ -63,4 +63,3 @@ endforeach()
 #        add_test(test_mpi_${prec}lange mpirun -np 4 ./${prec}testing 1 0 LANGE 600 500 600 --p=2)
 #    endforeach()
 #endif()
-
diff --git a/testing/lin/CMakeLists.txt b/testing/lin/CMakeLists.txt
index 290647bb4df6a729e77894b0c9e396bb4d86c418..704f350483c7bcf3f80078fd969cd3bb9c4bb249 100644
--- a/testing/lin/CMakeLists.txt
+++ b/testing/lin/CMakeLists.txt
@@ -16,7 +16,7 @@
 #     Univ. of Tennessee,
 #     King Abdullah Univesity of Science and Technology
 #     Univ. of California Berkeley,
-#     Univ. of Colorado Denver. 
+#     Univ. of Colorado Denver.
 #
 #  @version 0.9.0
 #  @author Cedric Castagnede
@@ -44,7 +44,7 @@ set(SCLNTST slaord.f)
 
 set(DZLNTST dlaord.f)
 
-set(SLINTST 
+set(SLINTST
     schkaa.f
     schkge.f serrge.f sdrvge.f
     serrvx.f
@@ -105,7 +105,7 @@ set(CLINTST
     cgeequ.f claqge.f
     cpoequ.f claqsy.f cpocon.f clacn2.f clatrs.f csrscl.f
     clascl.f claset.f clatms.f clartg.f clatm1.f clarnd.f clarot.f clanhe.f claqhe.f
-    claror.f clagsy.f clagge.f 
+    claror.f clagsy.f clagge.f
     claipd.f csbmv.f
     clauum.f ctrtri.f
     clauu2.f ctrti2.f
@@ -129,7 +129,7 @@ set(ZLINTST
     zgeequ.f zlaqge.f
     zpoequ.f zlaqsy.f zpocon.f zlacn2.f zlatrs.f zdrscl.f
     zlascl.f zlaset.f zlatms.f zlartg.f zlatm1.f zlarnd.f zlarot.f zlanhe.f zlaqhe.f
-    zlaror.f zlagsy.f zlagge.f 
+    zlaror.f zlagsy.f zlagge.f
     zlaipd.f zsbmv.f
     zlauum.f ztrtri.f
     zlauu2.f ztrti2.f
@@ -140,24 +140,22 @@ set(ZLINTST
 
 # Define what libraries we have to link with
 # ------------------------------------------
-set(libs_for_tests "chameleon")
-
-# TODO: Check for name of following libraries (it certainly changed between morse and new_chameleon)
-if(MORSE_SCHED_STARPU)
-    list(APPEND libs_for_tests chameleon_starpu)
-    list(APPEND libs_for_tests ${STARPU_LIBRARIES_DEP})
-    list(APPEND libs_for_tests coreblas)
-elseif(MORSE_SCHED_QUARK)
-    list(APPEND libs_for_tests chameleon_starpu)
-    list(APPEND libs_for_tests ${QUARK_LIBRARIES})
-    list(APPEND libs_for_tests coreblas)
-endif()
-
-foreach(_dep LAPACKE LAPACK CBLAS BLAS CUDA HWLOC MPI DL)
-    if(HAVE_${_dep})
-        list(APPEND libs_for_tests ${${_dep}_LIBRARY})
-    endif()
-endforeach()
+set(libs_for_tests chameleon)
+
+list(APPEND libs_for_tests
+  ${LAPACKE_LIBRARIES}
+  ${TMG_LIBRARIES}
+  ${CBLAS_LIBRARIES}
+  ${LAPACK_SEQ_LIBRARIES}
+  ${BLAS_SEQ_LIBRARIES}
+  ${EXTRA_LIBRARIES}
+  )
+
+link_directories(${LAPACKE_LIBRARY_DIRS})
+link_directories(${TMG_LIBRARY_DIRS})
+link_directories(${LAPACK_LIBRARY_DIRS})
+link_directories(${CBLAS_LIBRARY_DIRS})
+link_directories(${BLAS_LIBRARY_DIRS})
 
 list(APPEND libs_for_tests ${CMAKE_Fortran_FLAGS})
 list(APPEND libs_for_tests ${CMAKE_Fortran_LDFLAGS})
@@ -165,32 +163,36 @@ list(APPEND libs_for_tests ${CMAKE_Fortran_LDFLAGS})
 
 # Define precisions to compile
 # ----------------------------
-if(BUILD_SINGLE)
+if(CHAMELEON_PREC_S)
     add_executable(morse_xlintsts ${ALINTST} ${SLINTST} ${SCLNTST})
     set_property(TARGET morse_xlintsts PROPERTY LINKER_LANGUAGE Fortran)
     target_link_libraries(morse_xlintsts ${libs_for_tests})
-    install(TARGETS morse_xlintsts DESTINATION ${CMAKE_INSTALL_PREFIX}/testing/lin)
+    install(TARGETS morse_xlintsts
+      DESTINATION bin/testing/lin)
 endif()
 
-if(BUILD_DOUBLE)
+if(CHAMELEON_PREC_S)
     add_executable(morse_xlintstd ${ALINTST} ${DLINTST} ${DZLNTST})
     set_property(TARGET morse_xlintstd PROPERTY LINKER_LANGUAGE Fortran)
     target_link_libraries(morse_xlintstd ${libs_for_tests})
-    install(TARGETS morse_xlintstd DESTINATION ${CMAKE_INSTALL_PREFIX}/testing/lin)
+    install(TARGETS morse_xlintstd
+      DESTINATION bin/testing/lin)
 endif()
 
-if(BUILD_COMPLEX)
+if(CHAMELEON_PREC_C)
     add_executable(morse_xlintstc ${ALINTST} ${CLINTST} ${SCLNTST})
     set_property(TARGET morse_xlintstc PROPERTY LINKER_LANGUAGE Fortran)
     target_link_libraries(morse_xlintstc ${libs_for_tests})
-    install(TARGETS morse_xlintstc DESTINATION ${CMAKE_INSTALL_PREFIX}/testing/lin)
+    install(TARGETS morse_xlintstc
+      DESTINATION bin/testing/lin)
 endif()
 
-if(BUILD_COMPLEX16)
+if(CHAMELEON_PREC_Z)
     add_executable(morse_xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST})
     set_property(TARGET morse_xlintstz PROPERTY LINKER_LANGUAGE Fortran)
     target_link_libraries(morse_xlintstz ${libs_for_tests})
-    install(TARGETS morse_xlintstz DESTINATION ${CMAKE_INSTALL_PREFIX}/testing/lin)
+    install(TARGETS morse_xlintstz
+      DESTINATION bin/testing/lin)
 endif()
 
 # Copy launcher
diff --git a/testing/testing_zauxiliary.c b/testing/testing_zauxiliary.c
index 748c56694aac865dceb215c7d6579ba300d46b67..247390083987e812346a19cfcac9a17efb1e290c 100644
--- a/testing/testing_zauxiliary.c
+++ b/testing/testing_zauxiliary.c
@@ -157,7 +157,7 @@ int map_RRRB(int m, int n, int mb, int nb, int i, int j) {
             return ( m*n0  + (n-n0)*m0                      + map_rm( m%mb, n%nb, i%mb, j%nb) );
 }
 
-void *formatmap[6] = {  map_CM, map_RM, map_CCRB, map_CRRB, map_RCRB, map_RRRB };
+int (*formatmap[6])(int, int, int, int, int, int) = {  map_CM, map_RM, map_CCRB, map_CRRB, map_RCRB, map_RRRB };
 
 int main (int argc, char **argv)
 {
@@ -185,8 +185,8 @@ int main (int argc, char **argv)
      else*/
     MORSE_Init( ncores, ngpus);
     MORSE_Disable(MORSE_AUTOTUNING);
-    MORSE_Set(MORSE_TILE_SIZE,         320 );
-    MORSE_Set(MORSE_INNER_BLOCK_SIZE,   48 );
+    MORSE_Set(MORSE_TILE_SIZE,         32 );
+    MORSE_Set(MORSE_INNER_BLOCK_SIZE,   5 );
 
     argc -= 4;
     argv += 4;
diff --git a/testing/testing_zauxiliary.h b/testing/testing_zauxiliary.h
index 2285df339ecd93a5bd4b7c09b25948bf0c21e6aa..7c55d8057c05a1028592b44d9fc8fa49a0cd3985 100644
--- a/testing/testing_zauxiliary.h
+++ b/testing/testing_zauxiliary.h
@@ -68,7 +68,7 @@ extern char *itypestr[3];
 extern char *storevstr[2];
 extern char *normstr[4];
 
-extern void *formatmap[6];
+extern int (*formatmap[6])(int, int, int, int, int, int);
 
 int map_CM  (int m, int n, int mb, int nb, int i, int j);
 int map_CCRB(int m, int n, int mb, int nb, int i, int j);
diff --git a/testing/testing_zgeadd.c b/testing/testing_zgeadd.c
index 84225fe325e4b9f3ed4baf66cb3d7cb9103ae4dc..cf65e1843e1ae2f9b52d263ee77ca34630cbb1e2 100644
--- a/testing/testing_zgeadd.c
+++ b/testing/testing_zgeadd.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 #if defined(CHAMELEON_USE_MPI)
 #include <mpi.h>
diff --git a/testing/testing_zgels.c b/testing/testing_zgels.c
index d745f30bf06b17b970f257d796692ce4515ecc0e..1d2f248325593d6d08ced5e920f07db771bdaa3f 100644
--- a/testing/testing_zgels.c
+++ b/testing/testing_zgels.c
@@ -34,9 +34,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 #undef REAL
diff --git a/testing/testing_zgels_hqr.c b/testing/testing_zgels_hqr.c
index fd9de27534e894a87d9671c0a01adb6bfd2118e8..4f216e0d60514b68803d0cd0533e12550f537a3d 100644
--- a/testing/testing_zgels_hqr.c
+++ b/testing/testing_zgels_hqr.c
@@ -29,9 +29,9 @@
 #include <assert.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 #undef REAL
@@ -77,8 +77,8 @@ int testing_zgels_hqr(int argc, char **argv)
     int llvl   = atoi(argv[7]);
     int hlvl   = atoi(argv[8]);
     int domino = atoi(argv[9]);
-    libhqr_tree_t     qrtree;
-    libhqr_tiledesc_t matrix;
+    libhqr_tree_t   qrtree;
+    libhqr_matrix_t matrix;
 
     int K = min(M, N);
     double eps;
@@ -117,7 +117,7 @@ int testing_zgels_hqr(int argc, char **argv)
     matrix.nodes = 1;
     matrix.p = 1;
 
-    libhqr_hqr_init( &qrtree,
+    libhqr_init_hqr( &qrtree,
                      ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ,
                      &matrix, llvl, hlvl, qr_a, qr_p, domino, 0);
 
@@ -322,7 +322,7 @@ int testing_zgels_hqr(int argc, char **argv)
         }
     }
 
-    libhqr_matrix_finalize( &qrtree );
+    libhqr_finalize( &qrtree );
 
     free(A1); free(A2); free(B1); free(B2); free(Q);
     MORSE_Dealloc_Workspace( &TS );
diff --git a/testing/testing_zgels_systolic.c b/testing/testing_zgels_systolic.c
index fce16bfc8fa637f8616d1da1b2475345567ca569..85c89caebaf143aebfef80bd086157567bb551e1 100644
--- a/testing/testing_zgels_systolic.c
+++ b/testing/testing_zgels_systolic.c
@@ -29,9 +29,9 @@
 #include <assert.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 #undef REAL
@@ -71,8 +71,8 @@ int testing_zgels_systolic(int argc, char **argv)
     int LDB    = max( max( atoi(argv[4]), M ), N );
     int p      = atoi(argv[5]);
     int q      = atoi(argv[6]);
-    libhqr_tree_t     qrtree;
-    libhqr_tiledesc_t matrix;
+    libhqr_tree_t   qrtree;
+    libhqr_matrix_t matrix;
 
     int K = min(M, N);
     double eps;
@@ -111,9 +111,9 @@ int testing_zgels_systolic(int argc, char **argv)
     matrix.nodes = 1;
     matrix.p = 1;
 
-    libhqr_systolic_init( &qrtree,
-                          ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ,
-                          &matrix, p, q );
+    libhqr_init_sys( &qrtree,
+                     ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ,
+                     &matrix, p, q );
 
     /* Initialize A1 and A2 */
     LAPACKE_zlarnv_work(IONE, ISEED, LDAxN, A1);
@@ -320,7 +320,7 @@ int testing_zgels_systolic(int argc, char **argv)
         }
     }
 
-    libhqr_matrix_finalize( &qrtree );
+    libhqr_finalize( &qrtree );
 
     free(A1); free(A2); free(B1); free(B2); free(Q);
     MORSE_Dealloc_Workspace( &TS );
diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c
index 8d682de70c28d7e9e442e04cee56a843d370f39e..562134b796265f72c41fc3ac17f400af9d169a7f 100644
--- a/testing/testing_zgemm.c
+++ b/testing/testing_zgemm.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 #if defined(CHAMELEON_USE_MPI)
 #include <mpi.h>
diff --git a/testing/testing_zgeqrf_qdwh.c b/testing/testing_zgeqrf_qdwh.c
index 956ffa3f980169947dcbd0e5364bfbdf4605bae7..cd03ec4337a5fa184e0e2f8308d53d3f587d0379 100644
--- a/testing/testing_zgeqrf_qdwh.c
+++ b/testing/testing_zgeqrf_qdwh.c
@@ -34,10 +34,10 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
-#include <coreblas/include/coreblas_z.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
+#include <coreblas/coreblas_z.h>
 #include "testing_zauxiliary.h"
 
 #undef REAL
@@ -66,8 +66,7 @@ int testing_zgeqrf_qdwh(int argc, char **argv)
     int MxM = M * M;
     int LDA = 2*M;
     double eps;
-    int info_ortho, info_solution, info_factorization;
-    int i, j;
+    int info_ortho, info_factorization;
 
     /**
      * Compute A = QR with
@@ -169,7 +168,6 @@ check_orthogonality( int M, int N,
     double alpha, beta;
     double normQ;
     int info_ortho;
-    int i;
     int minMN = min(M, N);
 
     double *work = (double *)malloc(minMN*sizeof(double));
@@ -219,13 +217,11 @@ check_factorization(int M, int N,
                     double eps )
 {
     double Anorm, Rnorm;
-    MORSE_Complex64_t alpha, beta;
+    MORSE_Complex64_t alpha;
     int info_factorization;
-    int i,j;
     double *work = (double *)malloc(max(M,N)*sizeof(double));
 
     alpha = 1.0;
-    beta  = 0.0;
 
     if (M >= N) {
         /* Perform Q = Q * R */
diff --git a/testing/testing_zgesv_incpiv.c b/testing/testing_zgesv_incpiv.c
index 83254d745a83fe534ff1f1e29124603f1b53838b..c89a97e2d09e5791e4ef5ce35394703f7dfe8ded 100644
--- a/testing/testing_zgesv_incpiv.c
+++ b/testing/testing_zgesv_incpiv.c
@@ -33,9 +33,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 enum blas_order_type {
diff --git a/testing/testing_zgesvd.c b/testing/testing_zgesvd.c
index 83f784e2df5dc45508a4c2f3a2ed2e3a89a735bd..e83248e941f949aa8022ee78ce7783c0d6d392b0 100644
--- a/testing/testing_zgesvd.c
+++ b/testing/testing_zgesvd.c
@@ -29,9 +29,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_orthogonality(int, int, int, MORSE_Complex64_t*, int, double);
@@ -260,7 +260,6 @@ static int check_reduction(int M, int N, double *S, MORSE_Complex64_t *A, int LD
 {
     MORSE_Complex64_t zone  =  1.0;
     MORSE_Complex64_t mzone = -1.0;
-    MORSE_Complex64_t zzero = 0.0;
     double Anorm, Rnorm, result;
     int info_reduction;
     int i;
diff --git a/testing/testing_zheevd.c b/testing/testing_zheevd.c
index 0837a58c799f38798e21a6b3889e95c030f5c2f8..cdc66adf453e4f015040edca3b43578e5f558e2e 100644
--- a/testing/testing_zheevd.c
+++ b/testing/testing_zheevd.c
@@ -29,9 +29,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_orthogonality(int, int, MORSE_Complex64_t*, int, double);
diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c
index c0659d888ba42b2e2c2c4041c62eb3e7e5a168b6..53910f9e25ed84a15dda15b1d7f509fff4dc16b5 100644
--- a/testing/testing_zhemm.c
+++ b/testing/testing_zhemm.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_solution(MORSE_enum transA, MORSE_enum transB, int M, int N,
diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c
index 750622248e69c1cb4091503235b2157346baebe2..7276353b11f552be567d0d0332d490a1e0f3cfbe 100644
--- a/testing/testing_zher2k.c
+++ b/testing/testing_zher2k.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_solution(MORSE_enum uplo, MORSE_enum trans, int N, int K,
diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c
index 5805e00eaec6efa35994454c23552997972f23ae..a218be22f157ccf81a2146d57a813a828e268df4 100644
--- a/testing/testing_zherk.c
+++ b/testing/testing_zherk.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_solution(MORSE_enum uplo, MORSE_enum trans, int N, int K,
diff --git a/testing/testing_zlange.c b/testing/testing_zlange.c
index 93031b164e7a58bbc4706bcfc65cf213e5e7a98d..f818f658a485e7edc18bceabb94de58ff5687ee5 100644
--- a/testing/testing_zlange.c
+++ b/testing/testing_zlange.c
@@ -31,9 +31,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 #undef REAL
diff --git a/testing/testing_zpemv.c b/testing/testing_zpemv.c
index 7130fa5b9adc665eaa63a71ec0eadaed496cb813..401eea1ee15d178baa3d2a7cd9d5e544c7892915 100644
--- a/testing/testing_zpemv.c
+++ b/testing/testing_zpemv.c
@@ -31,9 +31,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 #define COMPLEX
@@ -42,12 +42,12 @@
 /*--------------------------------------------------------------
  * Check the pemv
  */
-static int check_solution(MORSE_enum trans, MORSE_enum storev, 
+static int check_solution(MORSE_enum trans, MORSE_enum storev,
                           int M, int N, int L,
                           MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA,
-                                                    MORSE_Complex64_t *X, int INCX,
+                          MORSE_Complex64_t *X, int INCX,
                           MORSE_Complex64_t beta,  MORSE_Complex64_t *Y0, int INCY0,
-                                                    MORSE_Complex64_t *Y,  int INCY,
+                          MORSE_Complex64_t *Y,  int INCY,
                           MORSE_Complex64_t *W, double *Rnorm)
 {
     int k;
@@ -61,28 +61,30 @@ static int check_solution(MORSE_enum trans, MORSE_enum storev,
     } else {
         k = M;
     }
-    
+
     work = (double *)malloc(k * sizeof(double));
     cblas_zcopy(k, Y0, INCY0, W, 1);
-    
+
     /* w = a A x + b w */
-    cblas_zgemv(CblasColMajor, (CBLAS_TRANSPOSE)trans, 
+    cblas_zgemv(CblasColMajor, (CBLAS_TRANSPOSE)trans,
                 M, N,
-                CBLAS_SADDR(alpha), A,  LDA, 
-                                    X,  INCX,
+                CBLAS_SADDR(alpha), A,  LDA,
+                X,  INCX,
                 CBLAS_SADDR(beta),  W,  1);
 
     /* y - w */
     cblas_zaxpy(k, CBLAS_SADDR(mzone), Y, INCY, W, 1);
-    
+
     /* Max Norm */
     *Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'm', 1, k, W, 1, work);
-    
+
     if ( (*Rnorm / (M*N)) > eps) {
         return 1;
     } else {
         return 0;
     }
+
+    (void)L; (void)storev;
 }
 
 /*--------------------------------------------------------------
@@ -136,8 +138,8 @@ int testing_zpemv(int argc, char **argv)
         printf("Out of Memory \n ");
         exit(0);
     }
-    
-     /* Initialize Data */
+
+    /* Initialize Data */
     MORSE_zplrnt(n, n, A,  lda, 479 );
     MORSE_zplrnt(n, n, X,  lda, 320 );
     MORSE_zplrnt(n, 1, Y0, n,   573 );
@@ -152,7 +154,7 @@ int testing_zpemv(int argc, char **argv)
 
     nfails = 0;
     for (i=0; i<6; i++) {
-        
+
         /* m and n cannot be greater than lda (arg_n) */
         switch (i) {
         case 0: l = 0;       m = arg_n;   n = m;        break;
@@ -165,17 +167,17 @@ int testing_zpemv(int argc, char **argv)
 
         /* Colwise ConjTrans & Rowwise NoTrans */
 #ifdef COMPLEX
-        for (t=0; t<3; t++) {
+        for (t=0; t<3; t++)
 #else
-        for (t=0; t<2; t++) {
+        for (t=0; t<2; t++)
 #endif
-
+        {
             /* Swap m and n for transpose cases */
             if ( t == 1 ) {
                 k = m; m = n; n = k;
             }
 
-            LAPACKE_zlacpy_work( LAPACK_COL_MAJOR, 'A', m, n, 
+            LAPACKE_zlacpy_work( LAPACK_COL_MAJOR, 'A', m, n,
                                  A, lda, A0, lda);
 
             if ( trans[t] == MorseNoTrans ) {
@@ -217,29 +219,29 @@ int testing_zpemv(int argc, char **argv)
                     case 2:  incx = lda;  incy = 1;    break;
                     case 3:  incx = lda;  incy = lda;  break;
                     }
-                    
+
                     /* initialize Y with incy */
                     cblas_zcopy(n, Y0, 1, Y, incy);
-                    
+
                     /* ZPEMV */
-                    CORE_zpemv( trans[t], storev, m, n, l, 
-                                alpha, A, lda, 
-                                       X, incx,
-                                beta,  Y, incy, 
+                    CORE_zpemv( trans[t], storev, m, n, l,
+                                alpha, A, lda,
+                                X, incx,
+                                beta,  Y, incy,
                                 work);
-                    
+
                     /* Check the solution */
-                    info_solution = check_solution(trans[t], storev, 
-                                                   m, n, l, 
+                    info_solution = check_solution(trans[t], storev,
+                                                   m, n, l,
                                                    alpha, A0,  lda,
-                                                          X,   incx, 
-                                                   beta,  Y0,  1, 
-                                                          Y,   incy, 
+                                                   X,   incx,
+                                                   beta,  Y0,  1,
+                                                   Y,   incy,
                                                    work, &rnorm);
-                    
+
                     if ( info_solution != 0 ) {
                         nfails++;
-                        printf("Failed: t=%s, s=%s, M=%3d, N=%3d, L=%3d, alpha=%e, incx=%3d, beta=%e, incy=%3d, rnorm=%e\n", 
+                        printf("Failed: t=%s, s=%s, M=%3d, N=%3d, L=%3d, alpha=%e, incx=%3d, beta=%e, incy=%3d, rnorm=%e\n",
                                transstr[t], cstorev, m, n, l, creal(alpha), incx, creal(beta), incy, rnorm );
                     }
                     nbtests++;
@@ -268,4 +270,3 @@ int testing_zpemv(int argc, char **argv)
 
     return hres;
 }
-
diff --git a/testing/testing_zposv.c b/testing/testing_zposv.c
index a865102d52be789e3b82fa20c53fd1e2af00f013..0b4906c4d15f748e54fde7cd381dafd946f51de0 100644
--- a/testing/testing_zposv.c
+++ b/testing/testing_zposv.c
@@ -33,9 +33,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 enum blas_order_type {
diff --git a/testing/testing_zpotri.c b/testing/testing_zpotri.c
index 22c42b565bc62342da1ea4e7060e98f3bf4a6a5c..2dff3ea05836051ee4bd4f5166ab7ccc9e551114 100644
--- a/testing/testing_zpotri.c
+++ b/testing/testing_zpotri.c
@@ -33,9 +33,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 enum blas_order_type {
diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c
index ca66d4a43a77cbe79455127dbaf01df52925f339..0e037c761b86b7f5b92d49ceb400a725ecaaedac 100644
--- a/testing/testing_zsymm.c
+++ b/testing/testing_zsymm.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_solution(MORSE_enum transA, MORSE_enum transB, int M, int N,
diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c
index 366e9b1ad0822c76ffacf10724c0eb90dc00cff5..cbd5a75d4ec8de376763c7728ad82dac96c0a8ee 100644
--- a/testing/testing_zsyr2k.c
+++ b/testing/testing_zsyr2k.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_solution(MORSE_enum uplo, MORSE_enum trans, int N, int K,
diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c
index 1f63117cff30d6fc5aa13097442e54eeab00b2cc..ba58ac727974fe1573113771848116137195b407 100644
--- a/testing/testing_zsyrk.c
+++ b/testing/testing_zsyrk.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 static int check_solution(MORSE_enum uplo, MORSE_enum trans, int N, int K,
diff --git a/testing/testing_ztrmm.c b/testing/testing_ztrmm.c
index eb25babe4f38e7c56b5e783912a035c3f7c6e33f..83214ef269c94da86fdd2a7543713cfe8655bfc5 100644
--- a/testing/testing_ztrmm.c
+++ b/testing/testing_ztrmm.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 #undef REAL
diff --git a/testing/testing_ztrsm.c b/testing/testing_ztrsm.c
index db0cc1ad1e725f9bd629f1050e0699ad5f969db6..3514b78d9691d6f6eb9a53ca00aff6b9bde18767 100644
--- a/testing/testing_ztrsm.c
+++ b/testing/testing_ztrsm.c
@@ -32,9 +32,9 @@
 #include <math.h>
 
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "testing_zauxiliary.h"
 
 #undef REAL
diff --git a/timing/CMakeLists.txt b/timing/CMakeLists.txt
index c61405a71ab37b16b003fd4394255a8d1a2c16a6..8f03c60b9aa2fbe4957648bae5b1d23300d4de93 100644
--- a/timing/CMakeLists.txt
+++ b/timing/CMakeLists.txt
@@ -71,117 +71,80 @@ endif()
 # Generate the morse testing sources for all possible precisions
 # --------------------------------------------------------------
 set(TIMINGS "")
+set(ZSRC_LAP_INT
+  # BLAS 3
+  time_zgemm.c
+  time_ztrsm.c
+  # LAPACK
+  time_zgels.c
+  time_zgeqrf.c
+  time_zgeqrf_hqr.c
+  time_zgelqf.c
+  time_zgetrf_incpiv.c
+  time_zgetrf_nopiv.c
+  #time_zgetrf.c
+  time_zposv.c
+  time_zpotrf.c
+  # MIXED PRECISION
+  #time_zcgesv.c
+  #time_zcposv.c
+  # OTHERS
+  time_zlange.c
+  #time_zgecfi.c
+  #time_zgetrf_reclap.c
+  #time_zgetrf_rectil.c
+  #time_zgesv.c
+  time_zgesv_incpiv.c
+  time_zgesv_nopiv.c
+  )
+
+set(ZSRC_TIL_INT
+  # BLAS 3
+  time_zgemm_tile.c
+  # LAPACK
+  time_zgels_tile.c
+  time_zgeqrf_hqr_tile.c
+  time_zgeqrf_tile.c
+  time_zgelqf_tile.c
+  time_zgeqrs_tile.c
+  time_zgetrf_incpiv_tile.c
+  time_zgetrf_nopiv_tile.c
+  time_zgetrs_incpiv_tile.c
+  time_zgetrs_nopiv_tile.c
+  #time_zgetrf_tile.c
+  time_zposv_tile.c
+  time_zpotrf_tile.c
+  time_zpotrs_tile.c
+  time_zsytrf_tile.c
+  time_zpotri_tile.c
+  # MIXED PRECISION
+  #time_zcgesv_tile.c
+  #time_zcposv_tile.c
+  # OTHERS
+  time_zlange_tile.c
+  #time_zgebrd_tile.c
+  #time_zgesvd_tile.c
+  #time_zheevd_tile.c
+  #time_zheev_tile.c
+  #time_zhegv_tile.c
+  #time_zlapack2tile.c
+  #time_zgetri_tile.c
+  #time_zgesv_tile.c
+  time_zgesv_incpiv_tile.c
+  time_zgesv_nopiv_tile.c
+  )
+
 if (NOT CHAMELEON_SIMULATION)
-    set(ZSRC
-        ##################
-        # BLAS 3
-        ##################
-        time_zgemm.c
-        time_zgemm_tile.c
-        time_ztrsm.c
-        ##################
-        # LAPACK
-        ##################
-        time_zgels.c
-        time_zgels_tile.c
-        time_zgeqrf.c
-        time_zgeqrf_hqr.c
-        time_zgeqrf_hqr_tile.c
-        time_zgeqrf_tile.c
-        time_zgelqf.c
-        time_zgelqf_tile.c
-        time_zgeqrs_tile.c
-        time_zgetrf_incpiv.c
-        time_zgetrf_incpiv_tile.c
-        time_zgetrf_nopiv.c
-        time_zgetrf_nopiv_tile.c
-        time_zgetrs_incpiv_tile.c
-        time_zgetrs_nopiv_tile.c
-        #time_zgetrf.c
-        #time_zgetrf_tile.c
-        time_zposv.c
-        time_zposv_tile.c
-        time_zpotrf.c
-        time_zpotrf_tile.c
-        time_zpotrs_tile.c
-        time_zsytrf_tile.c
-        time_zpotri_tile.c
-        ##################
-        # MIXED PRECISION
-        ##################
-        #time_zcgesv.c
-        #time_zcgesv_tile.c
-        #time_zcposv.c
-        #time_zcposv_tile.c
-        ##################
-        # OTHERS
-        ##################
-        time_zlange.c
-        time_zlange_tile.c
-        #time_zgebrd_tile.c
-        #time_zgecfi.c
-        time_zgesvd_tile.c
-        #time_zgetrf_reclap.c
-        #time_zgetrf_rectil.c
-        time_zheevd_tile.c
-        #time_zheev_tile.c
-        #time_zhegv_tile.c
-        #time_zlapack2tile.c
-        #time_zgetri_tile.c
-        #time_zgesv.c
-        #time_zgesv_tile.c
-        time_zgesv_incpiv.c
-        time_zgesv_incpiv_tile.c
-        time_zgesv_nopiv.c
-        time_zgesv_nopiv_tile.c
-       )
+  set(ZSRC
+    ${ZSRC_LAP_INT}
+    ${ZSRC_TIL_INT}
+    time_zgesvd_tile.c
+    time_zheevd_tile.c
+    )
 else(NOT CHAMELEON_SIMULATION)
-    set(ZSRC
-        ##################
-        # BLAS 3
-        ##################
-        time_zgemm_tile.c
-        ##################
-        # LAPACK
-        ##################
-        time_zgels_tile.c
-        time_zgeqrf_tile.c
-        time_zgelqf_tile.c
-        time_zgeqrs_tile.c
-        time_zgetrf_incpiv_tile.c
-        time_zgetrf_nopiv_tile.c
-        time_zgetrs_incpiv_tile.c
-        time_zgetrs_nopiv_tile.c
-        #time_zgetrf_tile.c
-        time_zposv_tile.c
-        time_zpotrf_tile.c
-        time_zpotrs_tile.c
-        time_zsytrf_tile.c
-        time_zpotri_tile.c
-        ##################
-        # MIXED PRECISION
-        ##################
-        #time_zcgesv_tile.c
-        #time_zcposv_tile.c
-        ##################
-        # OTHERS
-        ##################
-        time_zlange_tile.c
-        #time_zgebrd_tile.c
-        #time_zgecfi.c
-        #time_zgesvd_tile.c
-        #time_zgetrf_reclap.c
-        #time_zgetrf_rectil.c
-        #time_zheevd_tile.c
-        #time_zheev_tile.c
-        #time_zhegv_tile.c
-        #time_zlapack2tile.c
-        #time_zgetri_tile.c
-        #time_zgesv.c
-        #time_zgesv_tile.c
-        time_zgesv_incpiv_tile.c
-        time_zgesv_nopiv_tile.c
-       )
+  set(ZSRC
+    ${ZSRC_TIL_INT}
+    )
 endif(NOT CHAMELEON_SIMULATION)
 
 precisions_rules_py(TIMINGS "${ZSRC}"
@@ -200,48 +163,26 @@ if(NOT CHAMELEON_SIMULATION)
     list(APPEND libs_for_timings chameleon_timing)
 endif()
 
-list(APPEND libs_for_timings chameleon)
+list(APPEND libs_for_timings
+  chameleon
+  )
 
+# Add dependency toward StarPU for StarPU specific calls
 if(CHAMELEON_SCHED_STARPU)
-    list(APPEND libs_for_timings
-      chameleon_starpu
-      ${STARPU_LIBRARIES_DEP}
+  list(APPEND libs_for_timings
+    ${STARPU_LIBRARIES_DEP}
     )
-    link_directories(${STARPU_LIBRARY_DIRS})
-elseif(CHAMELEON_SCHED_PARSEC)
-    list(APPEND libs_for_timings
-      chameleon_parsec
-      ${PARSEC_LIBRARIES_DEP}
-      )
-    link_directories(${PARSEC_LIBRARY_DIRS_DEP})
-elseif(CHAMELEON_SCHED_QUARK)
-    list(APPEND libs_for_timings
-      chameleon_quark
-      ${QUARK_LIBRARIES}
-      )
-    link_directories(${QUARK_LIBRARY_DIRS})
+  link_directories(${STARPU_LIBRARY_DIRS})
 endif()
 
 if(NOT CHAMELEON_SIMULATION)
 
-    if(CHAMELEON_USE_CUDA)
-        list(APPEND libs_for_timings
-        cudablas)
-    endif()
-    if(CHAMELEON_USE_CUDA)
-        link_directories(${CUDA_LIBRARY_DIRS})
-    endif()
-
     list(APPEND libs_for_timings
-    coreblas
-    ${LAPACKE_LIBRARIES}
-    ${TMG_LIBRARIES}
-    ${CBLAS_LIBRARIES}
-    ${LAPACK_SEQ_LIBRARIES}
-    ${BLAS_SEQ_LIBRARIES}
-    ${LIBHQR_LIBRARIES}
-    ${HWLOC_LIBRARIES}
-    ${EXTRA_LIBRARIES}
+      ${LAPACKE_LIBRARIES}
+      ${TMG_LIBRARIES}
+      ${CBLAS_LIBRARIES}
+      ${LAPACK_SEQ_LIBRARIES}
+      ${BLAS_SEQ_LIBRARIES}
     )
 
     link_directories(${LAPACKE_LIBRARY_DIRS})
@@ -249,25 +190,23 @@ if(NOT CHAMELEON_SIMULATION)
     link_directories(${LAPACK_LIBRARY_DIRS})
     link_directories(${CBLAS_LIBRARY_DIRS})
     link_directories(${BLAS_LIBRARY_DIRS})
-    link_directories(${LIBHQR_LIBRARY_DIRS})
-
-else()
-
-    list(APPEND libs_for_timings${EXTRA_LIBRARIES})
 
 endif()
 
+list(APPEND libs_for_timings
+  hqr
+  ${EXTRA_LIBRARIES}
+  )
+
 # message("BLAS_SEQ_LIBRARIES: ${BLAS_SEQ_LIBRARIES}")
 # message("CBLAS_LIBRARIES: ${CBLAS_LIBRARIES}")
 # message("LAPACK_SEQ_LIBRARIES: ${LAPACK_SEQ_LIBRARIES}")
 # message("LAPACKE_LIBRARIES: ${LAPACKE_LIBRARIES}")
-# message("HWLOC_LIBRARIES: ${HWLOC_LIBRARIES}")
 
 # message("LAPACKE_LIBRARY_DIRS: ${LAPACKE_LIBRARY_DIRS}")
 # message("LAPACK_LIBRARY_DIRS: ${LAPACK_LIBRARY_DIRS}")
 # message("CBLAS_LIBRARY_DIRS: ${CBLAS_LIBRARY_DIRS}")
 # message("BLAS_LIBRARY_DIRS: ${BLAS_LIBRARY_DIRS}")
-# message("HWLOC_LIBRARY_DIRS: ${HWLOC_LIBRARY_DIRS}")
 
 # message(STATUS "libs timings: ${libs_for_timings}")
 foreach(_timing ${TIMINGS})
@@ -277,7 +216,7 @@ foreach(_timing ${TIMINGS})
     set_property(TARGET ${_name_exe} PROPERTY LINKER_LANGUAGE Fortran)
     target_link_libraries(${_name_exe} ${libs_for_timings})
     install(TARGETS ${_name_exe}
-            DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/chameleon/timing)
+            DESTINATION bin/timing)
 endforeach()
 
 #-------- Tests ---------
diff --git a/timing/time_zgeqrf_hqr.c b/timing/time_zgeqrf_hqr.c
index 60c7f0da6ebd53c7cf1569053b60af07bd3535e0..ab5d8f9bca2e14513790088a4c81b2b009adbda5 100644
--- a/timing/time_zgeqrf_hqr.c
+++ b/timing/time_zgeqrf_hqr.c
@@ -35,8 +35,8 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 {
     MORSE_desc_t *TS;
     MORSE_desc_t *TT;
-    libhqr_tree_t qrtree;
-    libhqr_tiledesc_t matrix;
+    libhqr_tree_t   qrtree;
+    libhqr_matrix_t matrix;
     int hlvl, llvl, qr_a, domino;
     PASTE_CODE_IPARAM_LOCALS( iparam );
 
@@ -71,7 +71,8 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
     llvl = iparam[IPARAM_LOWLVL_TREE];
     qr_a = iparam[IPARAM_RHBLK];
     domino =  iparam[IPARAM_QR_DOMINO];
-    libhqr_hqr_init( &qrtree,
+
+    libhqr_init_hqr( &qrtree,
                      ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ,
                      &matrix, llvl, hlvl, qr_a, P, domino, 0);
 
@@ -96,9 +97,10 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
         free( Acpy );
         free( B );
         free( X );
-      }
+    }
 
     /* Free Workspace */
+    libhqr_finalize( &qrtree );
     MORSE_Dealloc_Workspace( &TS );
     MORSE_Dealloc_Workspace( &TT );
     free( A );
diff --git a/timing/time_zgeqrf_hqr_tile.c b/timing/time_zgeqrf_hqr_tile.c
index d86d97a13e1663bc999c86b827667cb39abaff5e..302a8a78dadfb8fb0d181c158f861fdb1b661c75 100644
--- a/timing/time_zgeqrf_hqr_tile.c
+++ b/timing/time_zgeqrf_hqr_tile.c
@@ -35,8 +35,8 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 {
     MORSE_desc_t *TS;
     MORSE_desc_t *TT;
-    libhqr_tree_t qrtree;
-    libhqr_tiledesc_t matrix;
+    libhqr_tree_t   qrtree;
+    libhqr_matrix_t matrix;
     int hlvl, llvl, qr_a, domino;
     PASTE_CODE_IPARAM_LOCALS( iparam );
 
@@ -75,7 +75,8 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
     llvl = iparam[IPARAM_LOWLVL_TREE];
     qr_a = iparam[IPARAM_RHBLK];
     domino =  iparam[IPARAM_QR_DOMINO];
-    libhqr_hqr_init( &qrtree,
+
+    libhqr_init_hqr( &qrtree,
                      ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ,
                      &matrix, llvl, hlvl, qr_a, P, domino, 0);
 
@@ -105,6 +106,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
       }
 
     /* Free Workspace */
+    libhqr_finalize( &qrtree );
     MORSE_Dealloc_Workspace( &TS );
     MORSE_Dealloc_Workspace( &TT );
     free( descA );
diff --git a/timing/time_zgesvd_tile.c b/timing/time_zgesvd_tile.c
index e4cb71a7ee97fb73435b65ec3f5110b69da4e231..af8c7a6d6ff97965935e1b398b1044a6b101a77b 100644
--- a/timing/time_zgesvd_tile.c
+++ b/timing/time_zgesvd_tile.c
@@ -71,5 +71,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
     }
     PASTE_CODE_FREE_MATRIX( descA );
     free( S );
+
+    (void)dparam;
     return 0;
 }
diff --git a/timing/time_zheevd_tile.c b/timing/time_zheevd_tile.c
index 56b08fa76c9a77d4f3e8198f55e4b4c39607074b..706346fe96963ac66354ea7d434f07f0300f1542 100644
--- a/timing/time_zheevd_tile.c
+++ b/timing/time_zheevd_tile.c
@@ -56,5 +56,6 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
     MORSE_Dealloc_Workspace(&descT);
 
     free( A );
+    (void)dparam;
     return 0;
 }
diff --git a/timing/timing.c b/timing/timing.c
index b8b009824649531b40aff254b19320310ba214d3..d054b1ef7a81419cdf75d77e2673b80ffac0f374 100644
--- a/timing/timing.c
+++ b/timing/timing.c
@@ -47,10 +47,11 @@
 #include <sys/resource.h>
 #endif
 
-#include "coreblas/include/cblas.h"
-#include "coreblas/include/lapacke.h"
 #include <morse.h>
-#include "coreblas/include/coreblas.h"
+#if !defined(CHAMELEON_SIMULATION)
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
+#endif
 #include "flops.h"
 #include "timing.h"
 #include "control/auxiliary.h"
diff --git a/timing/timing_zauxiliary.c b/timing/timing_zauxiliary.c
index 2d9dba18dcddb9371939207a22ff7c9be2aad7d4..55998be13f199b66f17f090c6715cba92a58797f 100644
--- a/timing/timing_zauxiliary.c
+++ b/timing/timing_zauxiliary.c
@@ -18,9 +18,9 @@
 #include <string.h>
 #include <math.h>
 #include <morse.h>
-#include <coreblas/include/cblas.h>
-#include <coreblas/include/lapacke.h>
-#include <coreblas/include/coreblas.h>
+#include <coreblas/cblas.h>
+#include <coreblas/lapacke.h>
+#include <coreblas.h>
 #include "timing_zauxiliary.h"
 
 /*-------------------------------------------------------------------