menuconfig BR2_PACKAGE_NGINX
	bool "nginx"
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_LIBATOMIC_OPS if BR2_sparc_v8 || BR2_sparc_leon3
	help
	  nginx is an HTTP and reverse proxy server, as well as a mail
	  proxy server.

	  http://nginx.org/

if BR2_PACKAGE_NGINX

config BR2_PACKAGE_NGINX_FILE_AIO
	bool "file AIO support"
	# Does not build, because nginx hardcodes using SYS_eventfd,
	# but it's available on neither AArch64 nor ARC where only
	# eventfd() is available. See
	# https://bugs.launchpad.net/linaro-aarch64/+bug/1160013
	depends on !BR2_aarch64
	depends on !BR2_arc

config BR2_PACKAGE_NGINX_THREADS
	bool "thread pool support"
	depends on BR2_TOOLCHAIN_HAS_THREADS

comment "thread pool support needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_NGINX_HTTP
	bool "http server"
	default y

if BR2_PACKAGE_NGINX_HTTP

config BR2_PACKAGE_NGINX_HTTP_CACHE
	bool "http cache support"
	select BR2_PACKAGE_OPENSSL

comment "http modules"

config BR2_PACKAGE_NGINX_HTTP_SSL_MODULE
	bool "ngx_http_ssl_module"
	select BR2_PACKAGE_OPENSSL
	help
	  Enable ngx_http_ssl_module

config BR2_PACKAGE_NGINX_HTTP_V2_MODULE
	bool "ngx_http_v2_module"
	select BR2_PACKAGE_ZLIB
	help
	  Enable ngx_http_spdy_module

config BR2_PACKAGE_NGINX_HTTP_REALIP_MODULE
	bool "ngx_http_realip_module"
	help
	  Enable ngx_http_realip_module

config BR2_PACKAGE_NGINX_HTTP_ADDITION_MODULE
	bool "ngx_http_addition_module"
	help
	  Enable ngx_http_addition_module

config BR2_PACKAGE_NGINX_HTTP_XSLT_MODULE
	bool "ngx_http_xslt_module"
	select BR2_PACKAGE_LIBXML2
	select BR2_PACKAGE_LIBXSLT
	help
	  Enable ngx_http_xslt_module

config BR2_PACKAGE_NGINX_HTTP_IMAGE_FILTER_MODULE
	bool "ngx_http_image_filter_module"
	select BR2_PACKAGE_GD
	select BR2_PACKAGE_JPEG
	select BR2_PACKAGE_LIBPNG
	help
	  Enable ngx_http_image_filter_module

config BR2_PACKAGE_NGINX_HTTP_GEOIP_MODULE
	bool "ngx_http_geoip_module"
	select BR2_PACKAGE_GEOIP
	help
	  Enable ngx_http_geoip_module

config BR2_PACKAGE_NGINX_HTTP_SUB_MODULE
	bool "ngx_http_sub_module"
	help
	  Enable ngx_http_sub_module

config BR2_PACKAGE_NGINX_HTTP_DAV_MODULE
	bool "ngx_http_dav_module"
	help
	  Enable ngx_http_dav_module

config BR2_PACKAGE_NGINX_HTTP_FLV_MODULE
	bool "ngx_http_flv_module"
	help
	  Enable ngx_http_flv_module

config BR2_PACKAGE_NGINX_HTTP_MP4_MODULE
	bool "ngx_http_mp4_module"
	help
	  Enable ngx_http_mp4_module

config BR2_PACKAGE_NGINX_HTTP_GUNZIP_MODULE
	bool "ngx_http_gunzip_module"
	select BR2_PACKAGE_ZLIB
	help
	  Enable ngx_http_gunzip_module

config BR2_PACKAGE_NGINX_HTTP_GZIP_STATIC_MODULE
	bool "ngx_http_gzip_static_module"
	select BR2_PACKAGE_ZLIB
	help
	  Enable ngx_http_gzip_static_module

config BR2_PACKAGE_NGINX_HTTP_AUTH_REQUEST_MODULE
	bool "ngx_http_auth_request_module"
	help
	  Enable ngx_http_auth_request_module

config BR2_PACKAGE_NGINX_HTTP_RANDOM_INDEX_MODULE
	bool "ngx_http_random_index_module"
	help
	  Enable ngx_http_random_index_module

config BR2_PACKAGE_NGINX_HTTP_SECURE_LINK_MODULE
	bool "ngx_http_secure_link_module"
	select BR2_PACKAGE_OPENSSL
	help
	  Enable ngx_http_secure_link_module

config BR2_PACKAGE_NGINX_HTTP_DEGRADATION_MODULE
	bool "ngx_http_degradation_module"
	help
	  Enable ngx_http_degradation_module

