config BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS
	bool
	default y if BR2_HOSTARCH = "x86_64"
	default y if BR2_HOSTARCH = "x86"

config BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
	bool
	# see HOWTO/INSTALL.md for Erlang's supported platforms
	# when using its native atomic ops implementation
	default y if BR2_i386 || BR2_x86_64 || BR2_powerpc || \
		BR2_sparc_v9 || BR2_arm || BR2_aarch64 || BR2_mipsel
	# erlang needs host-erlang
	depends on BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS

comment "erlang needs a toolchain w/ dynamic library, threads"
	depends on BR2_USE_MMU # fork()
	depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_ERLANG
	bool "erlang"
	depends on BR2_USE_MMU # fork()
	depends on !BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
	help
	  Erlang is a programming language used to build massively
	  scalable soft real-time systems with requirements on high
	  availability. Some of its uses are in telecoms, banking,
	  e-commerce, computer telephony and instant messaging.
	  Erlang's runtime system has built-in support for
	  concurrency, distribution and fault tolerance.

	  http://www.erlang.org

if BR2_PACKAGE_ERLANG

config BR2_PACKAGE_ERLANG_MEGACO
	bool "install megaco application"
	help
	  The Megaco application is a framework for building
	  applications on top of the Megaco/H.248 protocol. It is
	  approximately 14MB in size so if you do not need it then
	  it is recommended not to enable it.

endif # BR2_PACKAGE_ERLANG
