--- /dev/null
+project (OpenSRF)
+
+cmake_minimum_required(VERSION 2.8)
+
+INCLUDE(FindLibXml2)
+INCLUDE(FindPerl)
+INCLUDE(FindPythonInterp)
+
+include_directories (include)
+add_subdirectory (src/c-apps)
+add_subdirectory (src/libopensrf)
+add_subdirectory (src/jserver)
+
+set(prefix ${CMAKE_INSTALL_PREFIX})
+set(exec_prefix ${CMAKE_INSTALL_PREFIX})
+set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
+set(includedir ${CMAKE_INSTALL_PREFIX}/include)
+set(CONF_DIR ${CMAKE_INSTALL_PREFIX}/conf)
+set(PID_DIR ${CMAKE_INSTALL_PREFIX}/var)
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-perl.pl.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-perl
+ @ONLY
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bin/osrf_config.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-config
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bin/osrf_ctl.sh.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-ctl
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/dokuwiki-doc-stubber.pl.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/doc/dokuwiki-doc-stubber.pl
+ @ONLY
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/simple_text.py.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/examples/simple_text.py
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/multisession-test.pl.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/examples/multisession-test.pl
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/math_client.py.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/examples/math_client.py
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/math_xul_client/Makefile.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/examples/math_xul_client/Makefile
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/math_bench.pl.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/examples/math_bench.pl
+ @ONLY
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/python/opensrf.py.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/python/opensrf-python
+)
--- /dev/null
+include_directories(${LIBXML2_INCLUDE_DIR})
+
+add_executable (timejson timejson.c)
+add_dependencies (timejson opensrf)
+target_link_libraries (timejson opensrf)
+
+add_library (osrf_dbmath MODULE osrf_dbmath.c)
+add_dependencies (osrf_dbmath opensrf)
+target_link_libraries (osrf_dbmath ${LIBXML2_LIBRARIES})
+
+add_library (osrf_math MODULE osrf_math.c)
+add_dependencies (osrf_math opensrf)
+target_link_libraries (osrf_math ${LIBXML2_LIBRARIES})
+
+add_library (osrf_version MODULE osrf_version.c)
+add_dependencies (osrf_version opensrf)
+target_link_libraries (osrf_version ${LIBXML2_LIBRARIES})
--- /dev/null
+add_executable(chopchop osrf_chat.c osrf_chat.h osrf_chat_main.c)
+add_dependencies (chopchop opensrf)
+target_link_libraries (chopchop opensrf ${LIBXML2_LIBRARIES})
+include_directories(${LIBXML2_INCLUDE_DIR})
+
+set_target_properties (chopchop PROPERTIES
+ COMPILE_DEFINITIONS _GNU_SOURCE
+)
--- /dev/null
+
+find_library (MEMCACHED memcached)
+
+add_executable (osrf_json_test
+ osrf_json_test.c
+ osrf_json_object.c
+ osrf_parse_json.c
+ osrf_json_tools.c
+ osrf_legacy_json.c
+ osrf_json_xml.c
+ osrf_list.c
+ osrf_hash.c
+ osrf_utf8.c
+ utils.c
+ log.c
+ md5.c
+ string_array.c
+)
+
+add_library (opensrf SHARED
+ log.c
+ md5.c
+ osrf_application.c
+ osrf_app_session.c
+ osrf_cache.c
+ osrfConfig.c
+ osrf_hash.c
+ osrf_json_object.c
+ osrf_json_tools.c
+ osrf_json_xml.c
+ osrf_legacy_json.c
+ osrf_list.c
+ osrf_message.c
+ osrf_parse_json.c
+ osrf_prefork.c
+ osrf_settings.c
+ osrf_stack.c
+ osrf_system.c
+ osrf_transgroup.c
+ osrf_utf8.c
+ sha.c
+ socket_bundle.c
+ string_array.c
+ transport_client.c
+ transport_message.c
+ transport_session.c
+ utils.c
+ xml_utils.c
+)
+
+target_link_libraries (opensrf memcached ${LIBXML2_LIBRARIES})
+
+set_target_properties (opensrf PROPERTIES
+ COMPILE_DEFINITIONS ASSUME_STATELESS;OSRF_STRICT_PARAMS;OSRF_JSON_ENABLE_XML_UTILS
+)
+
+include_directories(${LIBXML2_INCLUDE_DIR})
+