]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
created cmake files for freetdm
authorArnaldo M Pereira <arnaldo@sangoma.com>
Wed, 6 Oct 2010 20:51:29 +0000 (17:51 -0300)
committerArnaldo M Pereira <arnaldo@sangoma.com>
Wed, 6 Oct 2010 20:51:29 +0000 (17:51 -0300)
libs/freetdm/CMakeLists.txt [new file with mode: 0644]
libs/freetdm/mod_freetdm/CMakeLists.txt [new file with mode: 0644]
libs/freetdm/sample/CMakeLists.txt [new file with mode: 0644]
libs/freetdm/sample/boost/CMakeLists.txt [new file with mode: 0644]
libs/freetdm/sample/dso/CMakeLists.txt [new file with mode: 0644]
libs/freetdm/sample/sched/CMakeLists.txt [new file with mode: 0644]

diff --git a/libs/freetdm/CMakeLists.txt b/libs/freetdm/CMakeLists.txt
new file mode 100644 (file)
index 0000000..24cbf7c
--- /dev/null
@@ -0,0 +1,244 @@
+#
+# cmake file that generate build files for freetdm.
+# this automatically includes the tests and also
+# mod_freetdm
+#
+# Arnaldo M Pereira <arnaldo@sangoma.com>
+#
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(freetdm)
+
+ADD_SUBDIRECTORY(sample)
+ADD_SUBDIRECTORY(mod_freetdm)
+
+# includes
+SET(freetdm_INCLUDES
+       ${PROJECT_SOURCE_DIR}/src/include 
+       ${PROJECT_SOURCE_DIR}/src/isdn/include 
+       ${PROJECT_SOURCE_DIR}/src/include/private
+       ${PROJECT_SOURCE_DIR}/src/ftmod/ftmod_sangoma_boost
+)
+INCLUDE_DIRECTORIES(${freetdm_INCLUDES})
+LINK_DIRECTORIES(${freetdm_BINARY_DIR})
+
+# optional includes
+IF(DEFINED SNGSS7)
+       SET(freetdm_INCLUDES ${freetdm_INCLUDES} /usr/include/sng_ss7)
+ENDIF(DEFINED SNGSS7)
+
+IF(DEFINED SNGISDN)
+       SET(freetdm_INCLUDES ${freetdm_INCLUDES} /usr/include/sng_isdn)
+ENDIF(DEFINED SNGISDN)
+
+# definitions / CFLAGS
+ADD_DEFINITIONS(-DFTDM_CONFIG_DIR="/FIXME" -DFTDM_MOD_DIR="/FIXME")
+IF(DEFINED WIN32)
+       ADD_DEFINITIONS(-DFREETDM_EXPORTS -DTELETONE_EXPORTS -DMOD_EXPORTS -DDLL_EXPORTS)
+ENDIF(DEFINED WIN32)
+IF(DEFINED SNGISDN)
+       SET(freetdm_INCLUDES ${freetdm_INCLUDES} /usr/include/sng_isdn)
+ENDIF(DEFINED SNGISDN)
+
+# lib sources
+SET(freetdm_SOURCES
+       ${PROJECT_SOURCE_DIR}/src/hashtable.c
+       ${PROJECT_SOURCE_DIR}/src/hashtable_itr.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_io.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_queue.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_sched.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_call_utils.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_config.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_callerid.c
+       ${PROJECT_SOURCE_DIR}/src/fsk.c
+       ${PROJECT_SOURCE_DIR}/src/uart.c
+       ${PROJECT_SOURCE_DIR}/src/g711.c
+       ${PROJECT_SOURCE_DIR}/src/libteletone_detect.c
+       ${PROJECT_SOURCE_DIR}/src/libteletone_generate.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_buffer.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_threadmutex.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_dso.c
+       ${PROJECT_SOURCE_DIR}/src/ftdm_cpu_monitor.c
+)
+
+# libfreetdm.so
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${freetdm_SOURCES})
+
+IF(NOT DEFINED WIN32)
+       TARGET_LINK_LIBRARIES(${PROJECT_NAME} m pthread dl)
+ENDIF(NOT DEFINED WIN32)
+
+REMOVE_DEFINITIONS(-DLL_EXPORTS)
+
+# tools & tests
+IF(NOT DEFINED WIN32)
+       FOREACH(TOOL testtones testpri testr2 testapp testcid)
+               ADD_EXECUTABLE(${TOOL} ${PROJECT_SOURCE_DIR}/src/${TOOL}.c)
+               TARGET_LINK_LIBRARIES(${TOOL} -l${PROJECT_NAME})
+               ADD_DEPENDENCIES(${TOOL} ${PROJECT_NAME})
+       ENDFOREACH(TOOL)
+
+       ADD_EXECUTABLE(detect_dtmf
+               ${PROJECT_SOURCE_DIR}/src/detect_dtmf.c
+               ${PROJECT_SOURCE_DIR}/src/libteletone_detect.c
+       )
+       TARGET_LINK_LIBRARIES(detect_dtmf ${PROJECT_NAME})
+       ADD_DEPENDENCIES(detect_dtmf ${PROJECT_NAME})
+
+       ADD_EXECUTABLE(detect_tones
+               ${PROJECT_SOURCE_DIR}/src/detect_tones.c
+               ${PROJECT_SOURCE_DIR}/src/libteletone_detect.c
+       )
+       TARGET_LINK_LIBRARIES(detect_tones ${PROJECT_NAME})
+       ADD_DEPENDENCIES(detect_tones ${PROJECT_NAME})
+
+       ADD_EXECUTABLE(testanalog
+               ${PROJECT_SOURCE_DIR}/src/testanalog.c
+       )
+       TARGET_LINK_LIBRARIES(testanalog -l${PROJECT_NAME})
+       ADD_DEPENDENCIES(testanalog ${PROJECT_NAME})
+
+       # optional tests/tools
+       IF(HAVE_SCTP)
+               ADD_EXECUTABLE(testboost src/testboost.c)
+               TARGET_LINK_LIBRARIES(testboost ${PROJECT_NAME})
+       ENDIF(HAVE_SCTP)
+ELSE(NOT DEFINED WIN32)
+       MESSAGE(WARNING "Not building tools/tests on WIN32 yet.")
+ENDIF(NOT DEFINED WIN32)
+
+#
+# ftmod modules
+#
+SET(ftmod_DIR ${PROJECT_SOURCE_DIR}/src/ftmod)
+
+IF(DEFINED WIN32)
+       SET(ftmod_ADDITIONAL_SOURCES
+               ${PROJECT_SOURCE_DIR}/src/ftdm_io.c
+               ${PROJECT_SOURCE_DIR}/src/ftdm_config.c
+               ${PROJECT_SOURCE_DIR}/src/ftdm_queue.c
+               ${PROJECT_SOURCE_DIR}/src/g711.c
+       )
+       SET(module_list skel analog analog_em)
+ELSE(DEFINED WIN32)
+       SET(module_list skel analog analog_em zt)
+ENDIF(DEFINED WIN32)
+
+# build default modules
+FOREACH(module ${module_list})
+       ADD_LIBRARY(ftmod_${module} MODULE ${ftmod_DIR}/ftmod_${module}/ftmod_${module}.c ${ftmod_ADDITIONAL_SOURCES})
+       TARGET_LINK_LIBRARIES(ftmod_${module} ${PROJECT_NAME})
+ENDFOREACH(module)
+
+# build isdn ftmod
+IF(DEFINED BUILD_FTMOD_ISDN)
+       SET(ftmod_isdn_SOURCES
+               ${PROJECT_SOURCE_DIR}/src/isdn/EuroISDNStateNT.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/EuroISDNStateTE.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/mfifo.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q921.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q931api.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q931.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q931ie.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q931mes.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q931StateNT.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q931StateTE.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/nationalmes.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/nationalStateNT.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/nationalStateTE.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/DMSmes.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/DMSStateNT.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/DMSStateTE.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/5ESSmes.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/5ESSStateNT.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/5ESSStateTE.c
+               ${PROJECT_SOURCE_DIR}/src/isdn/Q932mes.c
+               ${ftmod_DIR}/ftmod_isdn/ftmod_isdn.c
+       )
+       IF(NOT DEFINED WIN32)
+               ADD_DEFINITIONS(-D_GNU_SOURCE)
+       ENDIF(NOT DEFINED WIN32)
+       ADD_LIBRARY(ftmod_isdn MODULE ${ftmod_isdn_SOURCES})
+       TARGET_LINK_LIBRARIES(ftmod_isdn ${PROJECT_NAME})
+ENDIF(DEFINED BUILD_FTMOD_ISDN)
+
+# from now on, optionals
+IF(DEFINED LIBSANGOMA)
+       ADD_LIBRARY(ftmod_wanpipe MODULE ${ftmod_DIR}/ftmod_wanpipe/ftmod_wanpipe.c)
+       IF(DEFINED WIN32)
+               MESSAGE(WARNING "FIXME: look for wanpipe headers on win32")
+       ELSE(DEFINED WIN32)
+               ADD_DEFINITIONS(-D__LINUX__)
+               INCLUDE_DIRECTORIES(/usr/include/wanpipe)
+       ENDIF(DEFINED WIN32)
+       TARGET_LINK_LIBRARIES(ftmod_wanpipe sangoma ${PROJECT_NAME})
+ENDIF(DEFINED LIBSANGOMA)
+
+IF(DEFINED HAVE_SCTP)
+       ADD_LIBRARY(ftmod_sangoma_boost MODULE
+               ${ftmod_DIR}/ftmod_sangoma_boost/sangoma_boost_client.c
+               ${ftmod_DIR}/ftmod_sangoma_boost/ftmod_sangoma_boost.c
+       )
+       TARGET_LINK_LIBRARIES(ftmod_sangoma_boost ${PROJECT_NAME})
+ENDIF(DEFINED HAVE_SCTP)
+
+IF(DEFINED LIBPRI)
+       ADD_LIBRARY(ftmod_libpri MODULE
+               ${ftmod_DIR}/ftmod_libpri/libpri_client.c
+               ${ftmod_DIR}/ftmod_libpri/ftmod_libpri.c
+       )
+       TARGET_LINK_LIBRARIES(ftmod_libpri ${PROJECT_NAME})
+ENDIF(DEFINED LIBPRI)
+
+IF(DEFINED PRITAP)
+       ADD_LIBRARY(ftmod_pritap MODULE
+               ${ftmod_DIR}/ftmod_pritap/pritap_client.c
+               ${ftmod_DIR}/ftmod_pritap/ftmod_pritap.c
+       )
+       TARGET_LINK_LIBRARIES(ftmod_pritap ${PROJECT_NAME} pri)
+ENDIF(DEFINED PRITAP)
+
+IF(DEFINED SNGSS7)
+       ADD_LIBRARY(ftmod_sangoma_ss7 MODULE
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cntrl.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_timers.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cfg.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_sta.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_sts.c
+               ${ftmod_DIR}/ftmod_sangoma_ss7/ftmod_sangoma_ss7_logger.c
+       )
+       IF(NOT DEFINED WIN32)
+               ADD_DEFINITIONS(-D_GNU_SOURCE)
+       ENDIF(NOT DEFINED WIN32)
+       TARGET_LINK_LIBRARIES(ftmod_sangoma_ss7 ${PROJECT_NAME} sng_ss7)
+ENDIF(DEFINED SNGSS7)
+
+IF(DEFINED SNGISDN)
+       ADD_LIBRARY(ftmod_sangoma_isdn MODULE
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
+               ${ftmod_DIR}/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c
+       )
+       IF(NOT DEFINED WIN32)
+               ADD_DEFINITIONS(-D_GNU_SOURCE)
+       ENDIF(NOT DEFINED WIN32)
+       TARGET_LINK_LIBRARIES(ftmod_sangoma_isdn ${PROJECT_NAME} sng_isdn)
+ENDIF(DEFINED SNGISDN)
+
+IF(DEFINED OPENR2)
+       ADD_LIBRARY(ftmod_r2 MODULE ${ftmod_DIR}/ftmod_r2/ftmod_r2.c)
+       TARGET_LINK_LIBRARIES(ftmod_r2 ${PROJECT_NAME} openr2)
+ENDIF(DEFINED OPENR2)
diff --git a/libs/freetdm/mod_freetdm/CMakeLists.txt b/libs/freetdm/mod_freetdm/CMakeLists.txt
new file mode 100644 (file)
index 0000000..25847e7
--- /dev/null
@@ -0,0 +1,32 @@
+#
+# Arnaldo M Pereira <arnaldo@sangoma.com>
+#
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(mod_freetdm)
+
+IF(NOT DEFINED WIN32)
+       ADD_DEFINITIONS(-g -O2 -ffast-math -Wall -Werror -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -O0 -g -ggdb -DPACKAGE_NAME=\"freetdm\" -DPACKAGE_TARNAME=\"freetdm\" -DPACKAGE_VERSION=\"pre-alpha\" -DPACKAGE_STRING=\"freetdm\ pre-alpha\" -DPACKAGE_BUGREPORT=\"bugs@freeswitch.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libfreetdm\" -DVERSION=\"0.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBDL=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBM=1 -DSIZEOF_LONG=8 -DHAVE_NETINET_SCTP_H=1 -DHAVE_NETDB_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_GETHOSTBYNAME_R=1) # -DDEBUG=/\*\*/)
+ENDIF(NOT DEFINED WIN32)
+
+# includes
+SET(mod_freetdm_INCLUDES
+       ${PROJECT_SOURCE_DIR}/../src/include 
+       ${PROJECT_SOURCE_DIR}/../src/isdn/include 
+       ${PROJECT_SOURCE_DIR}/../../libteletone/src
+       ${PROJECT_SOURCE_DIR}/../../../src/include
+)
+INCLUDE_DIRECTORIES(${mod_freetdm_INCLUDES})
+
+LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/..)
+ADD_LIBRARY(${PROJECT_NAME} SHARED mod_freetdm.c)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} freetdm -fPIC -Werror -fvisibility=hidden)
+
+IF(DEFINED WIN32)
+       SET(EXT lib)
+ELSE(DEFINED WIN32)
+       SET(EXT so)
+ENDIF(DEFINED WIN32)
+
+ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD
+       COMMAND ${CMAKE_COMMAND} -E rename lib${PROJECT_NAME}.${EXT} ${PROJECT_NAME}.${EXT}
+)
diff --git a/libs/freetdm/sample/CMakeLists.txt b/libs/freetdm/sample/CMakeLists.txt
new file mode 100644 (file)
index 0000000..330d590
--- /dev/null
@@ -0,0 +1,8 @@
+#
+# Arnaldo M Pereira <arnaldo@sangoma.com>
+#
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(sample)
+
+ADD_SUBDIRECTORY(boost)
+#ADD_SUBDIRECTORY(sched) FIXME: this code doesnt compile
diff --git a/libs/freetdm/sample/boost/CMakeLists.txt b/libs/freetdm/sample/boost/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6f36f10
--- /dev/null
@@ -0,0 +1,12 @@
+#
+# Arnaldo M Pereira <arnaldo@sangoma.com>
+#
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(boost)
+
+IF(NOT DEFINED WIN32)
+       INCLUDE_DIRECTORIES(/usr/local/freeswitch/include)
+       ADD_DEFINITIONS(-Wall)
+       ADD_EXECUTABLE(ftdmstart ftdmstart.c)
+       TARGET_LINK_LIBRARIES(ftdmstart freetdm)
+ENDIF(NOT DEFINED WIN32)
diff --git a/libs/freetdm/sample/dso/CMakeLists.txt b/libs/freetdm/sample/dso/CMakeLists.txt
new file mode 100644 (file)
index 0000000..defcc5c
--- /dev/null
@@ -0,0 +1,12 @@
+#
+# Arnaldo M Pereira <arnaldo@sangoma.com>
+#
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(dso)
+
+IF(NOT DEFINED WIN32)
+       INCLUDE_DIRECTORIES(/usr/local/freeswitch/include)
+       ADD_DEFINITIONS(-Wall)
+       ADD_EXECUTABLE(ftdmload ftdmload.c)
+       TARGET_LINK_LIBRARIES(ftdmload freetdm)
+ENDIF(NOT DEFINED WIN32)
diff --git a/libs/freetdm/sample/sched/CMakeLists.txt b/libs/freetdm/sample/sched/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d769925
--- /dev/null
@@ -0,0 +1,12 @@
+#
+# Arnaldo M Pereira <arnaldo@sangoma.com>
+#
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(sched)
+
+IF(NOT DEFINED WIN32)
+       INCLUDE_DIRECTORIES(/usr/local/freeswitch/include)
+       ADD_DEFINITIONS(-Wall)
+       ADD_EXECUTABLE(ftdmsched ftdmsched.c)
+       TARGET_LINK_LIBRARIES(ftdmsched freetdm)
+ENDIF(NOT DEFINED WIN32)