diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49db2de8d042cb7d18743d35effe710492596ebe..6dbc0154c6e0d9e8e8a37203da59cf29589cd77a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,6 +68,7 @@ option(DD4HEP_IGNORE_GEANT4_TLS "Ignore the tls flag Geant4 was compiled with" O
 option(DD4HEP_USE_GEAR    "Build gear wrapper for backward compatibility" OFF)
 option(DD4HEP_USE_LCIO    "Build lcio extensions"     OFF)
 option(BUILD_TESTING      "Enable and build tests"    ON)
+option(BUILD_SHARED_LIBS  "If OFF build STATIC Libraries" ON)
 option(CMAKE_MACOSX_RPATH "Build with rpath on macos" ON)
 SET(DD4HEP_BUILD_PACKAGES "DDRec DDDetectors DDCond DDAlign DDDigi DDG4 DDEve UtilityApps"
   CACHE STRING "List of DD4hep packages to build")
diff --git a/DDAlign/CMakeLists.txt b/DDAlign/CMakeLists.txt
index 4a3f56d9cc44e27dddb9e8cbd72e075ca61ff6ac..fea6fe8f6cb6c3ba904e1280c87659ff44b79315 100644
--- a/DDAlign/CMakeLists.txt
+++ b/DDAlign/CMakeLists.txt
@@ -12,7 +12,7 @@ SET_PROPERTY(DIRECTORY . PROPERTY PACKAGE_NAME DDAlign)
 
 file(GLOB DDAlign_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
 
-add_library(DDAlign SHARED ${DDAlign_SOURCES})
+add_library(DDAlign ${DDAlign_SOURCES})
 add_library(DD4hep::DDAlign ALIAS DDAlign)
 
 target_include_directories(DDAlign
@@ -28,4 +28,6 @@ dd4hep_add_plugin(DDAlignPlugins SOURCES src/plugins/*.cpp USES DDAlign)
 set_target_properties(DDAlign DDAlignPlugins PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
 
 install(DIRECTORY include/DDAlign DESTINATION include)
-install(TARGETS DDAlign DDAlignPlugins EXPORT DD4hep DESTINATION lib)
+install(TARGETS DDAlign DDAlignPlugins EXPORT DD4hep
+  LIBRARY DESTINATION lib
+  ARCHIVE DESTINATION lib)
diff --git a/DDCond/CMakeLists.txt b/DDCond/CMakeLists.txt
index f611348fefdcbaf47bde81f1dac1243c75823dab..10c8fade1aaebe830793c1f2a50fc09ce76fbf87 100644
--- a/DDCond/CMakeLists.txt
+++ b/DDCond/CMakeLists.txt
@@ -18,7 +18,7 @@ dd4hep_add_dictionary(G__DDCond
 
 file(GLOB DDCond_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
 
-add_library(DDCond SHARED ${DDCond_SOURCES} G__DDCond.cxx)
+add_library(DDCond ${DDCond_SOURCES} G__DDCond.cxx)
 add_library(DD4hep::DDCond ALIAS DDCond)
 
 target_include_directories(DDCond
@@ -37,4 +37,6 @@ dd4hep_add_plugin(DDCondPlugins
 set_target_properties(DDCond DDCondPlugins PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
 
 install(DIRECTORY include/DDCond DESTINATION include)
-install(TARGETS DDCond DDCondPlugins EXPORT DD4hep DESTINATION lib)
+install(TARGETS DDCond DDCondPlugins EXPORT DD4hep
+  LIBRARY DESTINATION lib
+  ARCHIVE DESTINATION lib)
diff --git a/DDCore/CMakeLists.txt b/DDCore/CMakeLists.txt
index 44d188773f7a89a8469015fb377cc532b62915dc..2a3ac33661bba1bbf743852e6018a4198c323123 100644
--- a/DDCore/CMakeLists.txt
+++ b/DDCore/CMakeLists.txt
@@ -58,7 +58,7 @@ if(TARGET Boost::boost)
   file(GLOB DDCore_BOOST_SOURCES src/JSON/*.cpp)
 endif()
 
-add_library(DDCore SHARED ${DDCore_SOURCES} ${DDCore_BOOST_SOURCES}
+add_library(DDCore ${DDCore_SOURCES} ${DDCore_BOOST_SOURCES}
   G__DD4hep.cxx
   G__DD4hepSegmentations.cxx
   G__DD4hepProperties.cxx
@@ -97,7 +97,7 @@ IF(TARGET ROOT::Gdml)
     USES DD4hep::DDCore ROOT::Core ROOT::Gdml
     )
   set_target_properties(DDGDMLPlugins PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
-  install(TARGETS DDGDMLPlugins EXPORT DD4hep LIBRARY DESTINATION lib)
+  LIST(APPEND OPTIONAL_TARGETS DDGDMLPlugins)
 ELSE()
   dd4hep_print("ROOT does not include GDML, not building DDCore GDML Plugins")
 ENDIF()
@@ -109,7 +109,7 @@ IF(TARGET ROOT::PyROOT)
     USES DDCore ROOT::Core ROOT::PyROOT
     )
   set_target_properties(DDPythonPlugins PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
-  install(TARGETS DDPythonPlugins EXPORT DD4hep LIBRARY DESTINATION lib)
+  LIST(APPEND OPTIONAL_TARGETS DDPythonPlugins)
 ELSE()
   dd4hep_print("ROOT does not include PyRoot, not building DDCore DDPython Plugins")
 ENDIF()
@@ -130,4 +130,7 @@ install(DIRECTORY
   )
 
 set_target_properties(DDCore DDCorePlugins PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
-install(TARGETS DDCore DDCorePlugins EXPORT DD4hep LIBRARY DESTINATION lib)
+install(TARGETS DDCore DDCorePlugins ${OPTIONAL_TARGETS} EXPORT DD4hep
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib
+  )
diff --git a/DDDetectors/CMakeLists.txt b/DDDetectors/CMakeLists.txt
index 8e248693e0edbfa191efc925d6787c63bdaa868f..1851b2a972edddb9a55e5fead24487db137c5d7e 100644
--- a/DDDetectors/CMakeLists.txt
+++ b/DDDetectors/CMakeLists.txt
@@ -25,5 +25,8 @@ dd4hep_add_plugin(DDDetectors
 )
 
 set_target_properties(DDDetectors PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
-install(TARGETS DDDetectors EXPORT DD4hep LIBRARY DESTINATION lib)
+install(TARGETS DDDetectors EXPORT DD4hep
+  LIBRARY DESTINATION lib
+  ARCHIVE DESTINATION lib
+  )
 install(DIRECTORY compact DESTINATION DDDetectors)
diff --git a/DDDigi/CMakeLists.txt b/DDDigi/CMakeLists.txt
index c0ac553a0ca3e0322a83fb850e6ab615a1e103e9..d6f26201f0e6c92d8a67bb7cf23e83f384fcf997 100644
--- a/DDDigi/CMakeLists.txt
+++ b/DDDigi/CMakeLists.txt
@@ -10,7 +10,7 @@
 #==========================================================================
 SET_PROPERTY(DIRECTORY . PROPERTY PACKAGE_NAME DDDigi)
 file(GLOB DDDigi_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
-add_library(DDDigi SHARED ${DDDigi_SOURCES})
+add_library(DDDigi ${DDDigi_SOURCES})
 add_library(DD4hep::DDDigi ALIAS DDDigi)
 
 target_link_libraries(DDDigi PUBLIC
@@ -53,6 +53,9 @@ set_target_properties(DDDigi DDDigiPlugins PROPERTIES VERSION ${DD4hep_VERSION}
 
 file(GLOB DDigi_python python/*.py python/*.C)
 install(FILES ${DDigi_python} DESTINATION ${DD4HEP_PYTHON_INSTALL_DIR})
-install(TARGETS DDDigi DDDigiPlugins EXPORT DD4hep LIBRARY DESTINATION lib)
+install(TARGETS DDDigi DDDigiPlugins EXPORT DD4hep
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib
+  )
 install(DIRECTORY include/DDDigi DESTINATION include)
 
diff --git a/DDEve/CMakeLists.txt b/DDEve/CMakeLists.txt
index 3c8fbdf6ee570fe3a0a89e1ffeb41756e7f036f5..e0cbca66fc586f0e87dd914709d986446f8c305d 100644
--- a/DDEve/CMakeLists.txt
+++ b/DDEve/CMakeLists.txt
@@ -45,10 +45,13 @@ if(DD4HEP_USE_GEANT4)
     LINKDEF ../DDCore/include/ROOT/LinkDef.h
     USES    DD4hep::DDG4 
     )
-  add_library(DDG4IO SHARED DDEve/IO.cpp G__DDG4IO.cxx)
+  add_library(DDG4IO DDEve/IO.cpp G__DDG4IO.cxx)
   target_link_libraries(DDG4IO DD4hep::DDG4 DD4hep::DDEve_Interface)
   set_target_properties(DDG4IO PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
-  install(TARGETS DDG4IO EXPORT DD4hep LIBRARY DESTINATION lib)
+  install(TARGETS DDG4IO EXPORT DD4hep
+    LIBRARY DESTINATION lib
+    ARCHIVE DESTINATION lib
+    )
 endif()
 
 add_executable(ddeve DDEve/DDEve.cpp)
@@ -61,6 +64,7 @@ set_target_properties(DDEvePlugins PROPERTIES VERSION ${DD4hep_VERSION} SOVERSIO
 install(DIRECTORY DDEve DESTINATION examples )
 install(DIRECTORY include/DDEve DESTINATION include)
 install(TARGETS ddeve DDEvePlugins DDEve_Interface EXPORT DD4hep
+  ARCHIVE DESTINATION lib
   LIBRARY DESTINATION lib
   RUNTIME DESTINATION bin
   )
\ No newline at end of file
diff --git a/DDG4/CMakeLists.txt b/DDG4/CMakeLists.txt
index 0623be5861fae3e082a02103b2dc9947f82a6611..98fa70bf290051b2a5fcae3d6bcd475f70483282 100644
--- a/DDG4/CMakeLists.txt
+++ b/DDG4/CMakeLists.txt
@@ -18,7 +18,7 @@ ENDIF()
 
 #---Add Library---------------------------------------------------------------------
 file(GLOB DDG4_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
-add_library(DDG4 SHARED ${DDG4_SOURCES})
+add_library(DDG4 ${DDG4_SOURCES})
 add_library(DD4hep::DDG4 ALIAS DDG4)
 
 target_link_libraries(DDG4
@@ -63,7 +63,7 @@ if(TARGET Python::Python)
   if(TARGET ROOT::PyROOT)
     #---------------------------  Specialized python plugins  --------------------------
     dd4hep_print("|++> ROOT Has Python, creating DDPython library and plugins")
-    add_library(DDPython SHARED G__DDPython.cxx tpython/DDPython.cpp)
+    add_library(DDPython G__DDPython.cxx tpython/DDPython.cpp)
     add_library(DD4hep::DDPython ALIAS DDPython)
     target_link_libraries(DDPython DD4hep::DDG4 ROOT::Core Python::Python ROOT::PyROOT)
     IF(${CMAKE_CXX_STANDARD} GREATER 16)
@@ -137,6 +137,7 @@ set_target_properties(DDG4 DDG4Plugins DDG4Legacy PROPERTIES VERSION ${DD4hep_VE
 
 install(TARGETS DDG4 DDG4Plugins DDG4Legacy g4gdmlDisplay g4FromXML
   EXPORT DD4hep
+  ARCHIVE DESTINATION lib
   LIBRARY DESTINATION lib
   RUNTIME DESTINATION bin)
 install(DIRECTORY include/DDG4 DESTINATION include)
diff --git a/DDParsers/CMakeLists.txt b/DDParsers/CMakeLists.txt
index ac1be0f3aaa0805756be3cfaad8ec5c161b58fda..4f857c33b8ba65270ab4f3cfd35de3f4834a3bb0 100644
--- a/DDParsers/CMakeLists.txt
+++ b/DDParsers/CMakeLists.txt
@@ -15,7 +15,7 @@ dd4hep_print("|++> Will build DDParsers")
 file(GLOB DDParsers_SOURCES src/Parsers/*.cpp src/Evaluator/*.cpp)
 file(GLOB DDParsers_SPIRIT_SOURCES src/Spirit/*.cpp)
 
-add_library(DDParsers SHARED ${DDParsers_SOURCES} ${DDParsers_SPIRIT_SOURCES})
+add_library(DDParsers ${DDParsers_SOURCES} ${DDParsers_SPIRIT_SOURCES})
 add_library(DD4hep::DDParsers ALIAS DDParsers)
 
 target_compile_definitions(DDParsers INTERFACE BOOST_SPIRIT_USE_PHOENIX_V3)
@@ -29,5 +29,7 @@ target_include_directories(DDParsers
 target_link_libraries(DDParsers PUBLIC ROOT::Core Boost::boost ${XML_LIBRARIES})
 
 set_target_properties(DDParsers PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
-install(TARGETS DDParsers EXPORT DD4hep LIBRARY DESTINATION lib)
 install(DIRECTORY include/Parsers include/Evaluator DESTINATION include)
+install(TARGETS DDParsers ${OPTIONAL_TARGETS} EXPORT DD4hep
+  LIBRARY DESTINATION lib
+  ARCHIVE DESTINATION lib)
diff --git a/DDRec/CMakeLists.txt b/DDRec/CMakeLists.txt
index 4633ebb145ef6674ab432c64238c4911de7558a0..543cb0aff48b3ece4201683a10b4d2208dbef349 100644
--- a/DDRec/CMakeLists.txt
+++ b/DDRec/CMakeLists.txt
@@ -27,7 +27,7 @@ if(DD4HEP_USE_GEAR)
   SET(GEAR_SOURCE_FILE src/gear/DDGear.cpp)
 endif()
 
-ADD_LIBRARY(DDRec SHARED
+ADD_LIBRARY(DDRec
   ${DDRec_SOURCES}
   ${GEAR_SOURCE_FILE}
   G__DDRec.cxx
@@ -75,4 +75,7 @@ set_target_properties(DDRec DDRecPlugins PROPERTIES VERSION ${DD4hep_VERSION} SO
 file(GLOB DDRec_python python/*.py)
 install(FILES ${DDRec_python} DESTINATION ${DD4HEP_PYTHON_INSTALL_DIR})
 install(DIRECTORY include/DDRec DESTINATION include)
-install(TARGETS DDRec DDRecPlugins EXPORT DD4hep LIBRARY DESTINATION lib)
+install(TARGETS DDRec DDRecPlugins EXPORT DD4hep
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib
+  )
diff --git a/GaudiPluginService/CMakeLists.txt b/GaudiPluginService/CMakeLists.txt
index f8aaa6aeed610f23456bb61b4f7fdb5ed9fd9954..b3196eaa6695fec098fff0df307d05911ab8d187 100644
--- a/GaudiPluginService/CMakeLists.txt
+++ b/GaudiPluginService/CMakeLists.txt
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
 
 project(GaudiPluginService)
-add_library(DD4hepGaudiPluginMgr SHARED src/PluginServiceV1.cpp src/PluginServiceV2.cpp interface/DD4hepV1.cpp interface/DD4hepV2.cpp)
+add_library(DD4hepGaudiPluginMgr src/PluginServiceV1.cpp src/PluginServiceV2.cpp interface/DD4hepV1.cpp interface/DD4hepV2.cpp)
 add_library(DD4hep::DD4hepGaudiPluginMgr ALIAS DD4hepGaudiPluginMgr)
 
 target_compile_definitions(DD4hepGaudiPluginMgr PUBLIC Gaudi=DD4hep_Flavor)
@@ -31,4 +31,5 @@ target_compile_options(listcomponents PRIVATE -Wno-deprecated)
 
 INSTALL(TARGETS listcomponents DD4hepGaudiPluginMgr EXPORT DD4hep
   RUNTIME DESTINATION bin
+  ARCHIVE DESTINATION lib
   LIBRARY DESTINATION lib)
\ No newline at end of file
diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index 4b114b7a6517a7c4f9e5286a8efe19b67165c915..f5c95aa32d6ddd34e6a0309986b85a77d72826d1 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -613,17 +613,22 @@ function(dd4hep_add_plugin binary)
   dd4hep_debug("|++++> USES ${ARG_USES}")
   dd4hep_debug("|++++> INCLUDES ${ARG_INCLUDES}")
   dd4hep_debug("|++++> DEFINITIONS ${ARG_DEFINITIONS}")
-  add_library(${binary} SHARED ${SOURCES} ${ARG_GENERATED})
+  add_library(${binary} ${SOURCES} ${ARG_GENERATED})
   target_link_libraries(${binary} PUBLIC ${ARG_USES})
   target_include_directories(${binary} PUBLIC ${ARG_INCLUDES})
   target_compile_definitions(${binary} PUBLIC ${ARG_DEFINITIONS})
-  dd4hep_generate_rootmap(${binary})
+  IF(BUILD_SHARED_LIBS)
+    dd4hep_generate_rootmap(${binary})
+  ENDIF()
   if(NOT ${ARG_NOINSTALL})
     set(install_destination "lib")
     if(CMAKE_INSTALL_LIBDIR)
       set(install_destination ${CMAKE_INSTALL_LIBDIR})
     endif()
-    install(TARGETS ${binary} LIBRARY DESTINATION ${install_destination})
+    install(TARGETS ${binary}
+      ARCHIVE DESTINATION ${install_destination}
+      LIBRARY DESTINATION ${install_destination}
+      )
   endif()
 endfunction(dd4hep_add_plugin)