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_OPENCV_LIB_HIGHGUI if BR2_PACKAGE_OPENCV
	select BR2_PACKAGE_OPENCV_LIB_IMGPROC if BR2_PACKAGE_OPENCV
	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT if BR2_PACKAGE_OPENCV
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_PCRE
	select BR2_PACKAGE_SPEEX
	select BR2_PACKAGE_SPEEXDSP
	select BR2_PACKAGE_SQLITE
	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
