diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3360626..6fc3514 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,8 @@
 include(CheckCSourceCompiles)
 include(CheckCXXSourceCompiles)
 
+include(CMakeMacroLibtoolFile)
+
 project(tigervnc)
 set(VERSION 1.0.90)
 
diff --git a/cmake/Modules/CMakeMacroLibtoolFile.cmake b/cmake/Modules/CMakeMacroLibtoolFile.cmake
new file mode 100644
index 0000000..514793e
--- /dev/null
+++ b/cmake/Modules/CMakeMacroLibtoolFile.cmake
@@ -0,0 +1,92 @@
+macro(libtool_create_control_file _target)
+  # Get target properties to fill into control file
+  get_target_property(_target_location ${_target} LOCATION)
+  get_target_property(_target_type ${_target} TYPE)
+
+  message("-- Creating static libtool control file for target ${_target}")
+  # No support for shared libraries as tigervnc only needs libtool config files
+  # for static libraries
+  if("${_target_type}" MATCHES "^[^STATIC_LIBRARY]$")
+    message(ERROR " -  trying to use libtool_create_control_file on non static library target.")
+  endif()
+
+  #
+  # Parse the target_LIB_DEPENDS of libraries to put into libtool control file
+  # as library dependencies and handle a few corners...
+  #
+  foreach(library ${${_target}_LIB_DEPENDS})
+    # Assume all entries as shared if not platform specific static library
+    # extension is matched
+    if("${library}" MATCHES "[^.+\\${CMAKE_STATIC_LIBRARY_SUFFIX}]$")
+      # Check if we have shared extenstion or not
+      if("${library}" MATCHES ".+\\${CMAKE_SHARED_LIBRARY_SUFFIX}$")
+        # We got an shared library lets cut it down to path and library name then
+	# add to libtool dependency libs, we always assume this is a absoult path
+	# because this is how cmake does..
+	get_filename_component(_shared_lib ${library} NAME_WE)
+	get_filename_component(_shared_lib_path ${library} PATH)
+	string(REPLACE "lib" "" _shared_lib ${_shared_lib})
+        set(_target_dependency_libs "${_target_dependency_libs} -L${_shared_lib_path} -l${_shared_lib}")
+      else()
+	# No shared library suffix found, might also be a cmake target.
+	# Dont continue if we have a target name as lib	due to we
+	# assume static linkage against out targets
+	get_target_property(_ltp ${library} TYPE)
+	if(${_ltp})
+	  # No cmake target soo let's use find_library to see if we found any useful to use
+  	  find_library(FL ${library})
+	  if(FL)
+	    # Found library, lets cut it down to make libtool happy
+    	    get_filename_component(_shared_lib ${FL} NAME_WE)
+	    get_filename_component(_shared_lib_path ${FL} PATH)
+	    string(REPLACE "lib" "" _shared_lib ${_shared_lib})
+            set(_target_dependency_libs "${_target_dependency_libs} -L${_share_lib_path} -l${_shared_lib}")
+	  else()
+	    # Nothing found, lets ignore it
+	  endif()
+	else()
+	  # taget detected lets ignore it
+	endif()
+      endif()
+    else()
+      # Detected a static library, we want the absolute path so lets check if we have that
+      # if not try use find_library to get one
+      get_filename_component(_name ${library} NAME)
+      string(REPLACE "${_name}" "" _path ${library})
+      if(NOT "${_path}" MATCHES "")
+      	# We got a full path to static library lets add as is to libtool library dependencies
+        set(_target_dependency_libs "${_target_dependency_libs} ${library}")
+      else()
+        # there no path for the static library lets use find_library to find one
+	find_library(FL ${library})
+	if(FL)
+	  # got the library lets add it..
+	  set(_target_dependency_libs "${_target_dependency_libs} ${FL}")
+	else()
+	  # Nothing found, let's ignore it
+	endif()
+      endif()
+    endif()
+  endforeach()
+
+  # Write the libtool control file for static library
+  get_filename_component(_lname ${_target_location} NAME_WE)
+  set(_laname ${CMAKE_CURRENT_BINARY_DIR}/${_lname}.la)
+ 
+  file(WRITE ${_laname} "# ${_lname}.la - a libtool library file\n# Generated by ltmain.sh (GNU libtool) 2.2.6b\n")
+  file(APPEND ${_laname} "dlname=''\n\n")
+  file(APPEND ${_laname} "library_names=''\n\n")
+  file(APPEND ${_laname} "old_library='${_lname}.a'\n\n")
+  file(APPEND ${_laname} "inherited_linker_flags=''\n\n")
+  file(APPEND ${_laname} "dependency_libs=' ${_target_dependency_libs}'\n\n")
+  file(APPEND ${_laname} "weak_library_names=''\n\n")
+  file(APPEND ${_laname} "current=\n")
+  file(APPEND ${_laname} "age=\n")
+  file(APPEND ${_laname} "revision=\n\n")
+  file(APPEND ${_laname} "installed=no\n\n")
+  file(APPEND ${_laname} "shouldnotlink=no\n\n")
+  file(APPEND ${_laname} "dlopen=''\n")
+  file(APPEND ${_laname} "dlpreopen=''\n\n")
+  file(APPEND ${_laname} "libdir=''\n\n")
+
+endmacro()
\ No newline at end of file
diff --git a/common/Xregion/CMakeLists.txt b/common/Xregion/CMakeLists.txt
index d12554c..4cc4f0d 100644
--- a/common/Xregion/CMakeLists.txt
+++ b/common/Xregion/CMakeLists.txt
@@ -1,2 +1,4 @@
 add_library(Xregion STATIC
   Region.c)
+
+libtool_create_control_file(Xregion)
diff --git a/common/network/CMakeLists.txt b/common/network/CMakeLists.txt
index 2afba7c..9f664de 100644
--- a/common/network/CMakeLists.txt
+++ b/common/network/CMakeLists.txt
@@ -2,3 +2,5 @@
 
 add_library(network STATIC
   TcpSocket.cxx)
+
+libtool_create_control_file(network)
diff --git a/common/rdr/CMakeLists.txt b/common/rdr/CMakeLists.txt
index ac4313c..6557932 100644
--- a/common/rdr/CMakeLists.txt
+++ b/common/rdr/CMakeLists.txt
@@ -23,3 +23,5 @@
 endif()
 
 target_link_libraries(rdr ${RDR_LIBRARIES})
+
+libtool_create_control_file(rdr)
diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt
index 70d52c0..4ca9349 100644
--- a/common/rfb/CMakeLists.txt
+++ b/common/rfb/CMakeLists.txt
@@ -87,3 +87,5 @@
 add_library(rfb STATIC ${RFB_SOURCES})
 
 target_link_libraries(rfb ${RFB_LIBRARIES})
+
+libtool_create_control_file(rfb)
