forked from Lainports/freebsd-ports
These options are for people who want to directly link
apache against libkse and libthr.
Usage:
WITH_EXPERIMENTAL_THREADS=YES
Overrides default pthread detection behaviour.
WITH_PTHREAD_LIBS={kse;thr}
Lets you choose your pthread lib.
Don't even try to use "c_r"...
*** These options are unsupported ***
But all gdb backtraces are welcome :-)
AFAIK, apache works well, but mod_php4 (worker MPM) behavior
is quite funny.
All modules which use apr mutexes may crash with KSE.
Since I'm working on it, if you have coredumps, feel free
to send me the backtrace (you must compile libkse, apache
and modules with debugging symbols).
Don't forget to set kern.sugid_coredump to 1.
(using CoreDumpDirectory in httpd.conf can help too)
265 lines
7.9 KiB
Text
265 lines
7.9 KiB
Text
# Makefile.modules
|
|
# Author: Clement Laforet <clement@FreeBSD.org>
|
|
#
|
|
# This file is used to build modules list, DBM dependencies and MPM selection.
|
|
# I hope it can easily handle external modules (such as mod_perl) or MPMs, like
|
|
# muxmpm.
|
|
#
|
|
# Note to myself: (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
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
.if defined(SLAVE_DESIGNED_FOR) && ${PORTVERSION} != ${SLAVE_DESIGNED_FOR}
|
|
BROKEN= "Sorry, ${SLAVENAME} and ${PORTNAME} versionsq are out of sync"
|
|
.endif
|
|
|
|
# MPM section:
|
|
# << TO BE WRITTEN >>
|
|
.if defined (SLAVE_PORT_MPM)
|
|
PLIST_SUB+= PREFORK="@comment " WORKER="@comment "
|
|
PKGNAMESUFFIX= -${SLAVE_PORT_MPM}
|
|
.else
|
|
. if ${WITH_MPM} != "prefork"
|
|
PKGNAMESUFFIX= -${WITH_MPM:L}
|
|
WITH_THREADS= yes
|
|
. if ${WITH_MPM:L} == "worker"
|
|
PLIST_SUB+= PREFORK="@comment " WORKER=""
|
|
. elif ${WITH_MPM:L} == "perchild"
|
|
PLIST_SUB+= PREFORK="@comment " WORKER="@comment "
|
|
. else
|
|
BROKEN= "Unknown MPM: ${WITH_MPM}"
|
|
. endif
|
|
. else
|
|
PLIST_SUB+= PREFORK="@comment " WORKER="@comment "
|
|
. endif
|
|
.else
|
|
PLIST_SUB+= PREFORK="@comment " WORKER="@comment "
|
|
.endif
|
|
|
|
# xDBM section
|
|
#
|
|
.if !defined(WITH_DBM) && defined(WITH_BERKELEYDB)
|
|
WITH_DBM=bdb
|
|
.endif
|
|
.if defined(WITH_DBM) && !defined(WITH_BERKELEYDB)
|
|
WITH_BERKELEYDB= FreeBSD
|
|
.endif
|
|
|
|
.if defined(WITH_DBM)
|
|
. if ${WITH_DBM:L} == "sdbm"
|
|
CONFIGURE_ARGS+= --with-dbm=sdbm
|
|
. elif ${WITH_DBM:L} == "gdbm"
|
|
LIB_DEPENDS+= gdbm.3:${PORTSDIR}/databases/gdbm
|
|
CONFIGURE_ARGS+= --with-gdbm=${LOCALBASE}
|
|
. elif ${WITH_DBM:L} == "db" || ${WITH_DBM:L} == "bdb"
|
|
. if ${WITH_BERKELEYDB} == "FreeBSD"
|
|
CONFIGURE_ARGS+= --with-dbm=db185 \
|
|
--with-berkeley-db=/usr
|
|
. elif ${WITH_BERKELEYDB} == "db2"
|
|
LIB_DEPENDS+= db2:${PORTSDIR}/databases/db2
|
|
CONFIGURE_ARGS+= --with-dbm=db2 \
|
|
--with-berkeley-db=${LOCALBASE}
|
|
. elif ${WITH_BERKELEYDB} == "db3"
|
|
LIB_DEPENDS+= db3:${PORTSDIR}/databases/db3
|
|
CONFIGURE_ARGS+= --with-dbm=db3 \
|
|
--with-berkeley-db=${LOCALBASE}
|
|
. elif ${WITH_BERKELEYDB} == "db4"
|
|
LIB_DEPENDS+= db4:${PORTSDIR}/databases/db4
|
|
CONFIGURE_ARGS+= --with-dbm=db4 \
|
|
--with-berkeley-db=${LOCALBASE}
|
|
. elif ${WITH_BERKELEYDB} == "db41"
|
|
LIB_DEPENDS+= db41:${PORTSDIR}/databases/db41
|
|
CONFIGURE_ARGS+= --with-dbm=db41 \
|
|
--with-berkeley-db=${LOCALBASE}
|
|
. elif ${WITH_BERKELEYDB} == "db42"
|
|
LIB_DEPENDS+= db-4.2:${PORTSDIR}/databases/db42
|
|
CONFIGURE_ARGS+= --with-dbm=db42 \
|
|
--with-berkeley-db=${LOCALBASE}/include:${LOCALBASE}/lib/db42
|
|
. else
|
|
BROKEN= "Unknown Berkeley DB version"
|
|
. endif
|
|
. else
|
|
BROKEN= "Unknown DBM"
|
|
. endif
|
|
.else
|
|
CONFIGURE_ARGS+= --with-dbm=sdbm
|
|
.endif
|
|
|
|
# Modules section:
|
|
# How does it works ?
|
|
# << TO BE WRITTEN >>
|
|
# All supported modules
|
|
AUTH_MODULES= access auth auth_anon auth_dbm auth_digest
|
|
DAV_MODULES= dav dav_fs
|
|
EXPERIMENTAL_MODULES= bucketeer case_filter case_filter_in ext_filter charset_lite \
|
|
optional_hook_export optional_hook_import \
|
|
optional_fn_import optional_fn_export
|
|
LDAP_MODULES= ldap auth_ldap
|
|
MISC_MODULES= actions alias asis autoindex cache cern_meta \
|
|
cgi cgid charset_lite deflate dir disk_cache env expires \
|
|
file_cache headers imap include info log_config logio mime \
|
|
mime_magic negotiation rewrite setenvif speling status \
|
|
unique_id userdir usertrack vhost_alias
|
|
PROXY_MODULES= proxy proxy_connect proxy_ftp proxy_http
|
|
SSL_MODULE= ssl
|
|
SUEXEC_MODULES= suexec
|
|
THREADS_MODULES= cache file_cache disk_cache mem_cache
|
|
|
|
# Work in progress
|
|
SLAVE_PORT_MODULES?= # If you are porting a slave port for apache2 please define SLAVE_PORT_MODULES
|
|
|
|
DEFAULT_MODULES= ${AUTH_MODULES} ${DAV_MODULES} ${MISC_MODULES} \
|
|
${PROXY_MODULES} ${SLAVE_PORT_MODULES}
|
|
|
|
AVAILABLE_MODULES= ${DEFAULT_MODULES} ${EXPERIMENTAL_MODULES} ${LDAP_MODULES} ${THREADS_MODULES} \
|
|
${SSL_MODULE} ${SUEXEC_MODULES} ${SLAVE_PORT_MODULES}
|
|
|
|
# Setting "@comment " as default.
|
|
.for module in ${AVAILABLE_MODULES}
|
|
${module}_PLIST_SUB= "@comment "
|
|
.endfor
|
|
|
|
# Configure
|
|
|
|
.if defined(WITH_MODULES) && ( defined(WITHOUT_MODULES) || defined(WITH_EXTRA_MODULES))
|
|
BROKEN= "WITH_MODULES and WITHOUT_MODULES are mutually exclusive"
|
|
.endif
|
|
|
|
.if defined(WITHOUT_AUTH) || defined(WITH_CUSTOM_AUTH) || \
|
|
defined(WITHOUT_PROXY) || defined(WITH_CUSTOM_PROXY) || \
|
|
defined(WITHOUT_DAV)
|
|
CUSTOM= YES
|
|
.endif
|
|
|
|
.if !defined(WITH_STATIC_APACHE)
|
|
# FYI
|
|
#DYNAMIC_MODULES= so
|
|
CONFIGURE_ARGS+= --enable-so
|
|
.else
|
|
CONFIGURE_ARGS+= --disable-so
|
|
WITH_ALL_STATIC_MODULES= YES
|
|
.endif
|
|
|
|
### This part is not processed if WITH_MODULES is defined
|
|
.if defined(WITH_MODULES)
|
|
_APACHE_MODULES+= ${WITH_MODULES}
|
|
.elif !defined(CUSTOM)
|
|
_APACHE_MODULES+= ${DEFAULT_MODULES}
|
|
.else
|
|
. if defined(WITH_CUSTOM_AUTH)
|
|
_APACHE_MODULES+= ${WITH_CUSTOM_AUTH}
|
|
. elif !defined(WITHOUT_AUTH)
|
|
_APACHE_MODULES+= ${AUTH_MODULES}
|
|
. endif
|
|
. if defined(WITH_CUSTOM_PROXY)
|
|
_APACHE_MODULES+= ${WITH_CUSTOM_PROXY}
|
|
. elif !defined(WITHOUT_PROXY)
|
|
_APACHE_MODULES+= ${PROXY_MODULES}
|
|
. endif
|
|
. if !defined(WITHOUT_DAV)
|
|
_APACHE_MODULES+= dav dav_fs
|
|
. endif
|
|
_APACHE_MODULES+= ${MISC_MODULES} ${SLAVE_PORT_MODULES}
|
|
.endif # end of module selection
|
|
|
|
.if defined (WITH_LDAP)
|
|
_APACHE_MODULES+= ${LDAP_MODULES}
|
|
.endif
|
|
|
|
.if defined(WITH_THREADS)
|
|
CONFIGURE_ARGS+= --enable-threads
|
|
CFLAGS+= -DFREEBSD_THREAD_HACK
|
|
. if defined(WITH_EXPERIMENTAL_THREADS)
|
|
CONFIGURE_ARGS+= ac_cv_pthreads_lib=${WITH_PTHREAD_LIBS}
|
|
. endif
|
|
. if !defined(WITH_CUSTOM_THREADS)
|
|
_APACHE_MODULES+= ${THREAD_MODULES}
|
|
. else
|
|
_APACHE_MODULES+= ${WITH_CUSTOM_THREADS}
|
|
. endif
|
|
.endif # endif of module selection
|
|
|
|
.if !defined(WITHOUT_SSL)
|
|
_APACHE_MODULES+= ${SSL_MODULE}
|
|
CONFIGURE_ARGS+= --with-ssl=${OPENSSLBASE}
|
|
RC_SUB+= -e 's,@@SSL@@,ssl,g'
|
|
.else
|
|
RC_SUB+= -e 's,@@SSL@@,,g'
|
|
.endif
|
|
|
|
.if defined(WITH_SUEXEC)
|
|
SUEXEC_DOCROOT?= ${PREFIX_RELDEST}/www/data
|
|
SUEXEC_USERDIR?= public_html
|
|
SUEXEC_SAFEPATH?= ${PREFIX_RELDEST}/bin:${LOCALBASE}/bin:/usr/bin:/bin
|
|
SUEXEC_UIDMIN?= 1000
|
|
SUEXEC_GIDMIN?= 1000
|
|
SUEXEC_CALLER?= ${WWWOWN}
|
|
_APACHE_MODULES+= ${SUEXEC_MODULES}
|
|
CONFIGURE_ARGS+= --with-suexec-caller=${SUEXEC_CALLER} \
|
|
--with-suexec-uidmin=${SUEXEC_UIDMIN} \
|
|
--with-suexec-gidmin=${SUEXEC_GIDMIN} \
|
|
--with-suexec-userdir="${SUEXEC_USERDIR}" \
|
|
--with-suexec-docroot="${SUEXEC_DOCROOT}" \
|
|
--with-suexec-safepath="${SUEXEC_SAFEPATH}" \
|
|
--with-suexec-logfile="/var/log/httpd-suexec.log" \
|
|
--with-suexec-bin="${PREFIX_RELDEST}/sbin/suexec"
|
|
. if defined(WITH_SUEXEC_UMASK)
|
|
CONFIGURE_ARGS+= --with-suexec-umask=${WITH_SUEXEC_UMASK}
|
|
. endif
|
|
.endif
|
|
.if defined(WITH_EXTRA_MODULES)
|
|
_APACHE_MODULES+= ${WITH_EXTRA_MODULES}
|
|
.endif
|
|
|
|
.if defined(WITH_EXPERIMENTAL)
|
|
_APACHE_MODULES+= ${EXPERIMENTAL_MODULES}
|
|
.endif
|
|
|
|
.if !defined(WITHOUT_MODULES)
|
|
APACHE_MODULES= ${_APACHE_MODULES}
|
|
.else
|
|
APACHE_MODULES!= \
|
|
for module in ${_APACHE_MODULES}; do \
|
|
${ECHO_CMD} ${WITHOUT_MODULES} | ${GREP} -wq $${module} 2> /dev/null || \
|
|
${ECHO_CMD} $${module}; \
|
|
done
|
|
.endif
|
|
|
|
.if defined(WITH_STATIC_MODULES)
|
|
_CONFIGURE_ARGS!= \
|
|
for module in ${APACHE_MODULES} ; do \
|
|
${ECHO_CMD} ${WITH_STATIC_MODULES} | \
|
|
${GREP} -wq $${module} 2> /dev/null ; \
|
|
if [ "$${?}" = "0" ] ; then \
|
|
${ECHO_CMD} "--enable-$${module}"; \
|
|
else \
|
|
${ECHO_CMD} "--enable-$${module}=shared"; \
|
|
fi; done
|
|
CONFIGURE_ARGS+= ${_CONFIGURE_ARGS}
|
|
.elif defined(WITH_STATIC_APACHE) || defined(WITH_ALL_STATIC_MODULES)
|
|
CONFIGURE_ARGS+= --enable-modules="${APACHE_MODULES}"
|
|
.else
|
|
CONFIGURE_ARGS+= --enable-mods-shared="${APACHE_MODULES}"
|
|
.endif
|
|
|
|
.if defined(WITH_STATIC_MODULES)
|
|
_SHARED_MODULES!= \
|
|
for module in ${APACHE_MODULES} ; do \
|
|
${ECHO_CMD} ${WITH_STATIC_MODULES} | ${GREP} -wq $${module} 2> /dev/null || \
|
|
${ECHO_CMD} $${module}; \
|
|
done
|
|
SHARED_MODULES= ${_SHARED_MODULES}
|
|
.elif !defined(WITH_ALL_STATIC_MODULES)
|
|
SHARED_MODULES= ${APACHE_MODULES}
|
|
.endif
|
|
|
|
. for module in ${SHARED_MODULES}
|
|
${module}_PLIST_SUB= ""
|
|
. endfor
|
|
|
|
.for module in ${AVAILABLE_MODULES}
|
|
PLIST_SUB+= MOD_${module:U}=${${module}_PLIST_SUB}
|
|
.endfor
|