diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index d23921a..a448442 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -171,23 +171,17 @@
     target_include_directories(${mbedcrypto_static_target}
         PUBLIC ${MBEDTLS_DIR}/include/)
 
-    if(USE_CRYPTO_SUBMODULE)
-        install(TARGETS ${mbedcrypto_static_target}
-                DESTINATION ${LIB_INSTALL_DIR}
-                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-    else()
-        add_library(${mbedx509_static_target} STATIC ${src_x509})
-        set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
-        target_link_libraries(${mbedx509_static_target} ${libs} ${mbedcrypto_static_target})
+    add_library(${mbedx509_static_target} STATIC ${src_x509})
+    set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
+    target_link_libraries(${mbedx509_static_target} ${libs} ${mbedcrypto_static_target})
 
-        add_library(${mbedtls_static_target} STATIC ${src_tls})
-        set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
-        target_link_libraries(${mbedtls_static_target} ${libs} ${mbedx509_static_target})
+    add_library(${mbedtls_static_target} STATIC ${src_tls})
+    set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
+    target_link_libraries(${mbedtls_static_target} ${libs} ${mbedx509_static_target})
 
-        install(TARGETS ${mbedtls_static_target} ${mbedx509_static_target} ${mbedcrypto_static_target}
-                DESTINATION ${LIB_INSTALL_DIR}
-                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-    endif()
+    install(TARGETS ${mbedtls_static_target} ${mbedx509_static_target} ${mbedcrypto_static_target}
+            DESTINATION ${LIB_INSTALL_DIR}
+            PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 endif(USE_STATIC_MBEDTLS_LIBRARY)
 
 if(USE_SHARED_MBEDTLS_LIBRARY)
@@ -210,33 +204,20 @@
     target_include_directories(mbedtls
         PUBLIC ${MBEDTLS_DIR}/include/)
 
-    if(USE_CRYPTO_SUBMODULE)
-        install(TARGETS mbedcrypto
-                DESTINATION ${LIB_INSTALL_DIR}
-                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-    else()
-        add_library(mbedx509 SHARED ${src_x509})
-        set_target_properties(mbedx509 PROPERTIES VERSION 2.16.0 SOVERSION 0)
-        target_link_libraries(mbedx509 ${libs} mbedcrypto)
+    add_library(mbedx509 SHARED ${src_x509})
+    set_target_properties(mbedx509 PROPERTIES VERSION 2.16.0 SOVERSION 0)
+    target_link_libraries(mbedx509 ${libs} mbedcrypto)
 
-        add_library(mbedtls SHARED ${src_tls})
-        set_target_properties(mbedtls PROPERTIES VERSION 2.16.0 SOVERSION 12)
-        target_link_libraries(mbedtls ${libs} mbedx509)
+    add_library(mbedtls SHARED ${src_tls})
+    set_target_properties(mbedtls PROPERTIES VERSION 2.16.0 SOVERSION 12)
+    target_link_libraries(mbedtls ${libs} mbedx509)
 
-        install(TARGETS mbedtls mbedx509 mbedcrypto
-                DESTINATION ${LIB_INSTALL_DIR}
-                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-    endif()
+    install(TARGETS mbedtls mbedx509 mbedcrypto
+            DESTINATION ${LIB_INSTALL_DIR}
+            PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 endif(USE_SHARED_MBEDTLS_LIBRARY)
 
-if(USE_CRYPTO_SUBMODULE)
-    add_custom_target(crypto_lib DEPENDS mbedcrypto)
-    if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
-        add_dependencies(crypto_lib mbedcrypto_static)
-    endif()
-else()
-    add_custom_target(lib DEPENDS mbedcrypto mbedx509 mbedtls)
-    if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
-        add_dependencies(lib mbedcrypto_static mbedx509_static mbedtls_static)
-    endif()
+add_custom_target(lib DEPENDS mbedcrypto mbedx509 mbedtls)
+if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
+    add_dependencies(lib mbedcrypto_static mbedx509_static mbedtls_static)
 endif()
