diff --git a/CMakeLists.txt b/CMakeLists.txt
index d023c5063ef0f6aafc32f8ed25da8a63fa8d4a23..618595e723e2aabd7af6c6462bc90ab2501a7717 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,9 +22,15 @@ if(NOT (${SUBMODULES_NO_BUILD} MATCHES ON))
            "-fpic"
        )
     endif()
+    if (NOT (TARGET dap-server-core))
+       add_subdirectory(libdap-server-core)
+       target_compile_options(
+           dap_server_core PRIVATE
+           "-fpic"
+       )
+    endif()
 endif()
 
-add_subdirectory(libdap-server-core)
 
 
 file(GLOB SERVER_CORE_PYTHON_SRCS src/*.c)
@@ -38,10 +44,6 @@ add_library(${PROJECT_NAME} STATIC ${SERVER_CORE_PYTHON_SRCS} ${SERVER_CORE_PYTH
 
 target_link_libraries(${PROJECT_NAME})
 
-target_compile_options(
-    dap_server_core PRIVATE
-    "-fpic"
-)
 
 target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core)
 
diff --git a/libdap b/libdap
index f91fb3b3b6a69ef53531c8fd729592cdff4ec442..1c0614797a3a2a2f4c179630025600e177637a65 160000
--- a/libdap
+++ b/libdap
@@ -1 +1 @@
-Subproject commit f91fb3b3b6a69ef53531c8fd729592cdff4ec442
+Subproject commit 1c0614797a3a2a2f4c179630025600e177637a65
diff --git a/libdap-crypto b/libdap-crypto
index 4d764dfacaaa6aa1d8e5ba3c8242d8466e4faf10..d9337dda7db1b3430d17914b4e290b9a200045a2 160000
--- a/libdap-crypto
+++ b/libdap-crypto
@@ -1 +1 @@
-Subproject commit 4d764dfacaaa6aa1d8e5ba3c8242d8466e4faf10
+Subproject commit d9337dda7db1b3430d17914b4e290b9a200045a2
diff --git a/libdap-server-core b/libdap-server-core
index 73dfe6c2616ef8a805231560051de3c407d7cd89..73a86ef8202ee67a05098d186aac2deacb207f63 160000
--- a/libdap-server-core
+++ b/libdap-server-core
@@ -1 +1 @@
-Subproject commit 73dfe6c2616ef8a805231560051de3c407d7cd89
+Subproject commit 73a86ef8202ee67a05098d186aac2deacb207f63