diff --git a/Modules/Adapters/OSSIMAdapters/otb-module.cmake b/Modules/Adapters/OSSIMAdapters/otb-module.cmake
index 7efda9ebdd6a6b0b1367792efdff5399dded38e7..acdb4ec22ebcbd2acd0991762e36447fb35a818e 100644
--- a/Modules/Adapters/OSSIMAdapters/otb-module.cmake
+++ b/Modules/Adapters/OSSIMAdapters/otb-module.cmake
@@ -4,6 +4,7 @@ several purposes: sensor models (especially RPC), metadata parsers, DEM handlers
 so on.")
 
 otb_module(OTBOSSIMAdapters
+ENABLE_SHARED
   DEPENDS
     OTBOpenThreads
     OTBITK
diff --git a/Modules/Core/CommandLineParser/otb-module.cmake b/Modules/Core/CommandLineParser/otb-module.cmake
index 86881a5d077703cd64c4884dd943d6bcb0940402..ccc21e403e61bdf936024f0eb0b3f7397a0b8e58 100644
--- a/Modules/Core/CommandLineParser/otb-module.cmake
+++ b/Modules/Core/CommandLineParser/otb-module.cmake
@@ -1,6 +1,7 @@
 set(DOCUMENTATION "TODO")
 
 otb_module(OTBCommandLineParser
+ENABLE_SHARED
   DEPENDS
     OTBCommon
     OTBITK
diff --git a/Modules/Core/Common/otb-module.cmake b/Modules/Core/Common/otb-module.cmake
index 7501fbd86ed582fbd0a201181588071672d0d270..f94865eb25f73666b5a886495e198abec1796df6 100644
--- a/Modules/Core/Common/otb-module.cmake
+++ b/Modules/Core/Common/otb-module.cmake
@@ -1,6 +1,7 @@
 set(DOCUMENTATION "TO BE DOCUMENTED")
 
 otb_module(OTBCommon
+ENABLE_SHARED
   DEPENDS
     OTBBoost
     OTBITK
diff --git a/Modules/Core/ImageBase/otb-module.cmake b/Modules/Core/ImageBase/otb-module.cmake
index c76c9484fc42b9d9e8d7facc371539f3eaafd142..f366185f37f39ef5356688e18c6e5c030e9a3481 100644
--- a/Modules/Core/ImageBase/otb-module.cmake
+++ b/Modules/Core/ImageBase/otb-module.cmake
@@ -2,6 +2,7 @@ set(DOCUMENTATION "This module contains base classes that allow the
 representation of mono- and multiband images.")
 
 otb_module(OTBImageBase
+ENABLE_SHARED
   DEPENDS
     OTBCommon
     OTBITK
diff --git a/Modules/Core/Streaming/otb-module.cmake b/Modules/Core/Streaming/otb-module.cmake
index 00615c856b6c3aa397dcefb4f07014d9e9912d53..2e63671954f55dc452640708a136eaf93747971b 100644
--- a/Modules/Core/Streaming/otb-module.cmake
+++ b/Modules/Core/Streaming/otb-module.cmake
@@ -4,6 +4,7 @@ useful when big images must be processed: processing is done piecewise, which pr
 the system from running out of memory.")
 
 otb_module(OTBStreaming
+ENABLE_SHARED
   DEPENDS
     OTBCommon
     OTBITK
diff --git a/Modules/Core/Transform/otb-module.cmake b/Modules/Core/Transform/otb-module.cmake
index 3c4b916ae0bec943dcfc5d7180d442214d804307..8f6a1503185a3a15daa3ed3c962d3cb765920de8 100644
--- a/Modules/Core/Transform/otb-module.cmake
+++ b/Modules/Core/Transform/otb-module.cmake
@@ -4,6 +4,7 @@ itk -see itk::Transform-). this mainly concerns transformations of coordinates
 from any map projection or sensor model to any map projection or sensor model.")
 
 otb_module(OTBTransform
+ENABLE_SHARED
   DEPENDS
     OTBBoost
     OTBCommon
diff --git a/Modules/Core/VectorDataBase/otb-module.cmake b/Modules/Core/VectorDataBase/otb-module.cmake
index ea1dc85eb01f6e4288ac5d68fb176be9a3547609..92c6e17be96da1684f85c8a751722682d778466d 100644
--- a/Modules/Core/VectorDataBase/otb-module.cmake
+++ b/Modules/Core/VectorDataBase/otb-module.cmake
@@ -2,6 +2,7 @@ set(DOCUMENTATION "This module contains base classes for representing vector
 data (see also VectorDataIO and VectorDataManipulation modules).")
 
 otb_module(OTBVectorDataBase
+ENABLE_SHARED
   DEPENDS
     OTBCommon
     OTBGDAL
diff --git a/Modules/Filtering/Projection/otb-module.cmake b/Modules/Filtering/Projection/otb-module.cmake
index 9d6f9b5467b044f8e9fb610c15a9dfdc151254c3..38bb1f7175fc959446609f50ea7b0bde5cdbb8ed 100644
--- a/Modules/Filtering/Projection/otb-module.cmake
+++ b/Modules/Filtering/Projection/otb-module.cmake
@@ -6,6 +6,7 @@ generically related to this purpose. for instance, user can handle OGR data type
 solvers, re-project input vector data over input images, and so on.")
 
 otb_module(OTBProjection
+ENABLE_SHARED
   DEPENDS
     OTBBoostAdapters
     OTBCommon
diff --git a/Modules/IO/Carto/otb-module.cmake b/Modules/IO/Carto/otb-module.cmake
index 7f8d5b105b1e269d68f0396651e0af4b5ed6a2d8..58151068046f30e6f5ee44f8e606b473123e3f29 100644
--- a/Modules/IO/Carto/otb-module.cmake
+++ b/Modules/IO/Carto/otb-module.cmake
@@ -7,6 +7,7 @@ the vector elements available. retrieve Longitude and Latitude coordinates from
 place name. And so on.")
 
 otb_module(OTBCarto
+ENABLE_SHARED
   DEPENDS
     OTBCommon
     OTBCurlAdapters
diff --git a/Modules/IO/IOGDAL/otb-module.cmake b/Modules/IO/IOGDAL/otb-module.cmake
index a1304de5049576df3eca90c5a9d3acc4ed9ac0b4..a8ff155373f7a83908f622a9dccb2d3740c3e9d0 100644
--- a/Modules/IO/IOGDAL/otb-module.cmake
+++ b/Modules/IO/IOGDAL/otb-module.cmake
@@ -2,6 +2,7 @@ set(DOCUMENTATION "This module contains features to read and write images with
 GDAL.")
 
 otb_module(OTBIOGDAL
+ENABLE_SHARED
   DEPENDS
     OTBVectorDataBase
     OTBGdalAdapters
diff --git a/Modules/IO/IOTileMap/otb-module.cmake b/Modules/IO/IOTileMap/otb-module.cmake
index 5d61a21a50b5d259b4b173c267312e3f6637f52f..f800106991691b8fb33bc99ee7cb2126132ad4d9 100644
--- a/Modules/IO/IOTileMap/otb-module.cmake
+++ b/Modules/IO/IOTileMap/otb-module.cmake
@@ -2,6 +2,7 @@ set(DOCUMENTATION "This module contains features to read and write TileMap
 format images.")
 
 otb_module(OTBIOTileMap
+ENABLE_SHARED
   DEPENDS
     OTBITK
     OTBImageBase
diff --git a/Modules/Learning/Supervised/otb-module.cmake b/Modules/Learning/Supervised/otb-module.cmake
index a3f8f471ddfd1a65be6cc75eb431bfd100a99add..cce5b946c6e6e0d7aed1919ce8049b107a7fe01c 100644
--- a/Modules/Learning/Supervised/otb-module.cmake
+++ b/Modules/Learning/Supervised/otb-module.cmake
@@ -3,6 +3,7 @@ classification and regression framework, currently based on
 OpenCV and/or libSVM")
 
 otb_module(OTBSupervised
+ENABLE_SHARED
   DEPENDS
     OTBBoost
     OTBCommon