1 ################################################################################
5 ################################################################################
7 FREESWITCH_VERSION = 1.6.20
8 FREESWITCH_SOURCE = freeswitch-$(FREESWITCH_VERSION).tar.xz
9 FREESWITCH_SITE = http://files.freeswitch.org/freeswitch-releases
10 # External modules need headers/libs from staging
11 FREESWITCH_INSTALL_STAGING = YES
12 FREESWITCH_LICENSE = MPL-1.1, \
13 GPL-3.0+ with font exception (fonts), \
14 Apache-2.0 (apr, apr-util), \
15 LGPL-2.0+ (sofia-sip), \
16 LGPL-2.1, GPL-2.0 (spandsp), \
17 BSD-3-Clause (libsrtp), \
20 FREESWITCH_LICENSE_FILES = \
23 libs/apr-util/LICENSE \
24 libs/sofia-sip/COPYING \
25 libs/sofia-sip/COPYRIGHTS \
26 libs/spandsp/COPYING \
28 libs/tiff-4.0.2/COPYRIGHT
30 # required dependencies
31 FREESWITCH_DEPENDENCIES = \
42 # disable display of ClueCon banner in fs_cli
43 FREESWITCH_CONF_ENV += \
46 # we neither need host-perl nor host-php
47 FREESWITCH_CONF_ENV += \
48 ac_cv_prog_PERL=false \
50 ac_cv_prog_PHP=false \
52 ac_cv_prog_PHP_CONFIG=false \
53 ac_cv_have_php_config=no
55 # copied from freeswitch/configure.ac, line 258+
56 FREESWITCH_CONF_ENV += \
57 ac_cv_file__dev_ptmx=yes \
59 ac_cv_file__dev_urandom=yes \
60 ac_cv_func_realloc_0_nonnull=yes \
61 ac_cv_func_malloc_0_nonnull=yes \
62 ac_cv_func_setpgrp_void=yes \
63 ac_cv_file__dev_zero=yes \
64 apr_cv_tcp_nodelay_with_cork=yes \
65 ac_cv_file_dbd_apr_dbd_mysql_c=no \
66 ac_cv_sizeof_ssize_t=4 \
67 apr_cv_mutex_recursive=yes \
68 ac_cv_func_pthread_rwlock_init=yes \
69 apr_cv_type_rwlock_t=yes \
70 apr_cv_process_shared_works=yes \
71 apr_cv_mutex_robust_shared=yes
73 # build breaks with -Werror enabled
74 FREESWITCH_CONF_ENV += \
75 ac_cv_gcc_supports_w_no_unused_result=no
77 FREESWITCH_CONF_OPTS = \
81 --disable-system-xmlrpc-c
83 # zrtp supports a limited set of archs, sparc support is also broken due
84 # to a broken ld call by gcc, see libs/libzrtp/include/zrtp_config.h
85 ifeq ($(BR2_i386)$(BR2_arm)$(BR2_armeb)$(BR2_aarch64)$(BR2_aarch64_be)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpcle)$(BR2_x86_64),y)
86 FREESWITCH_LICENSE_FILES += libs/libzrtp/src/zrtp_legal.c
87 FREESWITCH_CONF_OPTS += --enable-zrtp
89 FREESWITCH_CONF_OPTS += --disable-zrtp
92 # Enable optional modules
93 FREESWITCH_ENABLED_MODULES += \
94 applications/mod_avmd \
95 applications/mod_blacklist \
96 applications/mod_callcenter \
97 applications/mod_commands \
98 applications/mod_conference \
99 applications/mod_curl \
100 applications/mod_db \
101 applications/mod_directory \
102 applications/mod_dptools \
103 applications/mod_easyroute \
104 applications/mod_esf \
105 applications/mod_esl \
106 applications/mod_expr \
107 applications/mod_fifo \
108 applications/mod_fsk \
109 applications/mod_hash \
110 applications/mod_httapi \
111 applications/mod_lcr \
112 applications/mod_sms \
113 applications/mod_snom \
114 applications/mod_spandsp \
115 applications/mod_spy \
116 applications/mod_valet_parking \
117 applications/mod_voicemail \
119 dialplans/mod_dialplan_asterisk \
120 dialplans/mod_dialplan_xml \
121 endpoints/mod_loopback \
124 endpoints/mod_sofia \
125 endpoints/mod_verto \
126 event_handlers/mod_cdr_csv \
127 event_handlers/mod_cdr_sqlite \
128 event_handlers/mod_event_socket \
129 formats/mod_local_stream \
130 formats/mod_native_file \
131 formats/mod_tone_stream \
132 loggers/mod_console \
133 loggers/mod_logfile \
153 xml_int/mod_xml_cdr \
154 xml_int/mod_xml_rpc \
157 define FREESWITCH_ENABLE_MODULES
158 $(Q)echo $(FREESWITCH_ENABLED_MODULES) \
162 FREESWITCH_PRE_CONFIGURE_HOOKS += FREESWITCH_ENABLE_MODULES
164 # mod_isac supports a limited set of archs
165 # src/mod/codecs/mod_isac/typedefs.h
166 ifeq ($(BR2_i386)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_x86_64),y)
167 FREESWITCH_LICENSE := $(FREESWITCH_LICENSE), BSD-3-Clause (mod_isac)
168 FREESWITCH_LICENSE_FILES += src/mod/codecs/mod_isac/LICENSE
169 FREESWITCH_ENABLED_MODULES += codecs/mod_isac
172 ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
173 FREESWITCH_DEPENDENCIES += alsa-lib
174 FREESWITCH_ENABLED_MODULES += endpoints/mod_alsa
177 # Use the pass-through g729 module provided by freeswitch instead of
178 # the external mod_bcg729 provided by freeswitch-mod-bcg729.
179 ifeq ($(BR2_PACKAGE_FREESWITCH_MOD_BCG729),)
180 FREESWITCH_ENABLED_MODULES += codecs/mod_g729
183 ifeq ($(BR2_PACKAGE_FREETYPE),y)
184 FREESWITCH_DEPENDENCIES += freetype
187 ifeq ($(BR2_PACKAGE_LIBBROADVOICE),y)
188 FREESWITCH_DEPENDENCIES += libbroadvoice
189 FREESWITCH_ENABLED_MODULES += codecs/mod_bv
192 ifeq ($(BR2_PACKAGE_LIBCODEC2),y)
193 FREESWITCH_DEPENDENCIES += libcodec2
194 FREESWITCH_ENABLED_MODULES += codecs/mod_codec2
197 ifeq ($(BR2_PACKAGE_LIBEDIT),y)
198 FREESWITCH_DEPENDENCIES += libedit
199 FREESWITCH_CONF_OPTS += --enable-core-libedit-support
201 FREESWITCH_CONF_OPTS += --disable-core-libedit-support
204 ifeq ($(BR2_PACKAGE_LIBG7221),y)
205 FREESWITCH_DEPENDENCIES += libg7221
208 ifeq ($(BR2_PACKAGE_LIBILBC),y)
209 FREESWITCH_DEPENDENCIES += libilbc
210 FREESWITCH_ENABLED_MODULES += codecs/mod_ilbc
213 ifeq ($(BR2_PACKAGE_LIBLDNS),y)
214 FREESWITCH_DEPENDENCIES += libldns
215 FREESWITCH_ENABLED_MODULES += applications/mod_enum
218 ifeq ($(BR2_PACKAGE_LIBMEMCACHED),y)
219 FREESWITCH_DEPENDENCIES += libmemcached
220 FREESWITCH_ENABLED_MODULES += applications/mod_memcache
223 ifeq ($(BR2_PACKAGE_LIBPNG),y)
224 FREESWITCH_DEPENDENCIES += libpng
225 FREESWITCH_ENABLED_MODULES += formats/mod_png
228 ifeq ($(BR2_PACKAGE_LIBYAML),y)
229 FREESWITCH_DEPENDENCIES += libyaml
230 FREESWITCH_ENABLED_MODULES += languages/mod_yaml
233 ifeq ($(BR2_PACKAGE_LUA),y)
234 FREESWITCH_DEPENDENCIES += lua
235 FREESWITCH_ENABLED_MODULES += languages/mod_lua
238 ifeq ($(BR2_PACKAGE_OPENLDAP),y)
239 FREESWITCH_DEPENDENCIES += openldap
240 FREESWITCH_ENABLED_MODULES += directories/mod_ldap xml_int/mod_xml_ldap
243 ifeq ($(BR2_PACKAGE_OPUS),y)
244 FREESWITCH_DEPENDENCIES += opus
245 FREESWITCH_ENABLED_MODULES += codecs/mod_opus
248 ifeq ($(BR2_PACKAGE_PORTAUDIO),y)
249 FREESWITCH_DEPENDENCIES += portaudio
250 FREESWITCH_ENABLED_MODULES += endpoints/mod_portaudio
253 ifeq ($(BR2_PACKAGE_LAME)$(BR2_PACKAGE_LIBSHOUT)$(BR2_PACKAGE_MPG123),yyy)
254 FREESWITCH_DEPENDENCIES += lame libshout mpg123
255 FREESWITCH_ENABLED_MODULES += formats/mod_shout
258 ifeq ($(BR2_PACKAGE_LIBSILK),y)
259 FREESWITCH_DEPENDENCIES += libsilk
260 FREESWITCH_ENABLED_MODULES += codecs/mod_silk
263 ifeq ($(BR2_PACKAGE_LIBSNDFILE),y)
264 FREESWITCH_DEPENDENCIES += libsndfile
265 FREESWITCH_ENABLED_MODULES += formats/mod_sndfile
268 ifeq ($(BR2_PACKAGE_LIBSOUNDTOUCH),y)
269 FREESWITCH_DEPENDENCIES += libsoundtouch
270 FREESWITCH_ENABLED_MODULES += applications/mod_soundtouch
273 ifeq ($(BR2_PACKAGE_OPENCV),y)
274 FREESWITCH_DEPENDENCIES += opencv
275 FREESWITCH_ENABLED_MODULES += applications/mod_cv
278 ifeq ($(BR2_PACKAGE_UNIXODBC),y)
279 FREESWITCH_DEPENDENCIES += unixodbc
280 FREESWITCH_CONF_OPTS += \
281 --enable-core-odbc-support \
282 --with-odbc=$(STAGING_DIR)/usr
284 FREESWITCH_CONF_OPTS += --disable-core-odbc-support
287 ifeq ($(BR2_PACKAGE_XZ),y)
288 FREESWITCH_DEPENDENCIES += xz
291 ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8)$(BR2_PACKAGE_FFMPEG),yy)
292 FREESWITCH_LICENSE := $(FREESWITCH_LICENSE), BSD-3-Clause (libvpx, libyuv)
293 FREESWITCH_LICENSE_FILES += libs/libvpx/LICENSE libs/libyuv/LICENSE
294 FREESWITCH_CONF_OPTS += --enable-libvpx --enable-libyuv
295 FREESWITCH_DEPENDENCIES += host-yasm ffmpeg
296 FREESWITCH_ENABLED_MODULES += applications/mod_av applications/mod_fsv
297 FREESWITCH_MAKE_ENV += CROSS=$(TARGET_CROSS)
299 FREESWITCH_CONF_OPTS += --disable-libvpx --disable-libyuv
302 $(eval $(autotools-package))