]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/freeswitch/freeswitch.mk
98f2f483566b669913a08654b76bd7552f5f12ae
[coffee/buildroot.git] / package / freeswitch / freeswitch.mk
1 ################################################################################
2 #
3 # freeswitch
4 #
5 ################################################################################
6
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), \
18         tiff license
19
20 FREESWITCH_LICENSE_FILES = \
21         COPYING \
22         libs/apr/LICENSE \
23         libs/apr-util/LICENSE \
24         libs/sofia-sip/COPYING \
25         libs/sofia-sip/COPYRIGHTS \
26         libs/spandsp/COPYING \
27         libs/srtp/LICENSE \
28         libs/tiff-4.0.2/COPYRIGHT
29
30 # required dependencies
31 FREESWITCH_DEPENDENCIES = \
32         host-pkgconf \
33         jpeg \
34         libcurl \
35         openssl \
36         pcre \
37         speex \
38         sqlite \
39         util-linux \
40         zlib
41
42 # disable display of ClueCon banner in fs_cli
43 FREESWITCH_CONF_ENV += \
44         disable_cc=yes
45
46 # we neither need host-perl nor host-php
47 FREESWITCH_CONF_ENV += \
48         ac_cv_prog_PERL=false \
49         ac_cv_have_perl=no \
50         ac_cv_prog_PHP=false \
51         ac_cv_have_php=no \
52         ac_cv_prog_PHP_CONFIG=false \
53         ac_cv_have_php_config=no
54
55 # copied from freeswitch/configure.ac, line 258+
56 FREESWITCH_CONF_ENV += \
57         ac_cv_file__dev_ptmx=yes \
58         ac_cv_va_copy=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
72
73 # build breaks with -Werror enabled
74 FREESWITCH_CONF_ENV += \
75         ac_cv_gcc_supports_w_no_unused_result=no
76
77 FREESWITCH_CONF_OPTS = \
78         --without-erlang \
79         --enable-fhs \
80         --without-python \
81         --disable-system-xmlrpc-c
82
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
88 else
89 FREESWITCH_CONF_OPTS += --disable-zrtp
90 endif
91
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 \
118         codecs/mod_g723_1 \
119         dialplans/mod_dialplan_asterisk \
120         dialplans/mod_dialplan_xml \
121         endpoints/mod_loopback \
122         endpoints/mod_rtc \
123         endpoints/mod_rtmp \
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 \
134         loggers/mod_syslog \
135         say/mod_say_de \
136         say/mod_say_en \
137         say/mod_say_es \
138         say/mod_say_es_ar \
139         say/mod_say_fa \
140         say/mod_say_fr \
141         say/mod_say_he \
142         say/mod_say_hr \
143         say/mod_say_hu \
144         say/mod_say_it \
145         say/mod_say_ja \
146         say/mod_say_nl \
147         say/mod_say_pl \
148         say/mod_say_pt \
149         say/mod_say_ru \
150         say/mod_say_sv \
151         say/mod_say_th \
152         say/mod_say_zh \
153         xml_int/mod_xml_cdr \
154         xml_int/mod_xml_rpc \
155         xml_int/mod_xml_scgi
156
157 define FREESWITCH_ENABLE_MODULES
158         $(Q)echo $(FREESWITCH_ENABLED_MODULES) \
159                 | tr ' ' '\n' \
160                 > $(@D)/modules.conf
161 endef
162 FREESWITCH_PRE_CONFIGURE_HOOKS += FREESWITCH_ENABLE_MODULES
163
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
170 endif
171
172 ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
173 FREESWITCH_DEPENDENCIES += alsa-lib
174 FREESWITCH_ENABLED_MODULES += endpoints/mod_alsa
175 endif
176
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
181 endif
182
183 ifeq ($(BR2_PACKAGE_FREETYPE),y)
184 FREESWITCH_DEPENDENCIES += freetype
185 endif
186
187 ifeq ($(BR2_PACKAGE_LIBBROADVOICE),y)
188 FREESWITCH_DEPENDENCIES += libbroadvoice
189 FREESWITCH_ENABLED_MODULES += codecs/mod_bv
190 endif
191
192 ifeq ($(BR2_PACKAGE_LIBCODEC2),y)
193 FREESWITCH_DEPENDENCIES += libcodec2
194 FREESWITCH_ENABLED_MODULES += codecs/mod_codec2
195 endif
196
197 ifeq ($(BR2_PACKAGE_LIBEDIT),y)
198 FREESWITCH_DEPENDENCIES += libedit
199 FREESWITCH_CONF_OPTS += --enable-core-libedit-support
200 else
201 FREESWITCH_CONF_OPTS += --disable-core-libedit-support
202 endif
203
204 ifeq ($(BR2_PACKAGE_LIBG7221),y)
205 FREESWITCH_DEPENDENCIES += libg7221
206 endif
207
208 ifeq ($(BR2_PACKAGE_LIBILBC),y)
209 FREESWITCH_DEPENDENCIES += libilbc
210 FREESWITCH_ENABLED_MODULES += codecs/mod_ilbc
211 endif
212
213 ifeq ($(BR2_PACKAGE_LIBLDNS),y)
214 FREESWITCH_DEPENDENCIES += libldns
215 FREESWITCH_ENABLED_MODULES += applications/mod_enum
216 endif
217
218 ifeq ($(BR2_PACKAGE_LIBMEMCACHED),y)
219 FREESWITCH_DEPENDENCIES += libmemcached
220 FREESWITCH_ENABLED_MODULES += applications/mod_memcache
221 endif
222
223 ifeq ($(BR2_PACKAGE_LIBPNG),y)
224 FREESWITCH_DEPENDENCIES += libpng
225 FREESWITCH_ENABLED_MODULES += formats/mod_png
226 endif
227
228 ifeq ($(BR2_PACKAGE_LIBYAML),y)
229 FREESWITCH_DEPENDENCIES += libyaml
230 FREESWITCH_ENABLED_MODULES += languages/mod_yaml
231 endif
232
233 ifeq ($(BR2_PACKAGE_LUA),y)
234 FREESWITCH_DEPENDENCIES += lua
235 FREESWITCH_ENABLED_MODULES += languages/mod_lua
236 endif
237
238 ifeq ($(BR2_PACKAGE_OPENLDAP),y)
239 FREESWITCH_DEPENDENCIES += openldap
240 FREESWITCH_ENABLED_MODULES += directories/mod_ldap xml_int/mod_xml_ldap
241 endif
242
243 ifeq ($(BR2_PACKAGE_OPUS),y)
244 FREESWITCH_DEPENDENCIES += opus
245 FREESWITCH_ENABLED_MODULES += codecs/mod_opus
246 endif
247
248 ifeq ($(BR2_PACKAGE_PORTAUDIO),y)
249 FREESWITCH_DEPENDENCIES += portaudio
250 FREESWITCH_ENABLED_MODULES += endpoints/mod_portaudio
251 endif
252
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
256 endif
257
258 ifeq ($(BR2_PACKAGE_LIBSILK),y)
259 FREESWITCH_DEPENDENCIES += libsilk
260 FREESWITCH_ENABLED_MODULES += codecs/mod_silk
261 endif
262
263 ifeq ($(BR2_PACKAGE_LIBSNDFILE),y)
264 FREESWITCH_DEPENDENCIES += libsndfile
265 FREESWITCH_ENABLED_MODULES += formats/mod_sndfile
266 endif
267
268 ifeq ($(BR2_PACKAGE_LIBSOUNDTOUCH),y)
269 FREESWITCH_DEPENDENCIES += libsoundtouch
270 FREESWITCH_ENABLED_MODULES += applications/mod_soundtouch
271 endif
272
273 ifeq ($(BR2_PACKAGE_OPENCV),y)
274 FREESWITCH_DEPENDENCIES += opencv
275 FREESWITCH_ENABLED_MODULES += applications/mod_cv
276 endif
277
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
283 else
284 FREESWITCH_CONF_OPTS += --disable-core-odbc-support
285 endif
286
287 ifeq ($(BR2_PACKAGE_XZ),y)
288 FREESWITCH_DEPENDENCIES += xz
289 endif
290
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)
298 else
299 FREESWITCH_CONF_OPTS += --disable-libvpx --disable-libyuv
300 endif
301
302 $(eval $(autotools-package))