cmake: fix static build on Linux

When building Python, many extra libraries must be included, such
as expat and zlib.

Signed-off-by: Sean Cross <sean@xobs.io>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 77745f9..67b0c18 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,7 +23,13 @@
             add_definitions(-DBOOST_PYTHON_STATIC_LIB)
         endif()
     else()
+        set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".so")
         set(link_param "-static")
+        if (BUILD_PYTHON)
+            find_package(ZLIB)
+            find_package(EXPAT)
+            find_package(Threads)
+        endif()
     endif()
 endif()
 
@@ -267,6 +273,14 @@
         endif()
         if (BUILD_PYTHON)
             target_link_libraries(${target} LINK_PUBLIC ${PYTHON_LIBRARIES})
+            if (STATIC_BUILD)
+                target_link_libraries(${target} LINK_PUBLIC ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES} ${EXPAT_LIBRARIES} -lutil)
+                if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+                elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND MSVC)
+                else()
+                    target_link_libraries(${target} LINK_PUBLIC -lutil)
+                endif()
+            endif()
         endif()
     endforeach (target)
 endforeach (family)