fa82723bda
The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for various modern desktop and server operating systems, such as UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server which provides HTTP services in sync with the current HTTP standards. The 2.x branch of Apache Web Server includes several improvements like threading, use of APR, native IPv6 and SSL support, and many more. WWW: http://httpd.apache.org/ Note: Since apache24 does not enable every module by default in httpd.conf the list of modules to build was preselected to match build param --enable-modules=most MPM selection is now an OPTION also if the MPM is build statically or dynamically. In the later case all modules are build/installed but only the selected MPM has an entry in httpd.conf (see apache issue 53882) Per default the MPM prefork (static) will be build, to get the best compatibility. Custom variants like itk/peruser are not supported at the moment. Port based on my work prototype from the apache@ list and patch from PR 174617 with hat apache@ PR: 174617 Submitted by: <swall@redcom.com>
197 lines
5.5 KiB
Text
197 lines
5.5 KiB
Text
# $FreeBSD$
|
|
#
|
|
# Note by Clement Laforet: (to generate PLIST_SUB entries for modules)
|
|
# gsed 's/^\(.*\)mod\(.*\)\.so/%%\MOD\U\2%%\L\1mod\2\.so/' pkg-plist > tmp
|
|
# mv tmp pkg-plist
|
|
#
|
|
|
|
# =============================================
|
|
# Maintainer note for OPTION handling:
|
|
# To set additional option use
|
|
# PORT_OPTIONS+=
|
|
# To unset an OPTION, even the OPTION is set in OPTIONSFILE use
|
|
# WITHOUT_MODULES+=
|
|
# Using OPTIONS_EXCLUDE and OPTIONS_OVERRIDE do not work as expected
|
|
# if the OPTION is enabled by the user, therefore we calculate
|
|
# them in bsd.apache.mk with help of WITHOUT_MODULES
|
|
# The other methode is to set IGNORE's and force the user to adjust OPTIONS
|
|
|
|
.if defined(_PREMKINCLUDED)
|
|
|
|
# check if APR was build with thread support
|
|
.if exists(${APR_CONFIG})
|
|
APR_LIBS!= ${SH} ${APR_CONFIG} --libs | ${SED} -e 's/-//g'
|
|
. if defined(APR_LIBS) && !empty(APR_LIBS)
|
|
_T=pthread
|
|
. for lib in ${APR_LIBS}
|
|
. if ${_T:M${lib}}
|
|
APR_HAS_THREADS= yes
|
|
. endif
|
|
. endfor
|
|
. endif
|
|
.endif # exists APR_CONFIG
|
|
|
|
# check if APR-util module exists
|
|
.if exists(${APU_CONFIG})
|
|
. if ${PORT_OPTIONS:MLDAP} || ${PORT_OPTIONS:MAUTHNZ_LDAP}
|
|
. if !exists(${APU_LDAP})
|
|
IGNORE= LDAP and AUTHNZ_LDAP requires APR-util to have LDAP support built in.\
|
|
Please rebuild APR with LDAP support
|
|
. endif
|
|
. endif
|
|
|
|
. if ${PORT_OPTIONS:MSESSION_CRYPTO}
|
|
. if !exists(${APU_CRYPTO_OPENSSL})
|
|
IGNORE= SESSION_CRYPTO requires APR-util to have crypto openssl support build in.\
|
|
Please rebuild APR with crypto openssl support
|
|
. endif
|
|
. endif
|
|
|
|
# XXX apache24 needs only the apu-header
|
|
# perhaps we get in future the possibility to package dedicated APU modules
|
|
#
|
|
#. if ${PORT_OPTIONS:MDBD} || ${PORT_OPTIONS:MAUTHN_DBD}
|
|
#. if !exists(${APU_DBD_MYSQL}) && !exists(${APU_DBD_PGSQL}) && !exists(${APU_DBD_SQLITE3})
|
|
#IGNORE= AUTHN_DBD and DBD requires APR-util to have DBD support build in.\
|
|
# Please rebuild APR at last with one DBD backend
|
|
#. endif
|
|
#. endif
|
|
.endif # exists APU_CONFIG
|
|
|
|
# =============================================
|
|
# if build with shared MPM the last module will be activated
|
|
# see apache issue 53882
|
|
|
|
# XXX in case we use OPTIONS for MPM
|
|
# we do not have a WITH_MPM variable
|
|
.if ${PORT_OPTIONS:MMPM_SHARED}
|
|
PLIST_SUB+= MPM_SHARED=""
|
|
CONFIGURE_ARGS+= --enable-mpms-shared=all
|
|
.else
|
|
PLIST_SUB+= MPM_SHARED="@comment "
|
|
.endif
|
|
|
|
# XXX LATEST_LINK overwrites OPTIONSFILE ...
|
|
# maybe use NO_LATEST_LINK in future
|
|
.if ${PORT_OPTIONS:MMPM_PREFORK}
|
|
CONFIGURE_ARGS+= --with-mpm=prefork
|
|
.elif ${PORT_OPTIONS:MMPM_WORKER}
|
|
CONFIGURE_ARGS+= --with-mpm=worker
|
|
.elif ${PORT_OPTIONS:MMPM_EVENT}
|
|
CONFIGURE_ARGS+= --with-mpm=event
|
|
.else
|
|
IGNORE= Unknown MPM:
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MMPM_WORKER} || ${PORT_OPTIONS:MMPM_EVENT}
|
|
. if exists(${APR_CONFIG}) && !defined(APR_HAS_THREADS)
|
|
IGNORE= requires APR threads. Please rebuild APR with THREAD support
|
|
. endif
|
|
.endif
|
|
# =============================================
|
|
|
|
# build develop/example modules only with additional confirmation
|
|
.for DEVMOD in ${EXAMPLE_MODULES}
|
|
. if ${PORT_OPTIONS:M${DEVMOD}}
|
|
WITH_DEVMODS= yes
|
|
. endif
|
|
.endfor
|
|
|
|
.if defined(WITH_DEVMODS) && !defined(IAMADEVELOPER )
|
|
IGNORE= to build the develop/example modules specify -DIAMADEVELOPER on the command line.\
|
|
Do not use the this modules in production environment
|
|
.endif
|
|
|
|
# The next three params are not converted to an option,
|
|
# they should be used only for special builds.
|
|
.if defined(WITH_STATIC_SUPPORT)
|
|
CONFIGURE_ARGS+= --enable-static-support
|
|
.endif
|
|
|
|
# debug overrides CFLAGS
|
|
.if defined(WITH_DEBUG)
|
|
DEBUG_FLAGS?= -O0 -g -ggdb3
|
|
CFLAGS= ${DEBUG_FLAGS}
|
|
CONFIGURE_ARGS+= --enable-maintainer-mode
|
|
WITH_EXCEPTION_HOOK= yes
|
|
.endif
|
|
|
|
.if defined(WITH_EXCEPTION_HOOK)
|
|
CONFIGURE_ARGS+= --enable-exception-hook
|
|
.endif
|
|
|
|
# watchdog modules
|
|
.if ! ${PORT_OPTIONS:MWATCHDOG} || ! ${PORT_OPTIONS:MSTATUS}
|
|
. if ${PORT_OPTIONS:MHEARTBEAT}
|
|
IGNORE= HEARTBEAT requires WATCHDOG and STATUS
|
|
. elif ${PORT_OPTIONS:MHEARTMONITOR}
|
|
IGNORE= HEARTMONITOR requires WATCHDOG and STATUS
|
|
. endif
|
|
.endif
|
|
.if ${PORT_OPTIONS:MLBMETHOD_HEARTBEAT} && ! ${PORT_OPTIONS:MHEARTMONITOR}
|
|
IGNORE= LBMETHOD_HEARTBEAT requires WATCHDOG, STATUS and HEARTMONITOR
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MAUTH_BASIC} || ${PORT_OPTIONS:MAUTH_DIGEST}
|
|
. if !${APACHE_MODULES:MAUTHN*}
|
|
IGNORE= AUTH_BASIC and AUTH_DIGEST need at least one AUTHN provider
|
|
. endif
|
|
.endif
|
|
|
|
. if ${PORT_OPTIONS:MAUTHN_DBD} && ! ${PORT_OPTIONS:MDBD}
|
|
IGNORE= AUTHN_DBD requires DBD
|
|
. endif
|
|
|
|
.if ${PORT_OPTIONS:MAUTH_BASIC}
|
|
. if !${APACHE_MODULES:MAUTHZ*}
|
|
IGNORE= AUTH_BASIC need at least one AUTHZ provider
|
|
. endif
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MSSL}
|
|
CFLAGS+= -I${OPENSSLINC}
|
|
LDFLAGS+= -L${OPENSSLLIB}
|
|
CONFIGURE_ARGS+= --with-ssl=${OPENSSLBASE}
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MSOCACHE_DC}
|
|
CONFIGURE_ARGS+= --with-distcache=${LOCALBASE}
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MLUA}
|
|
CONFIGURE_ARGS+= --with-lua=${LOCALBASE}
|
|
.else
|
|
CONFIGURE_ARGS+= --without-lua
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MXML2ENC} || ${PORT_OPTIONS:MPROXY_HTML}
|
|
CONFIGURE_ARGS+= --with-libxml2=${LOCALBASE}/include/libxml2
|
|
.else
|
|
CONFIGURE_ARGS+= --without-libxml2
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MAUTHNZ_LDAP}
|
|
CONFIGURE_ARGS+= --enable-authnz-ldap
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MLDAP}
|
|
CONFIGURE_ARGS+= --enable-ldap=shared
|
|
.endif
|
|
|
|
.if defined(APR_HAS_THREADS)
|
|
CFLAGS+= ${PTHREAD_CFLAGS}
|
|
LDFLAGS+= ${PTHREAD_LIBS}
|
|
.else
|
|
. if exists(${APR_CONFIG}) && ${PORT_OPTIONS:MMEM_CACHE}
|
|
IGNORE= MEM_CACHE requires APR threads. Please rebuild APR with THREAD support
|
|
. endif
|
|
.endif
|
|
|
|
# http://httpd.apache.org/docs/2.4/bind.html
|
|
.if ${PORT_OPTIONS:MIPV4_MAPPED}
|
|
CONFIGURE_ARGS+= --enable-v4-mapped
|
|
.else
|
|
CONFIGURE_ARGS+= --disable-v4-mapped
|
|
.endif
|
|
|
|
.endif # _PREMKINCLUDED
|