diff --git a/CMakeLists.txt b/CMakeLists.txt
index efd84d0f23e966e942f758123cd3bc0cee297a8d..fac894bb990490bc45a4de1877a1d9b072a1d658 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,6 +39,7 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
 set(CMAKE_CXX_EXTENSIONS OFF)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+option(BUILD_SHARED_LIBRARY "Build using shared libraries" ON)
 
 set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
 
@@ -147,8 +148,8 @@ add_custom_command(
 ###############################################################################
 
 if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
-    add_library(caosdb_grpc SHARED ${GRPC_GENERATED})
-    add_library(caosdb SHARED ${libcaosdb_INCL} ${libcaosdb_SRC})
+    add_library(caosdb_grpc ${GRPC_GENERATED})
+    add_library(caosdb ${libcaosdb_INCL} ${libcaosdb_SRC})
     target_link_libraries(caosdb caosdb_grpc)
     target_link_libraries(caosdb_grpc ${CONAN_LIBS})
     set(LIBCAOSDB caosdb caosdb_grpc)
@@ -164,7 +165,7 @@ if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
     )
 else()
     add_library(caosdb
-        SHARED ${libcaosdb_INCL} ${libcaosdb_SRC} ${GRPC_GENERATED})
+        ${libcaosdb_INCL} ${libcaosdb_SRC} ${GRPC_GENERATED})
     set(LIBCAOSDB caosdb)
 endif()
 target_link_libraries(caosdb
@@ -179,7 +180,7 @@ target_include_directories(caosdb PUBLIC
     $<INSTALL_INTERFACE:include>
 )
 
-add_library(ccaosdb SHARED src/ccaosdb.cpp)
+add_library(ccaosdb src/ccaosdb.cpp)
 target_link_libraries(ccaosdb
     ${LIBCAOSDB}
     ${CONAN_LIBS}
diff --git a/include/caosdb/constants.h.in b/include/caosdb/constants.h.in
index bfec36bfbebf91fcd3e9eed38dd9ff305afc7a74..72dc62a3d9a41849bddf43be93b001b2fcd938a9 100644
--- a/include/caosdb/constants.h.in
+++ b/include/caosdb/constants.h.in
@@ -26,18 +26,18 @@
 namespace caosdb {
 #endif
 // clang-format off
-const int LIBCAOSDB_VERSION_MAJOR = @libcaosdb_VERSION_MAJOR@;
-const int LIBCAOSDB_VERSION_MINOR = @libcaosdb_VERSION_MINOR@;
-const int LIBCAOSDB_VERSION_PATCH = @libcaosdb_VERSION_PATCH@;
-const int COMPATIBLE_SERVER_VERSION_MAJOR = @libcaosdb_COMPATIBLE_SERVER_VERSION_MAJOR@;
-const int COMPATIBLE_SERVER_VERSION_MINOR = @libcaosdb_COMPATIBLE_SERVER_VERSION_MINOR@;
-const int COMPATIBLE_SERVER_VERSION_PATCH = @libcaosdb_COMPATIBLE_SERVER_VERSION_PATCH@;
-const char* COMPATIBLE_SERVER_VERSION_PRE_RELEASE = "@libcaosdb_COMPATIBLE_SERVER_VERSION_PRE_RELEASE@";
+static const int LIBCAOSDB_VERSION_MAJOR = @libcaosdb_VERSION_MAJOR@;
+static const int LIBCAOSDB_VERSION_MINOR = @libcaosdb_VERSION_MINOR@;
+static const int LIBCAOSDB_VERSION_PATCH = @libcaosdb_VERSION_PATCH@;
+static const int COMPATIBLE_SERVER_VERSION_MAJOR = @libcaosdb_COMPATIBLE_SERVER_VERSION_MAJOR@;
+static const int COMPATIBLE_SERVER_VERSION_MINOR = @libcaosdb_COMPATIBLE_SERVER_VERSION_MINOR@;
+static const int COMPATIBLE_SERVER_VERSION_PATCH = @libcaosdb_COMPATIBLE_SERVER_VERSION_PATCH@;
+static const char* COMPATIBLE_SERVER_VERSION_PRE_RELEASE = "@libcaosdb_COMPATIBLE_SERVER_VERSION_PRE_RELEASE@";
 
 /**
  * Precedence of configuration files from highest to lowest.
  */
-const char* LIBCAOSDB_CONFIGURATION_FILES_PRECEDENCE[] = {
+static const char* LIBCAOSDB_CONFIGURATION_FILES_PRECEDENCE[] = {
   "$CAOSDB_CLIENT_CONFIGURATION",
   "caosdb_client.json",
   "caosdb-client.json",