diff --git a/CMakeLists.txt b/CMakeLists.txt
index 324541682531f40114b4a0ba21313346684a9586..15393c8dc94141379f9c0a2cddf1243aab832f7a 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,16 +2,32 @@ project(libdap-server C)
 cmake_minimum_required(VERSION 3.0)
 
 if(NOT (${SUBMODULES_NO_BUILD} MATCHES ON))
-    add_subdirectory(libdap)
-    add_subdirectory(libdap-crypto)
-    add_subdirectory(libdap-server-core)
-#    add_subdirectory(libdap-server-udp)
-    enable_testing()
-    add_subdirectory(test)
+    if ( NOT ( TARGET dap_core ) )
+	add_subdirectory(libdap)
+    endif()
+
+    if ( NOT ( TARGET dap_crypto ) )
+        add_subdirectory(libdap-crypto)
+    endif()
+
+    if ( NOT ( TARGET dap_server_core ) )
+        add_subdirectory(libdap-server-core)
+    endif()
+
+#    if ( NOT ( TARGET dap_server_udp ) )
+#        add_subdirectory(libdap-server-udp)
+#    endif()
+    
 endif()
 
+
 find_package(PkgConfig)
 pkg_check_modules(PC_JSON-C REQUIRED json-c)
 
 add_subdirectory(http_server)
 add_subdirectory(enc_server)
+
+if (BUILD_LIB_DAP_SERVER_TESTS)
+    enable_testing()
+    add_subdirectory(test)
+endif()
diff --git a/enc_server/CMakeLists.txt b/enc_server/CMakeLists.txt
index a8ee4ee141efe34b4df03ec4993c2f931974a5cb..7cb46498845d3f0ca3750c30501b790370bf034a 100755
--- a/enc_server/CMakeLists.txt
+++ b/enc_server/CMakeLists.txt
@@ -6,6 +6,6 @@ set(DAP_ENC_SERVER_SRCS  dap_enc_http.c  dap_enc_ks.c)
 add_library(${PROJECT_NAME} STATIC ${DAP_ENC_SERVER_SRCS})
 
 target_link_libraries(${PROJECT_NAME} dap_core dap_crypto
-    dap_core_server dap_http_server json-c)
+    dap_server_core dap_http_server json-c)
 
 target_include_directories(dap_enc_server INTERFACE .)
diff --git a/http_server/CMakeLists.txt b/http_server/CMakeLists.txt
index 38558a37934d33d781394aa0d01fdcef8cb2e250..0a548ba8bc0f4361c56489faf08bac67d01091b2 100755
--- a/http_server/CMakeLists.txt
+++ b/http_server/CMakeLists.txt
@@ -16,5 +16,5 @@ add_library(${PROJECT_NAME} STATIC ${HTTP_SERVER_SRCS})
 
 target_include_directories(dap_http_server INTERFACE . http_client)
 
-target_link_libraries(dap_http_server dap_core dap_crypto dap_core_server magic curl json-c)
+target_link_libraries(dap_http_server dap_core dap_crypto dap_server_core magic curl json-c)
 
diff --git a/libdap-server-core b/libdap-server-core
index 8db5287183350877e1b002603d121b69cffe0964..1008394f0ecdbc41d995a4cc5bbc4b51ad789eaf 160000
--- a/libdap-server-core
+++ b/libdap-server-core
@@ -1 +1 @@
-Subproject commit 8db5287183350877e1b002603d121b69cffe0964
+Subproject commit 1008394f0ecdbc41d995a4cc5bbc4b51ad789eaf
diff --git a/libdap-server-udp b/libdap-server-udp
index 2a075869bf2e4a00e98af0f1178d7cd2efcae0cb..4a1ea0e1a8936d8ca74a2d8cc9658bcee38e0e26 160000
--- a/libdap-server-udp
+++ b/libdap-server-udp
@@ -1 +1 @@
-Subproject commit 2a075869bf2e4a00e98af0f1178d7cd2efcae0cb
+Subproject commit 4a1ea0e1a8936d8ca74a2d8cc9658bcee38e0e26
diff --git a/test/enc_server/CMakeLists.txt b/test/enc_server/CMakeLists.txt
index 44b0e1e77552a23356c6de749221dfd70891ad65..3fd0ab3c3e42ca9e767325b08b0b782648f20b46 100755
--- a/test/enc_server/CMakeLists.txt
+++ b/test/enc_server/CMakeLists.txt
@@ -6,7 +6,7 @@ file(GLOB SRC *.h *.c)
 
 add_executable(${PROJECT_NAME} ${SRC})
 
-target_link_libraries(${PROJECT_NAME} dap_test dap_core)
+target_link_libraries(${PROJECT_NAME} dap_test dap_core dap_enc_server)
 
 add_test(
     NAME ${PROJECT_NAME}