comment "exim needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_EXIM
	bool "exim"
	depends on BR2_USE_MMU # fork()
	depends on BR2_TOOLCHAIN_HAS_THREADS
	select BR2_PACKAGE_PCRE
	select BR2_PACKAGE_BERKELEYDB
	help
	  Exim is a message transfer agent (MTA) developed at the
	  University of Cambridge for use on Unix systems connected to
	  the Internet.

	  http://www.exim.org/

if BR2_PACKAGE_EXIM

config BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE
	string "Custom configuration file"
	help
	  By default, when this option is left empty, Buildroot
	  generates a configuration file for exim with reasonable
	  settings.

	  If you want to override the configuration file generated by
	  Buildroot with a customized file, set here the path to your
	  configuration file with this option.

	  This file shall comply with the syntax defined in the exim
	  documentation (http://www.exim.org/docs.html).
	  Buildroot will generate a configuration file composed of the
	  content of the file you provide plus the toolchain-related
	  settings needed for cross-compilation.

endif
