config BR2_PACKAGE_LINPHONE
	bool "linphone"
	depends on BR2_INSTALL_LIBSTDCPP # mediastreamer (bundled)
	depends on BR2_TOOLCHAIN_HAS_THREADS # ortp (bundled)
	depends on BR2_USE_MMU # libeXosip2
	select BR2_PACKAGE_LIBEXOSIP2
	select BR2_PACKAGE_SPEEX
	select BR2_PACKAGE_SPEEXDSP
	help
	  Linphone is an internet phone or Voice Over IP phone (VoIP).

	  With linphone you can communicate freely with people over
	  the internet, with voice, video, and text instant messaging.
	  Linphone makes use of the SIP protocol, an open standard
	  for internet telephony. You can use Linphone with any SIP
	  VoIP operator, including our free SIP audio/video service.
	  linphone is free-software (or open-source), you can download
	  and redistribute it freely.
	  Linphone is available for desktop computers: Linux, Windows,
	  MacOSX, and for mobile phones: Android, iPhone, Blackberry.

	  Linphone support in Buildroot is limited to the commandline
	  client, linphonec, and video support is not enabled.

	  http://www.linphone.org/

comment "linphone needs a toolchain w/ threads, C++"
	depends on BR2_USE_MMU
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
