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

config BR2_PACKAGE_RESIPROCATE
	bool "resiprocate"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_USE_WCHAR
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_C_ARES
	help
	  reSIProcate is a framework that aims to fully implement the
	  SIP protocol in first class C++. It is intended for use in
	  other applications, such as the repro SIP proxy.

	  By default this package provides the core libraries: librutil
	  (utilities), libresip (SIP stack/RFC compliant message
	  parsing) and libdum (SIP Dialog Usage Manager, a state
	  machine for SIP dialogs).

	  https://www.resiprocate.org/

if BR2_PACKAGE_RESIPROCATE

config BR2_PACKAGE_RESIPROCATE_DTLS_SUPPORT
	bool "DTLS support"
	select BR2_PACKAGE_OPENSSL
	help
	  Enable DTLS support (requires OpenSSL)

config BR2_PACKAGE_RESIPROCATE_REND
	bool "resiprocate-rend"
	select BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_SYSTEM
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_POPT
	help
	  Rend is tool that is was created specifically to load test
	  gtSIP based presence servers.

config BR2_PACKAGE_RESIPROCATE_APPS
	bool "resiprocate-apps"
	select BR2_PACKAGE_PCRE
	help
	  Build apps clicktocall and sipdial

endif # BR2_PACKAGE_RESIPROCATE