config BR2_PACKAGE_NGINX_HTTP_SLICE_MODULE
	bool "ngx_http_slice_module"
	help
	  Enable ngx_http_slice_module

config BR2_PACKAGE_NGINX_HTTP_STUB_STATUS_MODULE
	bool "ngx_http_stub_status_module"
	help
	  Enable ngx_http_stub_status_module

config BR2_PACKAGE_NGINX_HTTP_CHARSET_MODULE
	bool "ngx_http_charset_module"
	default y
	help
	  Enable ngx_http_charset_module

config BR2_PACKAGE_NGINX_HTTP_GZIP_MODULE
	bool "ngx_http_gzip_module"
	default y
	select BR2_PACKAGE_ZLIB
	help
	  Enable ngx_http_gzip_module

config BR2_PACKAGE_NGINX_HTTP_SSI_MODULE
	bool "ngx_http_ssi_module"
	default y
	help
	  Enable ngx_http_ssi_module

config BR2_PACKAGE_NGINX_HTTP_USERID_MODULE
	bool "ngx_http_userid_module"
	default y
	help
	  Enable ngx_http_userid_module

config BR2_PACKAGE_NGINX_HTTP_ACCESS_MODULE
	bool "ngx_http_access_module"
	default y
	help
	  Enable ngx_http_access_module

config BR2_PACKAGE_NGINX_HTTP_AUTH_BASIC_MODULE
	bool "ngx_http_auth_basic_module"
	default y
	help
	  Enable ngx_http_auth_basic_module

config BR2_PACKAGE_NGINX_HTTP_AUTOINDEX_MODULE
	bool "ngx_http_autoindex_module"
	default y
	help
	  Enable ngx_http_autoindex_module

config BR2_PACKAGE_NGINX_HTTP_GEO_MODULE
	bool "ngx_http_geo_module"
	default y
	help
	  Enable ngx_http_geo_module

config BR2_PACKAGE_NGINX_HTTP_MAP_MODULE
	bool "ngx_http_map_module"
	default y
	help
	  Enable ngx_http_map_module

config BR2_PACKAGE_NGINX_HTTP_SPLIT_CLIENTS_MODULE
	bool "ngx_http_split_clients_module"
	default y
	help
	  Enable ngx_http_split_clients_module

config BR2_PACKAGE_NGINX_HTTP_REFERER_MODULE
	bool "ngx_http_referer_module"
	default y
	help
	  Enable ngx_http_referer_module

config BR2_PACKAGE_NGINX_HTTP_REWRITE_MODULE
	bool "ngx_http_rewrite_module"
	default y
	select BR2_PACKAGE_PCRE
	help
	  Enable ngx_http_rewrite_module

config BR2_PACKAGE_NGINX_HTTP_PROXY_MODULE
	bool "ngx_http_proxy_module"
	default y
	help
	  Enable ngx_http_proxy_module

config BR2_PACKAGE_NGINX_HTTP_FASTCGI_MODULE
	bool "ngx_http_fastcgi_module"
	default y
	help
	  Enable ngx_http_fastcgi_module

config BR2_PACKAGE_NGINX_HTTP_UWSGI_MODULE
	bool "ngx_http_uwsgi_module"
	default y
	help
	  Enable ngx_http_uwsgi_module

config BR2_PACKAGE_NGINX_HTTP_SCGI_MODULE
	bool "ngx_http_scgi_module"
	default y
	help
	  Enable ngx_http_scgi_module

config BR2_PACKAGE_NGINX_HTTP_MEMCACHED_MODULE
	bool "ngx_http_memcached_module"
	default y
	help
	  Enable ngx_http_memcached_module

config BR2_PACKAGE_NGINX_HTTP_LIMIT_CONN_MODULE
	bool "ngx_http_limit_conn_module"
	default y
	help
	  Enable ngx_http_limit_conn_module

config BR2_PACKAGE_NGINX_HTTP_LIMIT_REQ_MODULE
	bool "ngx_http_limit_req_module"
	default y
	help
	  Enable ngx_http_limit_req_module

config BR2_PACKAGE_NGINX_HTTP_EMPTY_GIF_MODULE
	bool "ngx_http_empty_gif_module"
	default y
	help
	  Enable ngx_http_empty_gif_module

config BR2_PACKAGE_NGINX_HTTP_BROWSER_MODULE
	bool "ngx_http_browser_module"
	default y
	help
	  Enable ngx_http_browser_module

config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_IP_HASH_MODULE
	bool "ngx_http_upstream_ip_hash_module"
	default y
	help
	  Enable ngx_http_upstream_ip_hash_module

config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_LEAST_CONN_MODULE
	bool "ngx_http_upstream_least_conn_module"
	default y
	help
	  Enable ngx_http_upstream_least_conn_module

