diff --git a/cmake/Modules/CMakeMacroLibtoolFile.cmake b/cmake/Modules/CMakeMacroLibtoolFile.cmake
index eb90748..f2ea7f8 100644
--- a/cmake/Modules/CMakeMacroLibtoolFile.cmake
+++ b/cmake/Modules/CMakeMacroLibtoolFile.cmake
@@ -26,6 +26,8 @@
     endif()
   endforeach()
 
+  set(STATIC_MODE OFF)
+
   foreach(library ${target_libs})
     # Assume all entries are shared libs if platform-specific static library
     # extension is not matched.
@@ -43,8 +45,17 @@
         # No shared library extension matched.  Check whether target is a CMake
         # target.
         get_target_property(_ltp ${library} TYPE)
-        if(NOT _ltp AND NOT ${library} STREQUAL "general")
-          # Not a CMake target, so use find_library() to attempt to locate the
+        if(_ltp OR ${library} STREQUAL "general")
+          # Target is a CMake target, so ignore (CMake targets are static
+          # libs in TigerVNC.)
+        elseif(${library} STREQUAL "-Wl,-Bstatic")
+          # All following libraries should be static
+          set(STATIC_MODE ON)
+        elseif(${library} STREQUAL "-Wl,-Bdynamic")
+          # All following libraries should be dynamic
+          set(STATIC_MODE OFF)
+        else()
+          # Normal library, so use find_library() to attempt to locate the
           # library in a system directory.
 
           # Need to remove -l prefix
@@ -52,22 +63,28 @@
             string(REPLACE ${CMAKE_LINK_LIBRARY_FLAG} "" library ${library})
           endif()
 
+          if(STATIC_MODE)
+            set(library ${CMAKE_STATIC_LIBRARY_PREFIX}${library}${CMAKE_STATIC_LIBRARY_SUFFIX})
+          endif()
+
           find_library(FL ${library})
           if(FL)
-            # Found library, so extract the path and library name, then add the
+            # Found library. Depending on if it's static or not we might
+            # extract the path and library name, then add the
             # result to the libtool dependency libs.
-            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${_shared_lib_path} -l${_shared_lib}")
+            if(STATIC_MODE)
+              set(_target_dependency_libs "${_target_dependency_libs} ${FL}")
+            else()
+              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${_shared_lib_path} -l${_shared_lib}")
+            endif()
           else()
-            # No shared library found, so ignore target.
+            # No library found, so ignore target.
           endif()
           # Need to clear FL to get new results next loop
           unset(FL CACHE)
-        else()
-          # Target is a CMake target, so ignore if (CMake targets are static
-          # libs in TigerVNC.)
         endif()
       endif()
     else()
