diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index 2d74559..6f7089b 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -1,4 +1,5 @@
-option(USE_SHARED_POLARSSL_LIBRARY "Build PolarSSL as a shared library." OFF)
+option(USE_STATIC_POLARSSL_LIBRARY "Build PolarSSL static library." ON)
+option(USE_SHARED_POLARSSL_LIBRARY "Build PolarSSL shared library." OFF)
 
 set(src
      aes.c
@@ -78,23 +79,38 @@
   set(CMAKE_C_FLAGS_CHECKFULL "${CMAKE_C_FLAGS_CHECK} -Wcast-qual")
 endif(CMAKE_COMPILER_IS_GNUCC)
 
-if(NOT USE_SHARED_POLARSSL_LIBRARY)
+if (NOT USE_STATIC_POLARSSL_LIBRARY AND NOT USE_SHARED_POLARSSL_LIBRARY)
+	message(FATAL_ERROR "Need to choose static or shared polarssl build!")
+endif(NOT USE_STATIC_POLARSSL_LIBRARY AND NOT USE_SHARED_POLARSSL_LIBRARY)
 
-add_library(polarssl STATIC ${src})
+if(USE_STATIC_POLARSSL_LIBRARY AND USE_SHARED_POLARSSL_LIBRARY)
+	# if we build both static an shared, then let
+	# tests and programs link to the shared lib target
+	set(polarssl_static_target "polarssl_static")
+elseif(USE_STATIC_POLARSSL_LIBRARY)
+	set(polarssl_static_target "polarssl")
+endif()
 
-else(NOT USE_SHARED_POLARSSL_LIBRARY)
+if(USE_STATIC_POLARSSL_LIBRARY)
+	add_library(${polarssl_static_target} STATIC ${src})
+	set_target_properties(${polarssl_static_target} PROPERTIES OUTPUT_NAME polarssl)
 
-add_library(polarssl SHARED ${src})
-set_target_properties(polarssl PROPERTIES VERSION 1.3.4 SOVERSION 5)
+	install(TARGETS ${polarssl_static_target}
+			DESTINATION ${LIB_INSTALL_DIR}
+			PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+endif()
 
-endif(NOT USE_SHARED_POLARSSL_LIBRARY)
+if(USE_SHARED_POLARSSL_LIBRARY)
+	add_library(polarssl SHARED ${src})
+	set_target_properties(polarssl PROPERTIES VERSION 1.3.4 SOVERSION 5)
 
-target_link_libraries(polarssl ${libs})
+	target_link_libraries(polarssl ${libs})
 
-if(ZLIB_FOUND)
-target_link_libraries(polarssl ${ZLIB_LIBRARIES})
-endif(ZLIB_FOUND)
+	if(ZLIB_FOUND)
+		target_link_libraries(polarssl ${ZLIB_LIBRARIES})
+	endif(ZLIB_FOUND)
 
-install(TARGETS polarssl
-        DESTINATION ${LIB_INSTALL_DIR}
-        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+	install(TARGETS polarssl
+			DESTINATION ${LIB_INSTALL_DIR}
+			PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+endif(USE_SHARED_POLARSSL_LIBRARY)
