config BR2_PACKAGE_FREESWITCH
	bool "freeswitch"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_STATIC_LIBS # apr, included in freeswitch source
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_USE_MMU # apr, included in freeswitch source
	depends on BR2_USE_WCHAR # uses wchar_t
	select BR2_PACKAGE_FFMPEG_AVRESAMPLE if BR2_PACKAGE_FFMPEG
	select BR2_PACKAGE_FFMPEG_SWSCALE if BR2_PACKAGE_FFMPEG
	select BR2_PACKAGE_LIBCURL
	select BR2_PACKAGE_JPEG
	# src/mod/applications/mod_cv/mod_cv.cpp includes
	# highgui.h, imgproc.hpp & objdetect.hpp
	select BR2_PACKAGE_OPENCV3_LIB_HIGHGUI if BR2_PACKAGE_OPENCV3
	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC if BR2_PACKAGE_OPENCV3
	select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT if BR2_PACKAGE_OPENCV3
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_PCRE
	select BR2_PACKAGE_SOFIA_SIP
	select BR2_PACKAGE_SPANDSP
	select BR2_PACKAGE_SPEEX
	select BR2_PACKAGE_SPEEXDSP
	select BR2_PACKAGE_SQLITE
	select BR2_PACKAGE_TIFF
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	select BR2_PACKAGE_ZLIB
	help
	  FreeSWITCH is a scalable open source cross-platform
	  telephony platform designed to route and interconnect
	  popular communication protocols using audio, video, text or
	  any other form of media.

	  https://www.freeswitch.org

comment "freeswitch needs a toolchain w/ C++, dynamic library, threads, wchar"
	depends on BR2_USE_MMU
	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS \
		|| !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
