--- /dev/null
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -41,12 +41,12 @@
+ set( CMAKE_OSX_ARCHITECTURES "i386;x86_64" )\r
+ \r
+ # The parsing order is significant!\r
+-add_subdirectory( src/BoostParts )\r
+-add_subdirectory( src/Xerces )\r
++#add_subdirectory( src/BoostParts )\r
++#add_subdirectory( src/Xerces )\r
+ add_subdirectory( src/XercesExtensions )\r
+-add_subdirectory( src/zlib )\r
++#add_subdirectory( src/zlib )\r
+ add_subdirectory( src/zipios )\r
+-add_subdirectory( src/googlemock )\r
++#add_subdirectory( src/googlemock )\r
+ add_subdirectory( src/FlightCrew )\r
+ add_subdirectory( src/FlightCrew-cli )\r
+ \r
+--- a/src/FlightCrew-cli/CMakeLists.txt
++++ b/src/FlightCrew-cli/CMakeLists.txt
+@@ -59,6 +59,7 @@
+ # "Print all warnings" flag for GCC\r
+ elseif( CMAKE_COMPILER_IS_GNUCXX )\r
+ add_definitions( -Wall )\r
++ set_target_properties( ${PROJECT_NAME} PROPERTIES LINK_FLAGS -Wl,--as-needed )\r
+ endif()\r
+ \r
+ set_source_files_properties( main.cpp PROPERTIES COMPILE_DEFINITIONS FLIGHTCREW_FULL_VERSION="${FLIGHTCREW_FULL_VERSION}" )\r
+--- a/src/FlightCrew/CMakeLists.txt
++++ b/src/FlightCrew/CMakeLists.txt
+@@ -50,8 +50,8 @@
+ \r
+ # creating PCH's for MSVC and GCC on Linux\r
+ include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake )\r
+-set( ALL_INCLUDES ${BoostParts_SOURCE_DIR}\r
+- ${Xerces_SOURCE_DIR}\r
++set( ALL_INCLUDES # ${BoostParts_SOURCE_DIR}\r
++# ${Xerces_SOURCE_DIR}\r
+ ${zipios_SOURCE_DIR} )\r
+ set( GCC_PCH_TARGET gccPCH_fc )\r
+ \r
+@@ -65,8 +65,8 @@
+ include_directories( ${CMAKE_CURRENT_BINARY_DIR}\r
+ ${CMAKE_CURRENT_SOURCE_DIR}\r
+ ../zipios \r
+- ../BoostParts \r
+- ../Xerces\r
++# ../BoostParts \r
++# ../Xerces\r
+ ../XercesExtensions\r
+ ../utf8-cpp\r
+ )\r
+@@ -78,11 +78,28 @@
+ # when they want a dll, but NOT FC_DLL_EXPORTING\r
+ add_definitions( -DFC_DLL_EXPORTING -DFC_BUILT_AS_DLL )\r
+ add_library( ${PROJECT_NAME} SHARED ${SOURCES} )\r
++ SET_TARGET_PROPERTIES(\r
++ ${PROJECT_NAME}\r
++ PROPERTIES\r
++ SOVERSION 0\r
++ VERSION 0.7.2\r
++ )\r
+ else()\r
+ add_library( ${PROJECT_NAME} ${SOURCES} )\r
+ endif()\r
+ \r
+-target_link_libraries( ${PROJECT_NAME} zipios BoostParts XercesExtensions )\r
++find_library(LIB_ZLIB z)\r
++find_library(BOOST_DT boost_date_time)\r
++find_library(BOOST_FS boost_filesystem)\r
++find_library(BOOST_PO boost_program_options)\r
++find_library(BOOST_RE boost_regex)\r
++find_library(BOOST_S boost_system)\r
++find_library(BOOST_T boost_thread)\r
++find_library(LIB_XERCES xerces-c)\r
++SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS -Wl,--as-needed)\r
++target_link_libraries( ${PROJECT_NAME} ${LIB_ZLIB} ${BOOST_DT} ${BOOST_FS} ${BOOST_PO} ${BOOST_RE} ${BOOST_S} ${BOOST_T} zipios ${LIB_XERCES} XercesExtensions )\r
++INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib COMPONENT libraries)\r
++INSTALL(FILES flightcrew.h exception.h DllExporting.h Result.h DESTINATION include/${PROJECT_NAME})\r
+ \r
+ #############################################################################\r
+ \r
+@@ -116,7 +133,7 @@
+ endif()\r
+ \r
+ # needed for correct Xerces header inclusion\r
+-add_definitions( -DXERCES_STATIC_LIBRARY )\r
++#add_definitions( -DXERCES_STATIC_LIBRARY )\r
+ \r
+ #############################################################################\r
+ \r
+--- a/src/FlightCrew-gui/CMakeLists.txt
++++ b/src/FlightCrew-gui/CMakeLists.txt
+@@ -67,7 +67,7 @@
+ # and the headers for the linked-to libraries\r
+ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}\r
+ ${CMAKE_CURRENT_BINARY_DIR}\r
+- ${BoostParts_SOURCE_DIR}\r
++# ${BoostParts_SOURCE_DIR}\r
+ ${FlightCrew_SOURCE_DIR}\r
+ ${XercesExtensions_SOURCE_DIR}\r
+ )\r
+@@ -110,6 +110,7 @@
+ # "Print all warnings" flag for GCC\r
+ elseif( CMAKE_COMPILER_IS_GNUCXX )\r
+ add_definitions( -Wall )\r
++ set_target_properties( ${PROJECT_NAME} PROPERTIES LINK_FLAGS -Wl,--as-needed )\r
+ endif()\r
+ \r
+ set_source_files_properties( MainWindow.cpp PROPERTIES COMPILE_DEFINITIONS FLIGHTCREW_FULL_VERSION="${FLIGHTCREW_FULL_VERSION}" )\r
+@@ -135,6 +136,10 @@
+ WORKING_DIRECTORY ${WORK_DIR}\r
+ DEPENDS addframeworks )\r
+ \r
++elseif(DEBIAN)\r
++ # these rules are so that we don't do any crazy installer\r
++ # building which we've stripped out anyway\r
++ set( WORK_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )\r
+ # For Linux and Windows, provide binary installers.\r
+ # For this to work on Linux, InstallJammer needs to be installed and on the system path.\r
+ # For this to work on Windows, Inno Setup's iscc compiler needs to be installed and on the system path.\r
+--- a/src/FlightCrew/tests/CMakeLists.txt
++++ b/src/FlightCrew/tests/CMakeLists.txt
+@@ -41,12 +41,11 @@
+ # That means that subdirs inherit the include_directories of their parents.\r
+ # So techincally we don't need to include Xerces etc.\r
+ include_directories( ${CMAKE_CURRENT_BINARY_DIR} \r
+- ${CMAKE_CURRENT_SOURCE_DIR} \r
+- ../../BoostParts \r
+- ../../Xerces \r
+ ../../XercesExtensions \r
+- ../../googlemock/include\r
+- ../../googlemock/gtest/include\r
++ /usr/src/gtest/\r
++ /usr/include/gtest/\r
++ /usr/src/gmock/\r
++ ${CMAKE_CURRENT_SOURCE_DIR}\r
+ )\r
+ \r
+ link_directories ( ${PROJECT_BINARY_DIR}/lib ) \r
+@@ -65,7 +64,9 @@
+ \r
+ add_executable( ${PROJECT_NAME} ${TEST_SOURCES} )\r
+ \r
+-target_link_libraries( ${PROJECT_NAME} FlightCrew gmock )\r
++add_library( GOOGLE_MOCK_LIB STATIC /usr/src/gmock/src/gmock-all.cc /usr/src/gtest/src/gtest-all.cc)\r
++\r
++target_link_libraries( ${PROJECT_NAME} FlightCrew GOOGLE_MOCK_LIB )\r
+ \r
+ #############################################################################\r
+ \r
+@@ -101,7 +102,7 @@
+ endif()\r
+ \r
+ # needed for correct Xerces header inclusion\r
+-add_definitions( -DXERCES_STATIC_LIBRARY )\r
++# add_definitions( -DXERCES_STATIC_LIBRARY )\r
+ \r
+ #############################################################################\r
+ \r
+--- a/src/XercesExtensions/CMakeLists.txt
++++ b/src/XercesExtensions/CMakeLists.txt
+@@ -16,14 +16,16 @@
+ # We need to pick up the stdafx.h file\r
+ # and the headers for the linked-to libraries\r
+ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}\r
+- ../Xerces\r
+- ../BoostParts )\r
++# ../Xerces\r
++# ../BoostParts \r
++)\r
+ \r
+ link_directories ( ${PROJECT_BINARY_DIR}/lib ) \r
+ \r
+ add_library( ${PROJECT_NAME} ${SOURCES} )\r
+ \r
+-target_link_libraries( ${PROJECT_NAME} Xerces )\r
++find_library(LIB_XERCES xerces-c)\r
++target_link_libraries( ${PROJECT_NAME} ${LIB_XERCES} )\r
+ \r
+ #############################################################################\r
+ \r
+@@ -45,9 +47,10 @@
+ \r
+ # "Print all warnings" flag for GCC\r
+ elseif( CMAKE_COMPILER_IS_GNUCXX )\r
++ SET_TARGET_PROPERTIES( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS -fPIC)\r
+ add_definitions( -Wall )\r
+ endif()\r
+ \r
+ # needed for correct Xerces header inclusion\r
+-add_definitions( -DXERCES_STATIC_LIBRARY )\r
++# add_definitions( -DXERCES_STATIC_LIBRARY )\r
+ \r
+--- a/src/zipios/CMakeLists.txt
++++ b/src/zipios/CMakeLists.txt
+@@ -25,7 +25,15 @@
+ \r
+ add_library( ${PROJECT_NAME} ${SOURCES} )\r
+ \r
+-target_link_libraries( ${PROJECT_NAME} zlib BoostParts )\r
++\r
++find_library(LIB_ZLIB z)\r
++find_library(BOOST_DT boost_date_time)\r
++find_library(BOOST_FS boost_filesystem)\r
++find_library(BOOST_PO boost_program_options)\r
++find_library(BOOST_RE boost_regex)\r
++find_library(BOOST_S boost_system)\r
++find_library(BOOST_T boost_thread)\r
++target_link_libraries( ${PROJECT_NAME} ${LIB_ZLIB} ${BOOST_DT} ${BOOST_FS} ${BOOST_PO} ${BOOST_RE} ${BOOST_S} ${BOOST_T})\r
+ \r
+ #############################################################################\r
+ \r
+@@ -44,6 +52,7 @@
+ \r
+ # "Print all warnings" flag for GCC\r
+ elseif( CMAKE_COMPILER_IS_GNUCXX )\r
++ SET_TARGET_PROPERTIES( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS -fPIC)\r
+ add_definitions( -Wall )\r
+ endif()\r
+ \r