comment "lighttpd needs a toolchain w/ dynamic library"
	depends on BR2_USE_MMU
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_LIGHTTPD
	bool "lighttpd"
	depends on BR2_USE_MMU # fork()
	depends on !BR2_STATIC_LIBS
	help
	  lighttpd a secure, fast, compliant and very flexible
	  web-server which has been optimized for high-performance
	  environments. It has a very low memory footprint compared to
	  other webservers and takes care of cpu-load. Its advanced
	  feature-set (FastCGI, CGI, Auth, Output-Compression,
	  URL-Rewriting and many more) make lighttpd the perfect
	  webserver-software for every server that is suffering load
	  problems.

	  http://www.lighttpd.net/

if BR2_PACKAGE_LIGHTTPD

config BR2_PACKAGE_LIGHTTPD_OPENSSL
	bool "openssl support"
	select BR2_PACKAGE_OPENSSL
	help
	  Enable OpenSSL support for lighttpd.

config BR2_PACKAGE_LIGHTTPD_PAM
	bool "pam authentication support"
	default y
	depends on BR2_PACKAGE_LINUX_PAM
	help
	  Enable PAM authentication support for lighttpd.

config BR2_PACKAGE_LIGHTTPD_ZLIB
	bool "zlib support"
	select BR2_PACKAGE_ZLIB
	help
	  Enable zlib support for lighttpd mod_compress.

config BR2_PACKAGE_LIGHTTPD_BZIP2
	bool "bzip2 support"
	select BR2_PACKAGE_BZIP2
	help
	  Enable bzip2 support for lighttpd mod_compress.

config BR2_PACKAGE_LIGHTTPD_PCRE
	bool "pcre support"
	select BR2_PACKAGE_PCRE
	help
	  Enable PCRE support. Needed to support mod_rewrite

config BR2_PACKAGE_LIGHTTPD_WEBDAV
	bool "webdav support"
	select BR2_PACKAGE_LIBXML2
	select BR2_PACKAGE_SQLITE
	help
	  Enable webdav support. Needed to support mod_webdav

config BR2_PACKAGE_LIGHTTPD_LUA
	bool "lua support"
	depends on BR2_PACKAGE_LUA
	help
	  Enable Lua support. Needed to support mod_magnet

endif
