 +endif()
 diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
 new file mode 100644
-index 0000000..98f68e9
+index 0000000..24602e2
 --- /dev/null
 +++ b/crypto/CMakeLists.txt
-@@ -0,0 +1,1720 @@
+@@ -0,0 +1,1713 @@
 +set(lib_name crypto)
 +########################################
 +set(gen_file include/buildinf.h)
 +set(BUILDINF_PLATFORM ${CMAKE_SYSTEM_NAME})
-+string(TIMESTAMP BUILDINF_DATE "%a %b %d %H:%M:%S %Y UTC" UTC)
++if(DEFINED OPENSSL_VER) # passed in via externpro
++  string(TIMESTAMP BUILDINF_DATE "%a %b %d %H:%M:%S %Y UTC" UTC)
++else()
++  string(TIMESTAMP BUILDINF_DATE "%a %b %d %Y UTC" UTC)
++endif()
 +set(compilerFlags "compiler: ") #"${CMAKE_C_COMPILER} ${CMAKE_CXX_FLAGS}"
 +string(LENGTH ${compilerFlags} lenFlags)
 +math(EXPR maxPos ${lenFlags}-1)

+########################################
+list(APPEND ${lib_name}_all ${${lib_name}_libsrcs})
+compareCmakeFilesys("${${lib_name}_all}")

+source_group(openssl FILES ${openssl_srcs})
+list(APPEND ${lib_name}_libsrcs ${openssl_srcs})
+########################################
+add_library(${lib_name} INTERFACE)
+if(FALSE)
+# TODO: it appears cmake 3.13 has a fix for the target_sources() call to work
+# https://cmake.org/pipermail/cmake/2016-July/063896.html
+target_sources(${lib_name} INTERFACE ${${lib_name}_libsrcs})
+else()
+add_custom_target(${lib_name}Sources SOURCES ${${lib_name}_libsrcs})
+endif()
+target_include_directories(${lib_name} INTERFACE
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> # e_os.h, openssl/opensslconf.h
+  )
+# don't install the following...
+list(REMOVE_ITEM openssl_srcs
+  openssl/__DECC_INCLUDE_EPILOGUE.H
