diff --git a/CMakeLists.txt b/CMakeLists.txt
index 48d4d252063f33f1a8471d1060ad55f2e40bc55e..2498d19a2871e7dce30001849b3e247c7588f069 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,6 +22,11 @@ set(enable-normalized-fitness OFF CACHE BOOL "With this option, the NORMALIZED_F
 set(enable-mtperiod 607 CACHE STRING "Period of the Mersen Twister. Autorized values are : 607 1279 2281 4253 11213 19937 44497 86243 132049 216091")
 set(enable-trivialjumps OFF CACHE STRING "When this option is set, a trivial jump algorithm will be used instead of the polynomial-based method")
 
+set(with-triangle OFF CACHE BOOL "Whether to enable triangle phenotypic target (else Gaussian)")
+set(with-raevol OFF CACHE BOOL "Whether to enable R-Aevol (Gene regulation) version")
+set(with-detectclone ON CACHE BOOL "Whether to enable clones and not recompute them")
+set(with-floatconcentration OFF CACHE BOOL "Whether to enable the encoding of concentration has float (and not double)")
+set(with-simd OFF CACHE BOOL "Whether to switch to the SIMD implementation of (R-)Aevol")
 
 if ( ${with-x} )
     FIND_PACKAGE(X11 REQUIRED)
@@ -77,6 +82,26 @@ if ( ${enable-trivialjumps} )
     endif ()
 endif ()
 
+if ( ${with-triangle} )
+    add_definitions(-DPHENOTYPIC_TARGET_TRIANGLE)
+endif ()
+
+if ( ${with-raevol} )
+    add_definitions(-D__REGUL)
+endif ()
+
+if ( ${with-detectclone} )
+    add_definitions(-D__DETECT_CLONE)
+endif ()
+
+if ( ${with-floatconcentration} )
+    add_definitions(-D__FLOAT_CONCENTRATION)
+endif ()
+
+if ( ${with-simd} )
+    add_definitions(-DWITH_STANDALONE_SIMD)
+endif ()
+
 
 # ============================================================================
 # Get GNU standard installation directories (GNUInstallDirs module)
diff --git a/src/libaevol/CMakeLists.txt b/src/libaevol/CMakeLists.txt
index a136a248ac9d013ab0bfa5285e803c99693bbddb..3e34681e85486cbb3b732f002d7ba0e44eb2335f 100644
--- a/src/libaevol/CMakeLists.txt
+++ b/src/libaevol/CMakeLists.txt
@@ -18,7 +18,7 @@ include_directories(".")
 # ============================================================================
 # Add targets add their dependencies
 # ============================================================================
-add_library(aevol
+set(aevol_sources 
   aevol.h
   Alignment.cpp
   Alignment.h
@@ -161,7 +161,26 @@ add_library(aevol
   MutationEvent.cpp
   AncestorStats.h
   AncestorStats.cpp)
+  
+if ( ${with-raevol} )
+    set(aevol_sources ${aevol_sources} 
+          raevol/Habitat_R.h
+          raevol/Habitat_R.cpp
+          raevol/Individual_R.h
+          raevol/Individual_R.cpp
+          raevol/Individual_R_X11.h
+          raevol/Individual_R_X11.cpp
+          raevol/PhenotypicTarget_R.h
+          raevol/PhenotypicTarget_R.cpp
+          raevol/PhenotypicTargetHandler_R.h
+          raevol/PhenotypicTargetHandler_R.cpp
+          raevol/Protein_R.h
+          raevol/Protein_R.cpp
+          raevol/Rna_R.h
+          raevol/Rna_R.cpp)
+endif ()
 
+add_library(aevol ${aevol_sources})
 
 # ============================================================================
 # Use GSL and zlib