Added an option to compile with latest git HEAD (default disabled). Please use this...
[openwrt/svn-archive/archive.git] / net / freeswitch / Makefile
1 #
2 # Copyright (C) 2009-2013 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 #
8 include $(TOPDIR)/rules.mk
9
10
11 PKG_NAME:=freeswitch
12 PKG_DISTNAME:=$(PKG_NAME)_git
13 PKG_VERSION:=1.3.13b
14 PKG_RELEASE:=1
15
16
17 #
18 # The latest FS git hash in PKG_SOURCE_VERSION can be obtained from http://fisheye.freeswitch.org
19 #
20 PKG_SOURCE_PROTO:=git
21 PKG_SOURCE_URL:=git://git.$(PKG_NAME).org/$(PKG_NAME).git
22 FS_DEFAULT_HEAD:=af6ae011c70c32d6d7637f7befc0e614b4624527
23 FS_LATEST_HEAD:=$(shell git ls-remote $(PKG_SOURCE_URL) HEAD | cut -f1)
24 PKG_SOURCE_VERSION:=$(if $(CONFIG_FS_SOFIA_WITH_PULL_CURRENT),$(FS_LATEST_HEAD),$(FS_DEFAULT_HEAD))
25 PKG_SOURCE_SUBDIR:=$(PKG_DISTNAME)
26 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(shell echo $(PKG_SOURCE_VERSION)|cut -b -7).tar.bz2
27 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
28
29
30 PKG_FIXUP:=autoreconf
31 PKG_BUILD_PARALLEL:=1
32
33
34 FS_MOD_AVAILABLE:= \
35 abstraction \
36 alsa \
37 amr \
38 amrwb \
39 avmd \
40 blacklist \
41 bv \
42 callcenter \
43 cdr-csv \
44 cdr-pg-csv \
45 cdr-sqlite \
46 celt \
47 cepstral \
48 cidlookup \
49 cluechoo \
50 codec2 \
51 commands \
52 conference \
53 console \
54 curl \
55 dahdi-codec \
56 db \
57 dialplan-asterisk \
58 dialplan-directory \
59 dialplan-xml \
60 dingaling \
61 directory \
62 distributor \
63 dptools \
64 easyroute \
65 enum \
66 erlang-event \
67 esf \
68 event-multicast \
69 event-socket \
70 event-zmq \
71 expr \
72 fifo \
73 file-string \
74 flite \
75 fsk \
76 fsv \
77 g723-1 \
78 g729 \
79 gsmopen \
80 h26x \
81 h323 \
82 hash \
83 html5 \
84 httapi \
85 http-cache \
86 ilbc \
87 isac \
88 java \
89 json-cdr \
90 lcr \
91 local-stream \
92 logfile \
93 loopback \
94 lua \
95 managed \
96 mp4 \
97 mp4v \
98 native-file \
99 nibblebill \
100 openzap \
101 opus \
102 oreka \
103 portaudio \
104 portaudio-stream \
105 posix-timer \
106 radius-cdr \
107 redis \
108 rss \
109 rtmp \
110 sangoma-codec \
111 say-de \
112 say-en \
113 say-es \
114 say-fa \
115 say-fr \
116 say-hu \
117 say-it \
118 say-nl \
119 say-pt \
120 say-ru \
121 say-th \
122 say-zh \
123 shell-stream \
124 silk \
125 siren \
126 skel \
127 skinny \
128 skypopen \
129 sms \
130 snapshot \
131 snipe-hunt \
132 sndfile \
133 snmp \
134 snom \
135 sofia \
136 sonar \
137 spandsp \
138 speex \
139 spidermonkey \
140 spidermonkey-core-db \
141 spidermonkey-curl \
142 spidermonkey-odbc \
143 spidermonkey-socket \
144 spidermonkey-teletone \
145 spy \
146 stress \
147 syslog \
148 tone-stream \
149 tts-commandline \
150 unimrcp \
151 valet-parking \
152 vmd \
153 voicemail \
154 voicemail-ivr \
155 xml-cdr \
156 xml-curl \
157 xml-rpc \
158 xml-scgi \
159 yaml \
160
161
162 PKG_CONFIG_DEPENDS:= \
163 CONFIG_FS_SOFIA_WITH_IPV6 \
164 CONFIG_FS_SOFIA_WITH_MYSQL \
165 CONFIG_FS_SOFIA_WITH_ODBC \
166 CONFIG_FS_SOFIA_WITH_OPT \
167 CONFIG_FS_SOFIA_WITH_PULL_CURRENT \
168 CONFIG_FS_SOFIA_WITH_SCTP \
169 CONFIG_FS_SOFIA_WITH_ZRTP_GIT \
170 $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-mod-%,$(FS_MOD_AVAILABLE)) \
171
172
173 include $(INCLUDE_DIR)/package.mk
174 include $(INCLUDE_DIR)/nls.mk
175
176
177 TAR_OPTIONS+= --strip-components=1 -C $(PKG_BUILD_DIR)
178
179
180 define Package/$(PKG_NAME)/Default
181 SECTION:=net
182 CATEGORY:=Network
183 SUBMENU:=Telephony
184 URL:=http://www.$(PKG_NAME).org/
185 MAINTAINER:=Mazilo <OpenWRT@slickdeals.endjunk.com>
186 endef
187
188
189 define Package/$(PKG_NAME)
190 $(call Package/$(PKG_NAME)/Default)
191 TITLE:=FreeSWITCH open source telephony platform ($(shell echo $(FS_DEFAULT_HEAD)|cut -b -7))
192 DEPENDS:=+libcurl +libjpeg +libncurses +libpq +libpthread +librt +libstdcpp
193 MENU:=1
194 endef
195
196
197 define Package/$(PKG_NAME)/description
198 FreeSWITCH is an open source telephony platform designed to
199 facilitate the creation of voice and chat driven products scaling
200 from a soft-phone up to a soft-switch. See http://wiki.$(PKG_NAME).org
201 endef
202
203
204 define Package/$(PKG_NAME)/config
205 config FS_SOFIA_WITH_PULL_CURRENT
206 depends on DEVEL
207 depends on PACKAGE_$(PKG_NAME)
208 bool "Pull the latest git HEAD - $(shell echo $(PKG_SOURCE_VERSION)|cut -b -7) (Press < Help > for more information)"
209 default n
210 help
211 This existing git HEAD ($(FS_DEFAULT_HEAD)) is probably outdated.
212 Enable this option for the latest git HEAD ($(FS_LATEST_HEAD)).
213 Enable this option ONLY if you know what you are doing. It may and/or may not be cleanly
214 compiled and may require some intervension to create new patches. If you take this route
215 and come up with some patches, please contemplate to contribute to send in your patches.
216
217 config FS_SOFIA_WITH_IPV6
218 depends on PACKAGE_$(PKG_NAME)
219 bool "Compile with IPV6 support"
220 default y
221 help
222 Compile $(PKG_NAME) with IPV6 Support.
223
224 config FS_SOFIA_WITH_OPT
225 depends on PACKAGE_$(PKG_NAME)
226 bool "Compile with optimization"
227 default y
228 help
229 Compile $(PKG_NAME) with optimization enabled.
230 endef
231
232
233 define Package/$(PKG_NAME)-mod-sofia/config
234 config FS_SOFIA_WITH_MYSQL
235 depends on PACKAGE_$(PKG_NAME)-mod-sofia
236 bool "Compile with MySQL"
237 default n
238 select PACKAGE_libmysqlclient
239 help
240 Compile $(PKG_NAME) with MySQL.
241
242 config FS_SOFIA_WITH_ODBC
243 depends on PACKAGE_$(PKG_NAME)-mod-sofia
244 depends on PACKAGE_sqliteodbc
245 depends on PACKAGE_unixodbc_svn
246 bool "Compile with ODBC support (Requires unixodbc_svn NOT YET AVAILABLE)"
247 default n
248 help
249 Compile $(PKG_NAME)-mod-sofia with ODBC Support. Since both sqliteodbc and unixodbc_svn packages are not yet available on OpenWRT, $(PKG_NAME)-mod-sofia CAN NOT be compiled with ODBC support.
250
251 config FS_SOFIA_WITH_SCTP
252 depends on PACKAGE_$(PKG_NAME)-mod-sofia
253 depends on PACKAGE_sctp
254 bool "Compile with SCTP (Stream Control Transfer Protocol) support"
255 default y
256 help
257 Compile $(PKG_NAME)-mod-sofia with SCTP support.
258
259 config FS_SOFIA_WITH_ZRTP_GIT
260 depends on PACKAGE_$(PKG_NAME)-mod-sofia
261 depends on PACKAGE_libzrtpcpp
262 bool "Compile with ZRTP support (Requires libzrtpcpp NOT YET AVAILABLE)"
263 default n
264 #select PACKAGE_libzrtpcpp
265 help
266 Compile $(PKG_NAME)-mod-sofia with ZRTP Support. Since libzrtpcpp package is not yet available on OpenWRT, $(PKG_NAME)-mod-sofia CAN NOT be compiled with ZRTP support.
267 endef
268
269
270 define Package/$(PKG_NAME)-example-config
271 $(call Package/$(PKG_NAME)/Default)
272 TITLE:=FreeSWITCH example config (commented)
273 DEPENDS:= $(PKG_NAME)
274 endef
275
276
277 define Package/$(PKG_NAME)-example-config/description
278 The default configuration included with FreeSWITCH. It is not intended to be
279 a final product, and is thus moved to /usr/share/$(PKG_NAME)/examples/conf to
280 be an example of how FreeSWITCH can be configured.
281 endef
282
283
284 define Package/$(PKG_NAME)-config-upstream-defaults
285 $(call Package/$(PKG_NAME)/Default)
286 TITLE:=FreeSWITCH upstream config
287 DEPENDS:= $(PKG_NAME)
288 endef
289
290
291 define Package/$(PKG_NAME)-config-upstream-defaults/description
292 The default configuration included with FreeSWITCH. It is not intended to be
293 a final product, and but is included for those who don't want to use the
294 OpenWRT configuration and/or want to try things as prepared by upstream.
295 endef
296
297
298 define Package/$(PKG_NAME)-config-minimal
299 $(call Package/$(PKG_NAME)/Default)
300 TITLE:=FreeSWITCH minimal config
301 DEPENDS:= $(PKG_NAME)
302 endef
303
304
305 define Package/$(PKG_NAME)-config-minimal/description
306 A minimal configuration of FreeSWITCH for OpenWRT devices. Is what the UCI
307 configuration began with.
308 endef
309
310
311 define Package/$(PKG_NAME)-collection-upstream-defaults
312 $(call Package/$(PKG_NAME)/Default)
313 TITLE:=FS upstream def sample conf
314 DEPENDS:= $(PKG_NAME) \
315 +$(PKG_NAME)-config-upstream-defaults \
316 +$(PKG_NAME)-mod-callcenter \
317 +$(PKG_NAME)-mod-codec2 \
318 +$(PKG_NAME)-mod-commands \
319 +$(PKG_NAME)-mod-conference \
320 +$(PKG_NAME)-mod-curl \
321 +$(PKG_NAME)-mod-dialplan-xml \
322 +$(PKG_NAME)-mod-dingaling \
323 +$(PKG_NAME)-mod-dptools \
324 +$(PKG_NAME)-mod-event-socket \
325 +$(PKG_NAME)-mod-g723-1 \
326 +$(PKG_NAME)-mod-g729 \
327 +$(PKG_NAME)-mod-hash \
328 +$(PKG_NAME)-mod-http-cache \
329 +$(PKG_NAME)-mod-ilbc \
330 +$(PKG_NAME)-mod-local-stream \
331 +$(PKG_NAME)-mod-lua \
332 +$(PKG_NAME)-mod-native-file \
333 +$(PKG_NAME)-mod-sndfile \
334 +$(PKG_NAME)-mod-sofia \
335 +$(PKG_NAME)-mod-spandsp \
336 +$(PKG_NAME)-mod-speex \
337 +$(PKG_NAME)-mod-syslog \
338 +$(PKG_NAME)-mod-tone-stream \
339 +$(PKG_NAME)-mod-xml-curl \
340 +$(PKG_NAME)-mod-xml-rpc \
341 +$(PKG_NAME)-tools
342 endef
343
344
345 define Package/$(PKG_NAME)-collection-minimal
346 $(call Package/$(PKG_NAME)/Default)
347 TITLE:=FreeSWITCH minimal package collection
348 DEFAULT:=y
349 DEPENDS:= $(PKG_NAME) \
350 +$(PKG_NAME)-config-minimal \
351 +$(PKG_NAME)-mod-codec2 \
352 +$(PKG_NAME)-mod-commands \
353 +$(PKG_NAME)-mod-dialplan-xml \
354 +$(PKG_NAME)-mod-dptools \
355 +$(PKG_NAME)-mod-event-socket \
356 +$(PKG_NAME)-mod-hash \
357 +$(PKG_NAME)-mod-local-stream \
358 +$(PKG_NAME)-mod-sndfile \
359 +$(PKG_NAME)-mod-sofia \
360 +$(PKG_NAME)-mod-syslog \
361 +$(PKG_NAME)-mod-tone-stream \
362 +$(PKG_NAME)-tools
363 endef
364
365
366 define Package/$(PKG_NAME)-sounds-en
367 $(call Package/$(PKG_NAME)/Default)
368 TITLE:=FreeSWITCH english sounds
369 DEPENDS:= $(PKG_NAME)
370 endef
371
372
373 define Package/$(PKG_NAME)-sounds-moh
374 $(call Package/$(PKG_NAME)/Default)
375 TITLE:=FreeSWITCH music-on-hold sounds
376 DEPENDS:= $(PKG_NAME)
377 endef
378
379
380 define Package/$(PKG_NAME)-tools
381 $(call Package/$(PKG_NAME)/Default)
382 TITLE:=FreeSWITCH control tools
383 DEPENDS:= $(PKG_NAME)
384 endef
385
386
387 define Download/files
388 define Download/$(1)
389 FILE:=$(2)
390 URL:=$(if $(4),$(4),http://files.$(PKG_NAME).org)/$(5)
391 MD5SUM:=$(3)
392 endef
393 define Prepare/$(1)
394 $(LN) $(DL_DIR)/$(2) $(PKG_BUILD_DIR)/$(6)
395 endef
396 $$(eval $$(call Download,$(1)))
397 endef
398
399
400 MAKE_INSTALL_TARGETS:=install
401
402
403 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),)
404 $(eval $(call Download/files,celt,celt-0.10.0.tar.gz,a656f6176e9be84027c0e51ceedd710f,,downloads/libs/,libs/))
405 endif
406
407
408 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl),)
409 $(eval $(call Download/files,json-cdr,json-c-0.9.tar.gz,4653b3b9c568bb9c782178abfaac128d,,downloads/libs/,libs/))
410 endif
411
412
413 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-event-zmq),)
414 $(eval $(call Download/files,event-zmq,zeromq-2.1.9.tar.gz,94c5e0262a79c5f82bc0b178c1f8a33d,http://download.zeromq.org http://download.zeromq.org/historic,,libs/))
415 endif
416
417
418 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-flite),)
419 $(eval $(call Download/files,flite,flite-1.5.4-current.tar.bz2,f3a2d88b1059f6f4ff3c20a8169bc0f4,,downloads/libs/,libs/))
420 endif
421
422
423 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-opus),)
424 $(eval $(call Download/files,opus,opus-1.0.2.tar.gz,c503ad05a59ddb44deab96204401be03,,downloads/libs/,libs/))
425 endif
426
427
428 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en),)
429 $(eval $(call Download/files,sounds-en,$(PKG_NAME)-sounds-en-us-callie-8000-1.0.22.tar.gz,cff509d878708ce5e6e7fedac7f683ef,,,,))
430 MAKE_INSTALL_TARGETS+= sounds-install
431 endif
432
433
434 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh),)
435 $(eval $(call Download/files,sounds-moh,$(PKG_NAME)-sounds-music-8000-1.0.8.tar.gz,f63ef3cc3507af079ae5c7b8b8a01e42,,,,))
436 MAKE_INSTALL_TARGETS+= moh-install
437 endif
438
439
440 #
441 # XXX: -fgnu89-inline is not supported on all compiler versions, so only enable it on avr32 where it solves build issues
442 #
443 ifneq ($(CONFIG_avr32),)
444 TARGET_CFLAGS += -fgnu89-inline
445 TARGET_CXXFLAGS += -fgnu89-inline
446 endif
447
448
449 ifneq ($(CONFIG_USE_EGLIBC),)
450 ifeq ($(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),)
451 TARGET_CFLAGS += -DNO_GETLOGIN
452 endif
453 endif
454
455
456 FS_TARGET_CFLAGS:= ${TARGET_CFLAGS} -DLUA_USE_LINUX $(FPIC) -std=gnu99 -Wno-format
457 FS_TARGET_CXXFLAGS:= ${TARGET_CXXFLAGS} -DLUA_USE_LINUX $(FPIC) -Wno-format
458 FS_TARGET_CPPFLAGS:= -I. -I./lua $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang-event),-I$(STAGING_DIR_HOST)/lib/erlang/lib/erl_interface-3.6/include) $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-json-cdr),-Wno-error) ${TARGET_CPPFLAGS}
459
460
461 CONFIGURE_ARGS+= \
462 --host=$(GNU_TARGET_NAME) \
463 --build=$(GNU_HOST_NAME) \
464 --prefix="/usr/share/$(PKG_NAME)" \
465 --bindir="/usr/bin" \
466 --libdir="/usr/lib" \
467 --srcdir="$(PKG_BUILD_DIR)" \
468 --sysconfdir="/etc/$(PKG_NAME)" \
469 --with-modinstdir="/usr/lib/$(PKG_NAME)" \
470 --with-random="/dev/urandom" \
471 $(if $(CONFIG_FS_SOFIA_WITH_MYSQL),--with-mysql,--without-mysql) \
472 $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_IPV6,ipv6) \
473 $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_OPT,optimization) \
474 $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),--with-ogg="$(STAGING_DIR)/usr",--without-iogg) \
475 $(if ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-cdr)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-curl)),--with-libcurl="$(STAGING_DIR)/usr",--without-libcurl) \
476 $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-java),--with-java="$(STAGING_DIR)/usr",--without-java) \
477 $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp,builtin-tiff) \
478 $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_ZRTP_GIT,zrtp) \
479 $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_ODBC,core-odbc-support) \
480 $(if $(CONFIG_FS_SOFIA_WITH_ODBC),--with-odbc="$(STAGING_DIR)/usr") \
481 $(if $(CONFIG_FS_SOFIA_WITH_ODBC),--with-odbc-lib="$(STAGING_DIR)/usr/lib") \
482
483
484 CONFIGURE_VARS+= \
485 config_TARGET_CC="$(TOOLCHAIN_DIR)/bin/${TARGET_CC}" \
486 config_TARGET_CFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CFLAGS}" \
487 config_TARGET_CXX="$(TOOLCHAIN_DIR)/bin/${TARGET_CXX}" \
488 config_TARGET_CXXFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CXXFLAGS}" \
489 config_TARGET_CPPFLAGS="${FS_TARGET_CPPFLAGS}" \
490 config_TARGET_READLINE_INC="${FS_TARGET_CPPFLAGS}" \
491 config_TARGET_READLINE_LIBS="${TARGET_LDFLAGS} -lreadline -lncurses" \
492 config_TARGET_LIBS="${TARGET_LDFLAGS} -lpthread -ldl" \
493 config_BUILD_CC="${HOSTCC}" \
494 config_BUILD_CFLAGS="${HOST_CFLAGS}" \
495 CC_FOR_BUILD="${HOSTCC}" \
496 BUILDTOOL_CC="${HOSTCC}" \
497 BUILDTOOL_CCLD="${HOSTCC}" \
498 LDFLAGS="$$$$LDFLAGS" \
499 LDFLAGS_FOR_BUILD="${HOST_LDFLAGS}" \
500 CC="$(TOOLCHAIN_DIR)/bin/${TARGET_CC}" \
501 CXX="$(TOOLCHAIN_DIR)/bin/${TARGET_CXX}" \
502 CFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CFLAGS}" \
503 CXXFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CXXFLAGS}" \
504 CPPFLAGS="${FS_TARGET_CPPFLAGS}" \
505 LDFLAGS="${TARGET_LDFLAGS} -Wl,-rpath-link=\"${STAGING_DIR}/usr/lib\"" \
506 PATH="${PATH}:${STAGING_DIR}" \
507 HOST_CC="/usr/bin/cc" \
508 HOST_CXX="/usr/bin/g++" \
509 CROSS_COMPILE="1" \
510 PKG_CONFIG="$(STAGING_DIR_HOST)/bin/pkg-config" \
511 PKG_CONFIG_PATH="$(STAGING_DIR_HOST)/lib/pkgconfig" \
512 ax_cv_c_compiler_vendor="gnu" \
513 ac_cv_dev_urandom="yes" \
514 ac_cv_file_dbd_apr_dbd_mysql_c="no" \
515 ac_cv_file__dev_random="no" \
516 ac_cv_file__dev_urandom="yes" \
517 ac_cv_file___dev_urandom_="yes" \
518 ac_cv_func_mmap_fixed_mapped="yes" \
519 ac_cv_func_pthread_rwlock_init="yes" \
520 ac_cv_struct_rlimit="yes" \
521 apr_cv_mutex_recursive="yes" \
522 apr_cv_process_shared_works="no" \
523 apr_cv_tcp_nodelay_with_cork="yes" \
524 apr_cv_type_rwlock_t="yes" \
525 $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-perl),ac_cv_path_PERL="yes",) \
526 libzmq_cv_cxx_werror_flag="" \
527
528
529 define Build/Prepare
530 $(call Build/Prepare/Default)
531 $(call Prepare/celt)
532 $(call Prepare/event-zmq)
533 $(call Prepare/flite)
534 $(call Prepare/json-cdr)
535 $(call Prepare/opus)
536 $(call Prepare/sounds-en)
537 $(call Prepare/sounds-moh)
538 endef
539
540
541 define Build/Configure
542 if [ -d $(PKG_BUILD_DIR)/libs/libcodec2/src ]; then \
543 (cd $(PKG_BUILD_DIR)/libs/libcodec2/src; $(HOSTCC) -c generate_codebook.c; $(HOSTCC) -o generate_codebook generate_codebook.o -lm) \
544 fi
545 (cd $(PKG_BUILD_DIR); $(AM_TOOL_PATHS) ./bootstrap.sh)
546 $(call Build/Configure/Default,)
547 $(foreach m,$(FS_MOD_AVAILABLE),
548 $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-$(m)),
549 $(SED) 's|^[ #]*\([^#]*/mod_$(subst -,_,$(m))\)$$$$|\1|g' $(PKG_BUILD_DIR)/modules.conf
550 ,
551 $(SED) 's|^\([^#]*/mod_$(subst -,_,$(m))\)$$$$|#\1|g' $(PKG_BUILD_DIR)/modules.conf
552 )
553 )
554 endef
555
556
557 define Build/Compile
558 $(MAKE) -C $(PKG_BUILD_DIR) \
559 AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
560 RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
561 CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
562 CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
563 DESTDIR="$(PKG_INSTALL_DIR)" \
564 LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
565 all $(MAKE_INSTALL_TARGETS)
566 $(SED) 's|^\([ \t]*\)\(.*\)"mod_console"\(.*\)$$$$|\1<!-- \2"mod_console"\3 -->|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
567 $(SED) 's|^\([ \t]*\)<!-- *\(.*\)"mod_syslog"\(.*\) *-->\(.*\)$$$$|\1\2"mod_syslog"\3\4|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
568 endef
569
570
571 define Build/InstallDev
572 $(INSTALL_DIR) $(1)/usr/include/$(PKG_NAME)
573 $(INSTALL_DIR) $(1)/usr/lib
574 $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/include/* $(1)/usr/include/$(PKG_NAME)/
575 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME).{a,so*} $(1)/usr/lib/
576 endef
577
578
579 define Package/$(PKG_NAME)/install
580 $(INSTALL_DIR) $(1)/etc/config
581 $(INSTALL_DIR) $(1)/etc/default
582 $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
583 $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/scripts
584 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
585 $(INSTALL_DIR) $(1)/etc/init.d
586 $(INSTALL_DIR) $(1)/usr/bin
587 $(INSTALL_DIR) $(1)/usr/lib
588 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
589 $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
590 $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME)
591 $(INSTALL_DATA) ./files/$(PKG_NAME).default $(1)/etc/default/$(PKG_NAME)
592 $(INSTALL_DATA) ./files/$(PKG_NAME).hotplug $(1)/etc/hotplug.d/iface/90-$(PKG_NAME)
593 $(CP) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
594 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME)* $(1)/usr/lib/
595 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/$(PKG_NAME).pc $(1)/usr/lib/pkgconfig/
596 endef
597
598
599 define Package/$(PKG_NAME)-collection-upstream-defaults/install
600 $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
601 endef
602
603
604 define Package/$(PKG_NAME)-example-config/install
605 $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/examples/conf
606 $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/* $(1)/usr/share/$(PKG_NAME)/examples/conf/
607 endef
608
609
610 define Package/$(PKG_NAME)-config-upstream-defaults/install
611 $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
612 $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/* $(1)/etc/$(PKG_NAME)/
613 endef
614
615
616 define Package/$(PKG_NAME)-collection-minimal/install
617 $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
618 endef
619
620
621 define Package/$(PKG_NAME)-collection-uci-minimal/install
622 $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
623 endef
624
625
626 define Package/$(PKG_NAME)-config-minimal/install
627 $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
628 $(CP) ./files/etc.minimal/* $(1)/etc/$(PKG_NAME)/
629 endef
630
631
632 define Package/$(PKG_NAME)-sounds-en/install
633 $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds
634 $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en $(1)/usr/share/$(PKG_NAME)/sounds/
635 endef
636
637
638 define Package/$(PKG_NAME)-sounds-moh/install
639 $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds
640 $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music $(1)/usr/share/$(PKG_NAME)/sounds/
641 endef
642
643
644 define Package/$(PKG_NAME)-tools/install
645 $(INSTALL_DIR) $(1)/usr/bin
646 $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_cli $(1)/usr/bin/
647 $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_encode $(1)/usr/bin/
648 $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_ivrd $(1)/usr/bin/
649 $(CP) $(PKG_INSTALL_DIR)/usr/bin/fsxs $(1)/usr/bin/
650 $(CP) $(PKG_INSTALL_DIR)/usr/bin/gentls_cert $(1)/usr/bin/
651 $(CP) $(PKG_INSTALL_DIR)/usr/bin/tone2wav $(1)/usr/bin/
652 endef
653
654
655 #
656 # 1. Name
657 # 2. Title
658 # 3. Package configuration files
659 # 4. Inter module depends
660 # 5. Extra depends
661 #
662 define BuildLib
663 define Package/$(PKG_NAME)-$(1)
664 $$(call Package/$(PKG_NAME)/Default)
665 TITLE:= FS $(2) library and pkgconfig files
666 DEPENDS:= $(PKG_NAME) $(foreach l,$(4),+$(PKG_NAME)-$(l)) $(5)
667 endef
668
669 define Package/$(PKG_NAME)-$(1)/install
670 [ -d "$$(1)/usr/lib/pkgconfig" ] || $(INSTALL_DIR) $$(1)/usr/lib/pkgconfig
671
672 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/$(patsubst lib%,%,${3}).pc $$(1)/usr/lib/pkgconfig
673 $(CP) $(PKG_INSTALL_DIR)/usr/lib/${1}* $$(1)/usr/lib/
674 endef
675
676 $$(eval $$(call BuildPackage,$(PKG_NAME)-$(1)))
677 endef
678
679
680 #
681 # 1. Name
682 # 2. Title
683 # 3. Files (module files include different names)
684 # 4. Files (supporting files include different names)
685 # 5. Inter module depends
686 # 6. Extra depends
687 #
688 define BuildPlugin
689 define Package/$(PKG_NAME)-mod-$(1)
690 $$(call Package/$(PKG_NAME)/Default)
691 TITLE:= FS $(2) module
692 DEPENDS:= $(PKG_NAME) $(foreach m,$(5),+$(PKG_NAME)-mod-$(m)) $(6)
693 endef
694
695 define Package/$(PKG_NAME)-mod-$(1)/install
696 [ -z "mod_$(subst -,_,$(1))" ] || $(INSTALL_DIR) $$(1)/usr/lib/$(PKG_NAME)
697
698 for f in $$$$(realpath $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/mod_$(subst -,_,$(1)).*)) $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/$(3)_*); \
699 do \
700 $(CP) $$$$$$$${f} $$(1)/usr/lib/$(PKG_NAME)/; \
701 done
702
703 for f in $(4); \
704 do \
705 [ -d "$(dirname $$(1)/usr/${f})" ] || $(INSTALL_DIR) $(dirname $$(1)/usr/${f}); \
706 $(CP) $(PKG_INSTALL_DIR)/usr/${f} $$(1)/usr/${f}; \
707 done
708
709 #
710 # XML configuration files (vanilla)
711 #
712 if [ -f ${PKG_BUILD_DIR}/conf/vanilla/autoload_configs/$(subst -,_,$(1)).conf.xml ]; then \
713 [ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs ; \
714 $(CP) ${PKG_BUILD_DIR}/conf/vanilla/autoload_configs/$(subst -,_,$(1)).conf.xml $$(1)/etc/$(PKG_NAME)/autoload_configs/ ; \
715 if [ -d "./files/etc.packages/$(1)" ]; then \
716 $(CP) ./files/etc.packages/$(1)/* $$(1)/etc/$(PKG_NAME)/ ; \
717 fi \
718 fi
719
720 #
721 # For mod_YAML configuration files (vanilla)
722 #
723 if [ "mod_$(subst -,_,$(1))" == "mod_yaml" ] && [ -d ${PKG_BUILD_DIR}/conf/vanilla/yaml ]; then \
724 [ -d $$(1)/etc/$(PKG_NAME)/yaml ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/yaml; \
725 $(CP) $(wildcard ${PKG_BUILD_DIR}/conf/vanilla/yaml/*) $$(1)/etc/$(PKG_NAME)/yaml; \
726 fi
727
728 #
729 # For mod_openzap
730 #
731 if [ "mod_$(subst -,_,$(1))" == "mod_openzap" ]; then \
732 [ -z "$$(1)/etc/$(PKG_NAME)/autoload_configs" ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs ; \
733 $(CP) ${PKG_INSTALL_DIR}/etc/$(PKG_NAME)/autoload_configs/$(1).conf.xml $$(1)/etc/$(PKG_NAME)/autoload_configs ; \
734 fi
735 endef
736
737 define Package/$(PKG_NAME)-mod-$(1)/postinst
738 #!/bin/sh
739 sed -i -e 's|^\([ \t]*\)<!-- *\(.*\)"mod_$(subst -,_,$(1))"\(.*\) *-->\(.*\)$$$$|\1\2"mod_$(subst -,_,$(1))"\3\4|' $$$${IPKG_INSTROOT}/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
740 endef
741
742 define Package/$(PKG_NAME)-mod-$(1)/postrm
743 #!/bin/sh
744 sed -i -e 's|^\([ \t]*\)\(.*\)"mod_$(subst -,_,$(1))"\(.*\)$$$$|\1<!-- \2"mod_$(subst -,_,$(1))"\3 -->|' $$$${IPKG_INSTROOT}/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
745 endef
746
747 $$(eval $$(call BuildPackage,$(PKG_NAME)-mod-$(1)))
748 endef
749
750
751 $(eval $(call BuildPackage,$(PKG_NAME)))
752 $(eval $(call BuildPackage,$(PKG_NAME)-collection-upstream-defaults))
753 $(eval $(call BuildPackage,$(PKG_NAME)-collection-minimal))
754 $(eval $(call BuildPackage,$(PKG_NAME)-sounds-en))
755 $(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh))
756 $(eval $(call BuildPackage,$(PKG_NAME)-tools))
757 $(eval $(call BuildPackage,$(PKG_NAME)-example-config))
758 $(eval $(call BuildPackage,$(PKG_NAME)-config-upstream-defaults))
759 $(eval $(call BuildPackage,$(PKG_NAME)-config-minimal))
760
761
762 #
763 # $(eval $(call BuildLib,Name,Title,Package Configuration Files,Inter Depends,Extra Depends))
764 #
765 $(eval $(call BuildLib,libopenzap,OpenZAP,openzap,,))
766
767
768 #
769 # $(eval $(call BuildPlugin,Name,Title,Files,Inter Depends,Extra Depends))
770 #
771 $(eval $(call BuildPlugin,abstraction,An Abstraction To API Call,,,,))
772 $(eval $(call BuildPlugin,alsa,Alsa Endpoint,,,,+alsa-lib))
773 $(eval $(call BuildPlugin,amr,Adaptive Multi-Rate On Bandwidth Codec,,,,))
774 $(eval $(call BuildPlugin,amrwb,Wide Band AMR,,,,))
775 $(eval $(call BuildPlugin,avmd,Advanced Voice Mail Detection,,,,))
776 $(eval $(call BuildPlugin,blacklist,Blacklist,,,,))
777 $(eval $(call BuildPlugin,bv,BroadVoice16 and BroadVoice32 Audio Codec,,,,))
778 $(eval $(call BuildPlugin,callcenter,Call Center,,,,))
779 $(eval $(call BuildPlugin,cdr-csv,CSV-CDR Handler,,,,))
780 $(eval $(call BuildPlugin,cdr-pg-csv,Postgress CDR Handler,,,,+coreutils +libpq +postresql))
781 $(eval $(call BuildPlugin,cdr-sqlite,SQLite3 CDR Handler,,,,+libsqlite3))
782 $(eval $(call BuildPlugin,celt,CELT Ultra-Low Delay Codec,,,,+libogg))
783 $(eval $(call BuildPlugin,cepstral,Cepstral Interface,,,,@BROKEN)) # needs <swift.h>
784 $(eval $(call BuildPlugin,cidlookup,Data Query For CID->NAME Services,,,,+libcurl))
785 $(eval $(call BuildPlugin,cluechoo,Framework Demo,,,,))
786 $(eval $(call BuildPlugin,codec2,CoDec 2,,,,))
787 $(eval $(call BuildPlugin,commands,API Commands,,,,))
788 $(eval $(call BuildPlugin,conference,Conference Room,,,,))
789 $(eval $(call BuildPlugin,console,Console Logger,,,,))
790 $(eval $(call BuildPlugin,curl,HTTP Request,,,,+libcurl))
791 $(eval $(call BuildPlugin,dahdi-codec,DAHDI Codecs,,,,))
792 $(eval $(call BuildPlugin,db,Database Backend,,,,))
793 $(eval $(call BuildPlugin,dialplan-asterisk,Asterisk Dialplan Parser,,,,))
794 $(eval $(call BuildPlugin,dialplan-directory,Dialplan Directory,,,,))
795 $(eval $(call BuildPlugin,dialplan-xml,Dialplan-XML Interface,,,,))
796 $(eval $(call BuildPlugin,dingaling,Jabber Interface,,,,+libgcrypt +libopenssl))
797 $(eval $(call BuildPlugin,directory,Search By Name Directory IVR,,,,))
798 $(eval $(call BuildPlugin,distributor,Simple Robin-Round Load to Gateway,,,,))
799 $(eval $(call BuildPlugin,dptools,Dialplan Tools,,,,))
800 $(eval $(call BuildPlugin,easyroute,Simple DID Routing,,,,))
801 $(eval $(call BuildPlugin,enum,ENUM Routing,,,,))
802 $(eval $(call BuildPlugin,erlang-event,Erlang Event Handler,,,,+erlang))
803 $(eval $(call BuildPlugin,esf,Extra SIP Functionality,,,,))
804 $(eval $(call BuildPlugin,event-multicast,Multicast Event Handler,,,,))
805 $(eval $(call BuildPlugin,event-socket,Socket Event Handler,,,,))
806 $(eval $(call BuildPlugin,event-zmq,Socket Event Handler By Zero MQ,,,,+libuuid))
807 $(eval $(call BuildPlugin,expr,Expression Evaluation,,,,))
808 $(eval $(call BuildPlugin,fifo,FIFO,,,,))
809 $(eval $(call BuildPlugin,file-string,Streaming Multiple Sound Files Sequentially,,,,@OBSOLETE)) # merged into dptools
810 $(eval $(call BuildPlugin,flite,Festival TTS,,,,@(!(armeb||avr32)||BROKEN)))
811 $(eval $(call BuildPlugin,fsk,Bell-202 1200-baud FSK decoder,,,,))
812 $(eval $(call BuildPlugin,fsv,Video Player / Recorder,,,,))
813 $(eval $(call BuildPlugin,g723-1,G.723.1 Codec,,,,))
814 $(eval $(call BuildPlugin,g729,G.729 Codec,,,,))
815 $(eval $(call BuildPlugin,gsmopen,GSM Modem compatible Endpoint,,,,+alsa-lib @BROKEN)) # needs gsmlib
816 $(eval $(call BuildPlugin,h26x,H26X Linear Codec,,,,))
817 $(eval $(call BuildPlugin,h323,H323 Endpoint,,,,@BROKEN)) # Req. H323Plus v1.24.x or newer
818 $(eval $(call BuildPlugin,hash,API For Manipulating A Hash Table,,,,))
819 $(eval $(call BuildPlugin,html5,HTML5 Endpoint Module,,,,))
820 $(eval $(call BuildPlugin,httapi,HT Telephony API And HTTP Caching,,,,))
821 $(eval $(call BuildPlugin,http-cache,HTTP GET With Caching,,,,+libcurl))
822 $(eval $(call BuildPlugin,ilbc,ILBC Codec,,,,))
823 $(eval $(call BuildPlugin,isac,iSAC Codec,,,,))
824 $(eval $(call BuildPlugin,java,Java Language Interface,,,,@BROKEN)) # needs java
825 $(eval $(call BuildPlugin,json-cdr,JSon-CDR Interface,,,,+libcurl))
826 $(eval $(call BuildPlugin,lcr,Least Cost Routing,,,,))
827 $(eval $(call BuildPlugin,local-stream,Multi-Channel On Same Stream,,,,))
828 $(eval $(call BuildPlugin,logfile,File Logger,,,,))
829 $(eval $(call BuildPlugin,loopback,Loopback to Dialplan Endpoint,,,,))
830 $(eval $(call BuildPlugin,lua,LUA Language Interface,,,,))
831 $(eval $(call BuildPlugin,managed,Media Switching Software Library,,,,+glib2 @BROKEN)) # needs Mono
832 $(eval $(call BuildPlugin,mp4,MP4 File Format support for video apps,,,,@BROKEN)) # needs libmp4v2
833 $(eval $(call BuildPlugin,mp4v,MP4 CoDec Support For Video,,,,))
834 $(eval $(call BuildPlugin,native-file,WAV Format Sound Player,,,,))
835 $(eval $(call BuildPlugin,nibblebill,Credit / Debit Billing,,,,))
836 $(eval $(call BuildPlugin,oreka,Media Recording with Oreka,,,,))
837 $(eval $(call BuildPlugin,openzap,Zaptel (Superseded by FreeTDM),ozmod,,,+$(PKG_NAME)-libopenzap +libpcap))
838 $(eval $(call BuildPlugin,opus,Opus CoDec,,,,))
839 $(eval $(call BuildPlugin,portaudio,Portaudio To Sound Card Interface,,,,+alsa-lib))
840 $(eval $(call BuildPlugin,portaudio-stream,Portaudio Streaming Interface,,,,+alsa-lib))
841 $(eval $(call BuildPlugin,posix-timer,POSIX Compliant Soft Timer,,,,))
842 $(eval $(call BuildPlugin,radius-cdr,Radius-CDR interface,,,,+freeradius2 @BROKEN)) # fails in freeradius-client
843 $(eval $(call BuildPlugin,redis,Redis Limited Backend,,,,))
844 $(eval $(call BuildPlugin,rss,RRS Feeds via TTS,,,,))
845 $(eval $(call BuildPlugin,rtmp,RTMP Protocol Handler,,,,))
846 $(eval $(call BuildPlugin,sangoma-codec,codec sangoma-codec,,,,@BROKEN)) # Req. Sangoma CoDec source
847 $(eval $(call BuildPlugin,say-de,German Say,,,,))
848 $(eval $(call BuildPlugin,say-en,English Say,,,,))
849 $(eval $(call BuildPlugin,say-es,Spanish Say,,,,))
850 $(eval $(call BuildPlugin,say-fa,Persian Say,,,,))
851 $(eval $(call BuildPlugin,say-fr,French Say,,,,))
852 $(eval $(call BuildPlugin,say-hu,Hungarian Say,,,,))
853 $(eval $(call BuildPlugin,say-it,Italian Say,,,,))
854 $(eval $(call BuildPlugin,say-nl,Dutch Say,,,,))
855 $(eval $(call BuildPlugin,say-pt,Portugeese Say,,,,))
856 $(eval $(call BuildPlugin,say-ru,Russian Say,,,,))
857 $(eval $(call BuildPlugin,say-th,Thai Say,,,,))
858 $(eval $(call BuildPlugin,say-zh,Chineese Say,,,,))
859 $(eval $(call BuildPlugin,shell-stream,Streaming Audio Through CLI,,,,))
860 $(eval $(call BuildPlugin,silk,Skype(TM) SILK Codec Module,,,,))
861 $(eval $(call BuildPlugin,siren,G.722.1 Codec,,,,))
862 $(eval $(call BuildPlugin,skel,Template For New Module,,,,))
863 $(eval $(call BuildPlugin,skinny,Skinny Call Control Protocol (SCCP),,,,))
864 $(eval $(call BuildPlugin,skypopen,Skype Compatible Endpoint,,,,@FEATURE_drawing-backend_libX11))
865 $(eval $(call BuildPlugin,sms,SMS,,,,))
866 $(eval $(call BuildPlugin,snapshot,Record Audio Snapshot to File,,,,))
867 $(eval $(call BuildPlugin,sndfile,Multi-Format Sound File,,,,))
868 $(eval $(call BuildPlugin,snipe-hunt,Snipe Hunt (Simple Example Module),,,,))
869 $(eval $(call BuildPlugin,snmp,SNMP AgentX Subagent,,,,+libnetsnmp))
870 $(eval $(call BuildPlugin,snom,SNOM specific features,,,,))
871 $(eval $(call BuildPlugin,sofia,SOFIA SIP,,,,))
872 $(eval $(call BuildPlugin,sonar,Sonar Ping Timer,,,,))
873 $(eval $(call BuildPlugin,spandsp,Span DSP,,,,+libjpeg))
874 $(eval $(call BuildPlugin,speex,Speex codec,,,,))
875 $(eval $(call BuildPlugin,spidermonkey,JavaScript,,,,@BROKEN)) # fails in js
876 $(eval $(call BuildPlugin,spidermonkey-core_db,JavaScript DB,,,,@BROKEN))
877 $(eval $(call BuildPlugin,spidermonkey-curl,JavaScript Curl,,,,@BROKEN))
878 $(eval $(call BuildPlugin,spidermonkey-odbc,JavaScript ODBC,,,,@BROKEN))
879 $(eval $(call BuildPlugin,spidermonkey-socket,JavaScript socket,,,,@BROKEN))
880 $(eval $(call BuildPlugin,spidermonkey-teletone,JavaScript teletone,,,,@BROKEN))
881 $(eval $(call BuildPlugin,spy,User Spy,,,,))
882 $(eval $(call BuildPlugin,stress,Voice Stress Detection,,,,))
883 $(eval $(call BuildPlugin,syslog,SysLog logger,,,,))
884 $(eval $(call BuildPlugin,tone-stream,Tone Generation Stream,,,,))
885 $(eval $(call BuildPlugin,tts-commandline,ASR TTS Command Interface,,,,))
886 $(eval $(call BuildPlugin,unimrcp,UniMRCP (MRCP client),,,,@BROKEN))
887 $(eval $(call BuildPlugin,valet-parking,Valet Parking Application,,,,))
888 $(eval $(call BuildPlugin,vmd,VoiceMail Beep Detection,,,,))
889 $(eval $(call BuildPlugin,voicemail,VoiceMail,,,,))
890 $(eval $(call BuildPlugin,voicemail-ivr,VoiceMail IVR,,,,))
891 $(eval $(call BuildPlugin,xml-cdr,XML-CDR Handler,,,,+libcurl))
892 $(eval $(call BuildPlugin,xml-curl,XML-Curl Gateway,,,,+libcurl))
893 $(eval $(call BuildPlugin,xml-rpc,XML-RPC Interface,,,,))
894 $(eval $(call BuildPlugin,xml-scgi,SCGI XML Gateway,,,,))
895 $(eval $(call BuildPlugin,yaml,YAML langunage,,,,))