diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7fe179392ac1ff655606c1c56973336578312956..d1950ec0e449ee92d84db749282b91b391f6abee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -37,9 +37,13 @@ if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
 endif()
 
 # set project version number
+set(MORSE_VERSION_MAJOR 1)
+set(MORSE_VERSION_MINOR 0)
+set(MORSE_VERSION_MICRO 0)
+# set subproject version number
 set(CHAMELEON_VERSION_MAJOR 0)
 set(CHAMELEON_VERSION_MINOR 9)
-set(CHAMELEON_VERSION_PATCH 1)
+set(CHAMELEON_VERSION_MICRO 1)
 
 set( MORSE_DISTRIB_DIR "" CACHE PATH "Directory of MORSE distribution")
 
diff --git a/example/lapack_to_morse/step0.h b/example/lapack_to_morse/step0.h
index 5c9630d1b9596d2acdebbe96d336112b8babf660..f5b776c3318ea2fe2593d8d5a4094dbf54677909 100644
--- a/example/lapack_to_morse/step0.h
+++ b/example/lapack_to_morse/step0.h
@@ -35,10 +35,6 @@
 #include <coreblas/include/cblas.h>
 #include <coreblas/include/lapacke.h>
 
-#define CHAMELEON_VERSION_MAJOR 0
-#define CHAMELEON_VERSION_MINOR 9
-#define CHAMELEON_VERSION_MICRO 0
-
 /* Integer parameters for step0 */
 enum iparam_step0 {
     IPARAM_THRDNBR,        /* Number of cores                            */
@@ -112,15 +108,12 @@ static void print_header(char *prog_name, int * iparam) {
 #endif
 
     printf( "#\n"
-            "# CHAMELEON %d.%d.%d, %s\n"
+            "# CHAMELEON %s\n"
             "# Nb threads: %d\n"
             "# N:          %d\n"
             "# IB:         %d\n"
             "# eps:        %e\n"
             "#\n",
-            CHAMELEON_VERSION_MAJOR,
-            CHAMELEON_VERSION_MINOR,
-            CHAMELEON_VERSION_MICRO,
             prog_name,
             iparam[IPARAM_THRDNBR],
             iparam[IPARAM_N],
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 061af84bed03543137c31d25e8a7dea982594c2e..c35f8aa80649c43d31f5a726f6dafbfc906f31e3 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -40,6 +40,10 @@ set(ZHDR
 precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
                     PRECISIONS "z;c;d;s;zc;ds")
 
+configure_file("morse.h.in"
+               "morse.h"
+               @ONLY)
+
 # Define the list of headers
 # --------------------------
 set(CHAMELEON_HDRS
@@ -70,12 +74,12 @@ set(HDR_INSTALL
     morse_simulate.h
     morse_struct.h
     morse_types.h
-    morse.h
     runtime.h
     )
 foreach( hdr_file ${CHAMELEON_HDRS_GENERATED} )
     list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
 endforeach()
+list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/morse.h)
 
 # installation
 # ------------
diff --git a/include/morse.h b/include/morse.h.in
similarity index 91%
rename from include/morse.h
rename to include/morse.h.in
index 9f34a8eeb04693cffd8141bb027e9aae74a29df8..d3297c93f1db40bdf0c81d1c9970a293c7302704 100644
--- a/include/morse.h
+++ b/include/morse.h.in
@@ -27,13 +27,13 @@
 #ifndef _MORSE_H_
 #define _MORSE_H_
 
-#define MORSE_VERSION_MAJOR 1
-#define MORSE_VERSION_MINOR 0
-#define MORSE_VERSION_MICRO 0
+#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 0
-#define CHAMELEON_VERSION_MINOR 9
-#define CHAMELEON_VERSION_MICRO 0
+#define CHAMELEON_VERSION_MAJOR @CHAMELEON_VERSION_MAJOR@
+#define CHAMELEON_VERSION_MINOR @CHAMELEON_VERSION_MINOR@
+#define CHAMELEON_VERSION_MICRO @CHAMELEON_VERSION_MICRO@
 
 
 /* ****************************************************************************