diff --git a/libs/freetdm/CMakeLists.txt b/libs/freetdm/CMakeLists.txt new file mode 100644 index 0000000000..24cbf7c9eb --- /dev/null +++ b/libs/freetdm/CMakeLists.txt @@ -0,0 +1,244 @@ +# +# cmake file that generate build files for freetdm. +# this automatically includes the tests and also +# mod_freetdm +# +# Arnaldo M Pereira +# +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 index 0000000000..25847e713f --- /dev/null +++ b/libs/freetdm/mod_freetdm/CMakeLists.txt @@ -0,0 +1,32 @@ +# +# Arnaldo M Pereira +# +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 index 0000000000..330d590fd4 --- /dev/null +++ b/libs/freetdm/sample/CMakeLists.txt @@ -0,0 +1,8 @@ +# +# Arnaldo M Pereira +# +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 index 0000000000..6f36f106a5 --- /dev/null +++ b/libs/freetdm/sample/boost/CMakeLists.txt @@ -0,0 +1,12 @@ +# +# Arnaldo M Pereira +# +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 index 0000000000..defcc5c7f5 --- /dev/null +++ b/libs/freetdm/sample/dso/CMakeLists.txt @@ -0,0 +1,12 @@ +# +# Arnaldo M Pereira +# +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 index 0000000000..d769925be0 --- /dev/null +++ b/libs/freetdm/sample/sched/CMakeLists.txt @@ -0,0 +1,12 @@ +# +# Arnaldo M Pereira +# +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)