diff --git a/CMakeLists.txt b/CMakeLists.txt
index 12e52f7c6838493fb1e4ab528a3225f9b299f046..68594813ec702c994626d033fd1e62028eca869b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,6 +4,10 @@
 
 cmake_minimum_required(VERSION 2.6.4 FATAL_ERROR)
 project(OpenStructure CXX C)
+set (OST_VERSION_MAJOR 1)
+set (OST_VERSION_MINOR 2)
+set (OST_VERSION_PATCH 0)
+set (OST_VERSION_STRING ${OST_VERSION_MAJOR}.${OST_VERSION_MINOR}.${OST_VERSION_PATCH} )
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_support)
 include(OST)
 
diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake
index f392eb87efd7054720015ac739ed908bec5c1571..1eac2a3497b965afdb16ec976e482f5877358e8c 100644
--- a/cmake_support/OST.cmake
+++ b/cmake_support/OST.cmake
@@ -187,6 +187,9 @@ macro(module)
     get_target_property(_DEFS ${_LIB_NAME} COMPILE_DEFINITIONS)
     set_target_properties(${_LIB_NAME} PROPERTIES
                           COMPILE_DEFINITIONS OST_MODULE_${_UPPER_LIB_NAME})
+    set_target_properties(${_LIB_NAME} PROPERTIES
+                          VERSION ${OST_VERSION_STRING}
+                          SOVERSION ${OST_VERSION_MAJOR})    
     set_target_properties(${_LIB_NAME} PROPERTIES
                           LIBRARY_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}
                           ARCHIVE_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}
diff --git a/modules/config/CMakeLists.txt b/modules/config/CMakeLists.txt
index 65c9ca6bebf69a4def544c5c58dfc50be04ee98d..753a981903db6543eed7a9927450a7295293c6fa 100644
--- a/modules/config/CMakeLists.txt
+++ b/modules/config/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(SUBST_DICT OST_VERSION_MAJOR=${OST_VERSION_MAJOR} OST_VERSION_MINOR=${OST_VERSION_MINOR} 
+    OST_VERSION_PATCH=${OST_VERSION_PATCH})
+
 set(OST_CONFIG_HEADERS
 base.hh
 config.hh
@@ -57,7 +60,9 @@ endif()
 
 set(config_hh_generator "CMake")
 set(CONFIG_HH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/config.hh")
+set(VERSION_HH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/version.hh")
 configure_file(config.hh.in ${CONFIG_HH_FILE})
+configure_file(version.hh.in ${VERSION_HH_FILE})
 add_custom_target(ost_config)
 stage_headers("${OST_CONFIG_HEADERS}" "ost" 
               "ost_config" "" "ost")
diff --git a/modules/config/version.hh b/modules/config/version.hh.in
similarity index 85%
rename from modules/config/version.hh
rename to modules/config/version.hh.in
index c2c019aed425009563f897d8c8ea9bd9e16a62f9..94948475f862b2876ccdd459638f8c781735f784 100644
--- a/modules/config/version.hh
+++ b/modules/config/version.hh.in
@@ -19,9 +19,9 @@
 #ifndef OST_VERSION_HH_
 #define OST_VERSION_HH_
 
-#define OST_VERSION_MAJOR 1
-#define OST_VERSION_MINOR 2
-#define OST_VERSION_PATCH 0
-#define OST_VERSION_STRING "1.2.0"
+#define OST_VERSION_MAJOR @OST_VERSION_MAJOR@
+#define OST_VERSION_MINOR @OST_VERSION_MINOR@
+#define OST_VERSION_PATCH @OST_VERSION_PATCH@
+#define OST_VERSION_STRING "@OST_VERSION_STRING@"
 
 #endif /* OST_VERSION_HH_ */