config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_KEEPALIVE_MODULE
	bool "ngx_http_upstream_keepalive_module"
	default y
	help
	  Enable ngx_http_upstream_keepalive_module

config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_RANDOM_MODULE
	bool "ngx_http_upstream_random_module"
	default y
	help
	  Enable ngx_http_upstream_random_module

endif #BR2_PACKAGE_NGINX_HTTP

config BR2_PACKAGE_NGINX_MAIL
	bool "mail proxy modules"

if BR2_PACKAGE_NGINX_MAIL

config BR2_PACKAGE_NGINX_MAIL_SSL_MODULE
	bool "ngx_mail_ssl_module"
	select BR2_PACKAGE_OPENSSL
	help
	  Enable ngx_mail_ssl_module

config BR2_PACKAGE_NGINX_MAIL_POP3_MODULE
	bool "ngx_mail_pop3_module"
	default y
	help
	  Enable ngx_mail_pop3_module

config BR2_PACKAGE_NGINX_MAIL_IMAP_MODULE
	bool "ngx_mail_imap_module"
	default y
	help
	  Enable ngx_mail_imap_module

config BR2_PACKAGE_NGINX_MAIL_SMTP_MODULE
	bool "ngx_mail_smtp_module"
	default y
	help
	  Enable ngx_mail_smtp_module

endif #BR2_PACKAGE_NGINX_MAIL

config BR2_PACKAGE_NGINX_STREAM
	bool "stream proxy modules"

if BR2_PACKAGE_NGINX_STREAM

config BR2_PACKAGE_NGINX_STREAM_REALIP_MODULE
	bool "ngx_stream_realip_module"
	help
	  Enable ngx_stream_realip_module

config BR2_PACKAGE_NGINX_STREAM_SSL_MODULE
	bool "ngx_stream_ssl_module"
	select BR2_PACKAGE_OPENSSL
	help
	  Enable ngx_stream_ssl_module

config BR2_PACKAGE_NGINX_STREAM_GEOIP_MODULE
	bool "ngx_stream_geoip_module"
	select BR2_PACKAGE_GEOIP
	help
	  Enable ngx_stream_geoip_module

config BR2_PACKAGE_NGINX_STREAM_SSL_PREREAD_MODULE
	bool "ngx_stream_ssl_preread_module"
	help
	  Enable ngx_stream_ssl_preread_module

config BR2_PACKAGE_NGINX_STREAM_LIMIT_CONN_MODULE
	bool "ngx_stream_limit_conn_module"
	default y
	help
	  Enable ngx_stream_limit_conn_module

config BR2_PACKAGE_NGINX_STREAM_ACCESS_MODULE
	bool "ngx_stream_access_module"
	default y
	help
	  Enable ngx_stream_access_module

config BR2_PACKAGE_NGINX_STREAM_GEO_MODULE
	bool "ngx_stream_geo_module"
	default y
	help
	  Enable ngx_stream_geo_module

config BR2_PACKAGE_NGINX_STREAM_MAP_MODULE
	bool "ngx_stream_map_module"
	default y
	help
	  Enable ngx_stream_map_module

config BR2_PACKAGE_NGINX_STREAM_SPLIT_CLIENTS_MODULE
	bool "ngx_stream_split_clients_module"
	default y
	help
	  Enable ngx_stream_split_clients_module

config BR2_PACKAGE_NGINX_STREAM_RETURN_MODULE
	bool "ngx_stream_return_module"
	default y
	help
	  Enable ngx_stream_return_module

config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_HASH_MODULE
	bool "ngx_stream_upstream_hash_module"
	default y
	help
	  Enable ngx_stream_upstream_hash_module

config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_LEAST_CONN_MODULE
	bool "ngx_stream_upstream_least_conn_module"
	default y
	help
	  Enable ngx_stream_upstream_least_conn_module

config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_RANDOM_MODULE
	bool "ngx_stream_upstream_random_module"
	default y
	help
	  Enable ngx_stream_upstream_random_module

config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_ZONE_MODULE
	bool "ngx_stream_upstream_zone_module"
	default y
	help
	  Enable ngx_stream_upstream_zone_module

endif #BR2_PACKAGE_NGINX_STREAM

config BR2_PACKAGE_NGINX_DEBUG
	bool "debug logging"
	help
	  Enable debug logging. The debug level should be set with
	  the error_log directive. For example

	  error_log /var/log/nginx/error.log debug;

comment "misc. modules"

config BR2_PACKAGE_NGINX_SELECT_MODULE
	bool "ngx_select_module"
	help
	  Enable ngx_select_module

config BR2_PACKAGE_NGINX_POLL_MODULE
	bool "ngx_poll_module"
	help
	  Enable ngx_poll_module

config BR2_PACKAGE_NGINX_ADD_MODULES
	string "additional modules"
	help
	  Space separated list of urls of the additional modules

endif
