# ===========================================================
# Only the most important modules are enabled per default in 
# httpd.conf, therfore build all modules not depending on other
# ports, marked as example or developer module.
#
# Required modules without OPTION:
#   UNIXD LOG_CONFIG


# mod_proxy_html and xml2enc depending on libxml2
PROXY_ENABLED_MODULES= \
	PROXY_AJP PROXY_BALANCER PROXY_CONNECT PROXY_EXPRESS PROXY_FCGI \
	PROXY_HTTP2 PROXY_FDPASS PROXY_FTP PROXY_HCHECK PROXY_HTML PROXY_HTTP \
	PROXY_SCGI PROXY_UWSGI PROXY_WSTUNNEL

PROXY_DISABLED_MODULES=

# SESSION_CRYPTO need APR build with crypto (EVP support in APR)
SESSION_ENABLED_MODULES= \
	SESSION_COOKIE SESSION_CRYPTO SESSION_DBD

SESSION_DISABLED_MODULES=

EXAMPLE_MODULES= \
	BUCKETEER CASE_FILTER CASE_FILTER_IN ECHO EXAMPLE_HOOKS EXAMPLE_IPC \
	OPTIONAL_FN_EXPORT OPTIONAL_FN_IMPORT OPTIONAL_HOOK_EXPORT \
	OPTIONAL_HOOK_IMPORT

MOST_ENABLED_MODULES= \
	ACCESS_COMPAT ACTIONS ALIAS ALLOWMETHODS ASIS \
	AUTHN_ANON AUTHN_CORE AUTHN_DBD AUTHN_DBM AUTHN_FILE AUTHN_SOCACHE \
	AUTHZ_CORE AUTHZ_DBD AUTHZ_DBM AUTHNZ_FCGI AUTHZ_GROUPFILE AUTHZ_HOST \
	AUTHZ_OWNER AUTHZ_USER \
	AUTH_BASIC AUTH_DIGEST AUTH_FORM AUTOINDEX \
	BUFFER \
	CACHE CACHE_DISK CACHE_SOCACHE CERN_META CGI CGID \
	CHARSET_LITE \
	DATA DAV DAV_FS DAV_LOCK DBD DEFLATE DIALUP DIR DUMPIO \
	ENV EXPIRES EXT_FILTER \
	FILE_CACHE FILTER \
	HEADERS HEARTBEAT HEARTMONITOR HTTP2 \
	IMAGEMAP INCLUDE INFO \
	LBMETHOD_BYBUSYNESS LBMETHOD_BYREQUESTS LBMETHOD_BYTRAFFIC \
	LBMETHOD_HEARTBEAT LOGIO LOG_DEBUG LOG_FORENSIC \
	MACRO MD MIME MIME_MAGIC \
	NEGOTIATION \
	RATELIMIT REFLECTOR REMOTEIP REQTIMEOUT REQUEST REWRITE \
	SED SETENVIF \
	SLOTMEM_PLAIN SLOTMEM_SHM SOCACHE_DBM SOCACHE_MEMCACHE SOCACHE_SHMCB \
	SPELING SSL STATUS SUBSTITUTE \
	UNIQUE_ID USERDIR USERTRACK \
	VERSION VHOST_ALIAS \
	WATCHDOG XML2ENC

MOST_DISABLED_MODULES= \
	AUTHNZ_LDAP BROTLI IDENT LDAP LUA SOCACHE_DC SOCACHE_REDIS SUEXEC \
	SUEXEC_SYSLOG TLS

#     enable/disable additional PROXY/SESSION modules
META_MODULES=	PROXY SESSION

ADDITIONAL_OPT=	LUAJIT IPV4_MAPPED

# ===================================================================================

OPTIONS_MULTI=		${META_MODULES}
OPTIONS_MULTI_PROXY=	${PROXY_ENABLED_MODULES} ${PROXY_DISABLED_MODULES}
OPTIONS_MULTI_SESSION=	${SESSION_ENABLED_MODULES} ${SESSION_DISABLED_MODULES}

OPTIONS_GROUP=		EXAMPLE
OPTIONS_GROUP_EXAMPLE=	${EXAMPLE_MODULES}

OPTIONS_RADIO=		MPM_SHARED
OPTIONS_RADIO_MPM_SHARED=	MPM_SHARED

OPTIONS_SINGLE=			DEFAULT_MPM
OPTIONS_SINGLE_DEFAULT_MPM=	MPM_PREFORK MPM_WORKER MPM_EVENT

# ===================================================================================

ALL_MODULES=	${MOST_ENABLED_MODULES} ${MOST_DISABLED_MODULES} \
	${PROXY_ENABLED_MODULES} ${PROXY_DISABLED_MODULES} \
	${SESSION_ENABLED_MODULES} ${SESSION_DISABLED_MODULES} \
	${EXAMPLE_MODULES} ${META_MODULES}

OPTIONS_DEFINE=		\
	DOCS \
	${MOST_ENABLED_MODULES}	\
	${MOST_DISABLED_MODULES}\
	${ADDITIONAL_OPT}	\
	${OPTIONS_MULTI}

OPTIONS_DEFAULT=		\
	${MOST_ENABLED_MODULES}	\
	${OPTIONS_MULTI}	\
	${SESSION_ENABLED_MODULES} \
	${PROXY_ENABLED_MODULES} \
	MPM_SHARED \
	MPM_PREFORK
