mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-24 00:45:52 +00:00
a4b366df6a
- move out from bsd.port.mk USE_MYSQL and USE_PGSQL. - add support for Berkley DB and SQLite (via USE_BDB and USE_SQLITE knobs). * Espace '+' in make search [2] * Add "makepatch" target to simplify creation of patches during porting [3] * Replace deprecated MACHINE_ARCH with ARCH [4] * Remove support of OpenLDAP 2.1 [5] * Add bsd.tcl.mk [6] It introduces USE_TCL/USE_TCL_BUILD knobs to support various version of tcl (8.0 -> 8.4) * Fix cosmetic bugs in security-check target [7] * Add support for INDEX-7 and above (up to INDEX-9 actually) [8] * Add "package-recursive" to bsd.port.subdir.mk [9] * Remove check for FreeBSD version < 460101 [10] * New category: net-im [11] * Add .desktop file facilities It introduces DESKTOPDIR and DESKTOP_ENTRIES knobs [12] * Add SHA256 support to "*checksum" targets [13] * Fix USE_PYTHON with OPTIONS [14] * Force NO_LINT to MAKE_ENV to avoid library breaks [15] * Fix typo: s/RC_ORDER/USE_RCORDER/g [16] * Add support for PostgreSQL 8.1 [17] * Add bsd.apache.mk USE_APACHE knob enhancements [18] PR: ports/85695 [1], ports/85669 [2], ports/85488 [3], ports/84489 [4], ports/83835 [5], ports/83718 [6], ports/83716 [7], ports/83710 [8], ports/82753 [9], ports/82138 [10], ports/81206 [11], ports/79509 [12], ports/79123 [13], ports/74866 [14], ports/85490 [15], ports/83514 [16], ports/88466 [17] Submitted by: vsevolod [1] [6], Ricardo Alves dos Reis <ricardo_bsd@yahoo.com.br> [2], markm [3] [15], obrien [4], krion [5] [8] , Petr Rehor <prehor@gmail.com> [7], clement [8] [18], jhs@berklix.org [9], edwin [10] [13], pav [11], jylefort [12], mnag [14], leeym [16], girgen [17]
355 lines
10 KiB
Makefile
355 lines
10 KiB
Makefile
#-*- mode: makefile; tab-width: 4; -*-
|
|
# ex:ts=4
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# bsd.apache.mk - Apache related macros.
|
|
# Author: Clement Laforet <clement@FreeBSD.org>
|
|
#
|
|
# Please view me with 4 column tabs!
|
|
|
|
##########################################################################
|
|
#
|
|
# Variables definition
|
|
# USE_APACHE: Call this script. Values can be:
|
|
# <version>: 1.3/13/2.0/20/2.1/1.3+/2.0+/2.1+
|
|
# common*: common13, common20 and common21
|
|
#
|
|
#
|
|
#
|
|
.if defined(APACHE_COMPAT)
|
|
USE_APACHE=yes
|
|
.endif
|
|
|
|
# Print warnings
|
|
_ERROR_MSG= : Error from bsd.apache.mk.
|
|
APACHE_SUPPORTED_VERSION= 13 20 21
|
|
.if ${USE_APACHE:Mcommon*} != ""
|
|
AP_PORT_IS_SERVER= YES
|
|
.elif ${USE_APACHE:L} == apr
|
|
APR_DEPS= YES
|
|
.elif ${USE_APACHE:C/\.//:C/\+//:M[12][310]} != ""
|
|
AP_PORT_IS_MODULE= YES
|
|
|
|
#### for backward compatibility
|
|
.elif ${USE_APACHE:L} == yes
|
|
. if defined(WITH_APACHE2)
|
|
APACHE_PORT?= www/apache2
|
|
. else
|
|
APACHE_PORT?= www/apache13
|
|
. endif
|
|
APXS?= ${LOCALBASE}/sbin/apxs
|
|
.if !defined(APACHE_COMPAT)
|
|
BUILD_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT}
|
|
RUN_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT}
|
|
.endif
|
|
#### End of backward compatibility
|
|
|
|
.else
|
|
IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE
|
|
.endif
|
|
|
|
.if defined(AP_PORT_IS_SERVER)
|
|
# For slave ports:
|
|
.if defined(SLAVE_DESIGNED_FOR) && ${PORTVERSION} != ${SLAVE_DESIGNED_FOR}
|
|
IGNORE= "Sorry, ${SLAVENAME} and ${PORTNAME} versions are out of sync"
|
|
.endif
|
|
|
|
.if defined(SLAVE_PORT_MODULES)
|
|
DEFAULT_MODULES_CATEGORIES+= SLAVE_PORT
|
|
ALL_MODULES_CATEGORIES+= SLAVE_PORT
|
|
.endif
|
|
|
|
# Module selection
|
|
.for category in ${DEFAULT_MODULES_CATEGORIES}
|
|
DEFAULT_MODULES+= ${${category}_MODULES}
|
|
WITH_${category}_MODULES= YES
|
|
.endfor
|
|
|
|
.for category in ${ALL_MODULES_CATEGORIES}
|
|
AVAILABLE_MODULES+= ${${category}_MODULES}
|
|
.endfor
|
|
|
|
# Setting "@comment " as default.
|
|
.for module in ${AVAILABLE_MODULES}
|
|
${module}_PLIST_SUB= "@comment "
|
|
.endfor
|
|
|
|
# Configure
|
|
# dirty hacks to make sure all modules are disabled before we select them
|
|
.if ${USE_APACHE} == common13
|
|
CONFIGURE_ARGS+= --disable-module="all"
|
|
.elif ${USE_APACHE} == common20
|
|
CONFIGURE_ARGS+= --disable-access --disable-auth \
|
|
--disable-charset-lite --disable-include \
|
|
--disable-log-config --disable-env --disable-setenvif \
|
|
--disable-mime --disable-status --disable-autoindex \
|
|
--disable-asis --disable-cgid --disable-cgi \
|
|
--disable-negotiation --disable-dir --disable-imap \
|
|
--disable-actions --disable-userdir --disable-alias
|
|
.elif ${USE_APACHE} == common21
|
|
CONFIGURE_ARGS+= --disable-authn-file --disable-authn-default \
|
|
--disable-authz-host --disable-authz-groupfile \
|
|
--disable-authz-user --disable-authz-default \
|
|
--disable-auth-basic --disable-charset-lite \
|
|
--disable-include --disable-log-config --disable-env \
|
|
--disable-setenvif --disable-mime --disable-status \
|
|
--disable-autoindex --disable-asis --disable-cgid \
|
|
--disable-cgi --disable-negotiation --disable-dir \
|
|
--disable-imagemap --disable-actions --disable-userdir \
|
|
--disable-alias
|
|
.endif
|
|
|
|
.if defined(WITH_MODULES)
|
|
_APACHE_MODULES+= ${WITH_MODULES}
|
|
.else
|
|
.for category in ${ALL_MODULES_CATEGORIES}
|
|
.if defined (WITHOUT_${category}_MODULES) || defined (WITH_CUSTOM_${category})
|
|
. if defined(WITH_${category}_MODULES})
|
|
. undef WITH_${category}_MODULES
|
|
. endif
|
|
. if defined (WITH_CUSTOM_${category})
|
|
_APACHE_MODULES+= ${WITH_CUSTOM_${category}}
|
|
. endif
|
|
.elif defined(WITH_${category}_MODULES)
|
|
_APACHE_MODULES+= ${${category}_MODULES}
|
|
.endif
|
|
.endfor
|
|
. if defined(WITH_EXTRA_MODULES)
|
|
_APACHE_MODULES+= ${WITH_EXTRA_MODULES}
|
|
. endif
|
|
.endif
|
|
|
|
.if !defined(WITH_STATIC_APACHE)
|
|
. if ${USE_APACHE:Mcommon2*} != ""
|
|
# FYI
|
|
#DYNAMIC_MODULES= so
|
|
CONFIGURE_ARGS+= --enable-so
|
|
. endif
|
|
.else
|
|
. if ${USE_APACHE:Mcommon2*} != ""
|
|
CONFIGURE_ARGS+= --disable-so
|
|
. endif
|
|
WITH_ALL_STATIC_MODULES= YES
|
|
.endif
|
|
|
|
.if defined(WITH_SUEXEC) || defined(WITH_SUEXEC_MODULES)
|
|
.if ${USE_APACHE} == common13
|
|
SUEXEC_CONFARGS= suexec
|
|
CONFIGURE_ARGS+= --enable-suexec
|
|
.elif ${USE_APACHE:Mcommon2*} != ""
|
|
SUEXEC_CONFARGS= with-suexec
|
|
.endif
|
|
|
|
# From now we're defaulting to apache 2.*
|
|
SUEXEC_DOCROOT?= ${PREFIX}/www/data
|
|
SUEXEC_USERDIR?= public_html
|
|
SUEXEC_SAFEPATH?= ${PREFIX}/bin:${LOCALBASE}/bin:/usr/bin:/bin
|
|
SUEXEC_LOGFILE?= /var/log/httpd-suexec.log
|
|
SUEXEC_UIDMIN?= 1000
|
|
SUEXEC_GIDMIN?= 1000
|
|
SUEXEC_CALLER?= ${WWWOWN}
|
|
_APACHE_MODULES+= ${SUEXEC_MODULES}
|
|
CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-caller=${SUEXEC_CALLER} \
|
|
--${SUEXEC_CONFARGS}-uidmin=${SUEXEC_UIDMIN} \
|
|
--${SUEXEC_CONFARGS}-gidmin=${SUEXEC_GIDMIN} \
|
|
--${SUEXEC_CONFARGS}-userdir="${SUEXEC_USERDIR}" \
|
|
--${SUEXEC_CONFARGS}-docroot="${SUEXEC_DOCROOT}" \
|
|
--${SUEXEC_CONFARGS}-safepath="${SUEXEC_SAFEPATH}" \
|
|
--${SUEXEC_CONFARGS}-logfile="${SUEXEC_LOGFILE}" \
|
|
--${SUEXEC_CONFARGS}-bin="${PREFIX}/sbin/suexec"
|
|
. if defined(WITH_SUEXEC_UMASK)
|
|
CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-umask=${WITH_SUEXEC_UMASK}
|
|
. endif
|
|
.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)
|
|
. if ${USE_APACHE} == common13
|
|
STATIC_MODULE_CONFARG= --enable-module=$${module}
|
|
DSO_MODULE_CONFARG= --enable-module=$${module} --enable-shared=$${module}
|
|
. else
|
|
STATIC_MODULE_CONFARG= --enable-$${module}
|
|
DSO_MODULE_CONFARG= --enable-$${module}=shared
|
|
.endif
|
|
_CONFIGURE_ARGS!= \
|
|
for module in ${APACHE_MODULES} ; do \
|
|
${ECHO_CMD} ${WITH_STATIC_MODULES} | \
|
|
${GREP} -wq $${module} 2> /dev/null ; \
|
|
if [ "$${?}" = "0" ] ; then \
|
|
${ECHO_CMD} "${STATIC_MODULE_CONFARG}"; \
|
|
else \
|
|
${ECHO_CMD} "${DSO_MODULE_CONFARG}"; \
|
|
fi; done
|
|
CONFIGURE_ARGS+= ${_CONFIGURE_ARGS}
|
|
.elif defined(WITH_STATIC_APACHE) || defined(WITH_ALL_STATIC_MODULES)
|
|
WITH_STATIC_MODULES= ${APACHE_MODULES}
|
|
. if ${USE_APACHE} == common13
|
|
. for module in ${APACHE_MODULES}
|
|
CONFIGURE_ARGS+= --enable-module=${module}
|
|
. endfor
|
|
. else
|
|
CONFIGURE_ARGS+= --enable-modules="${APACHE_MODULES}"
|
|
. endif
|
|
.else
|
|
. if ${USE_APACHE} == common13
|
|
. for module in ${APACHE_MODULES}
|
|
CONFIGURE_ARGS+= --enable-module=${module} --enable-shared=${module}
|
|
. endfor
|
|
. else
|
|
CONFIGURE_ARGS+= --enable-mods-shared="${APACHE_MODULES}"
|
|
. endif
|
|
.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
|
|
####End of PORT_IS_SERVER ####
|
|
|
|
.elif defined(APR_DEPS)
|
|
IGNORE= ${_ERROR_MSG} apr support is not yet implemented
|
|
|
|
.elif defined(AP_PORT_IS_MODULE)
|
|
AP_VERSION= ${USE_APACHE:C/\.//}
|
|
|
|
APXS?= ${LOCALBASE}/sbin/apxs
|
|
HTTPD?= ${LOCALBASE}/sbin/httpd
|
|
|
|
MODULENAME?= ${PORTNAME}
|
|
SHORTMODNAME?= ${MODULENAME:S/mod_//}
|
|
SRC_FILE?= ${MODULENAME}.c
|
|
OVERRIDABLE_VARS= SRC_FILE MODULENAME SHORTMODNAME WRKSRC \
|
|
PKGNAMESUFFIX
|
|
|
|
.if exists(${HTTPD})
|
|
AP_CUR_VERSION!= ${HTTPD} -V | ${SED} -ne 's/^Server version: Apache\/\([0-9]\)\.\([0-9]*\).*/\1\2/p'
|
|
. if ${AP_CUR_VERSION} > 13
|
|
APACHE_MPM!= ${APXS} -q MPM_NAME
|
|
. endif
|
|
.elif defined(APACHE_PORT)
|
|
AP_CUR_VERSION!= ${ECHO_CMD} ${APACHE_PORT} | ${SED} -ne 's,.*/apache\([0-9]*\).*,\1,p'
|
|
.endif
|
|
|
|
.if defined(AP_CUR_VERSION)
|
|
VERSION_CHECK!= eval `${ECHO_CMD} "[ ${AP_VERSION} -eq ${AP_CUR_VERSION} ]" | ${SED} -e 's/- -eq/ -ge/ ; s/+ -eq/ -le/' ` ; ${ECHO_CMD} $${?}
|
|
. if ${VERSION_CHECK} == 1
|
|
IGNORE= ${_ERROR_MSG} apache${AP_CUR_VERSION} is installed (or APACHE_PORT is defined) and port requires ${USE_APACHE}
|
|
. endif
|
|
APACHE_VERSION= ${AP_CUR_VERSION}
|
|
.else
|
|
AP_CUR_VERSION= none
|
|
. if !defined(APACHE_PORT)
|
|
#Fallback to smallest version...
|
|
APACHE_VERSION= ${AP_VERSION:C/\+//}
|
|
. endif
|
|
.endif
|
|
|
|
.if exists(${APXS})
|
|
APXS_PREFIX!= ${APXS} -q prefix 2> /dev/null || echo NULL
|
|
. if ${APXS_PREFIX} == NULL
|
|
IGNORE= : Your apache does not support DSO modules
|
|
. endif
|
|
. if defined(AP_GENPLIST) && ${APXS_PREFIX} != ${PREFIX}
|
|
IGNORE?= PREFIX must be egal to APXS_PREFIX.
|
|
. endif
|
|
.endif
|
|
|
|
.if ${APACHE_VERSION} == "20"
|
|
AP_BUILDEXT= la
|
|
PLIST_SUB+= APACHEMODDIR="libexec/apache2" \
|
|
APACHEINCLUDEDIR="include/apache2"
|
|
# XXX We postpone www/apache2 => www/apache20 migration
|
|
#APACHE_PORT= www/apache${APACHE_VERSION}
|
|
APACHE_PORT= www/apache2
|
|
.elif ${APACHE_VERSION} == "21"
|
|
AP_BUILDEXT= la
|
|
PLIST_SUB+= APACHEMODDIR="libexec/apache${APACHE_VERSION}" \
|
|
APACHEINCLUDEDIR="include/apache${APACHE_VERSION}"
|
|
APACHE_PORT= www/apache${APACHE_VERSION}
|
|
.else
|
|
AP_BUILDEXT= so
|
|
PLIST_SUB+= APACHEMODDIR="libexec/apache" \
|
|
APACHEINCLUDEDIR="include/apache"
|
|
APACHE_PORT?= www/apache13
|
|
.endif
|
|
.for VAR in ${OVERRIDABLE_VARS}
|
|
. if defined(AP${APACHE_VERSION}_${VAR})
|
|
${VAR} =${AP${APACHE_VERSION}_${VAR}}
|
|
. endif
|
|
.endfor
|
|
|
|
BUILD_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT}
|
|
RUN_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT}
|
|
PLIST_SUB+= AP_NAME="${SHORTMODNAME}"
|
|
PLIST_SUB+= AP_MODULE="${MODULENAME}.so"
|
|
|
|
.if defined(AP_GENPLIST)
|
|
PLIST?= ${WRKDIR}/ap-plist
|
|
.endif
|
|
|
|
.if defined(AP_INC)
|
|
AP_EXTRAS+= -I ${AP_INC}
|
|
.endif
|
|
.if defined(AP_LIB)
|
|
AP_EXTRAS+= -L ${AP_LIB}
|
|
.endif
|
|
|
|
.endif
|
|
|
|
.if defined(AP_PORT_IS_SERVER)
|
|
.elif defined(AP_PORT_IS_MODULE)
|
|
|
|
.if defined(AP_FAST_BUILD)
|
|
.if !target(ap-gen-plist)
|
|
ap-gen-plist:
|
|
.if defined(AP_GENPLIST)
|
|
. if !exists(${PLIST})
|
|
@${ECHO} "===> Generating apache plist"
|
|
@${ECHO} "@unexec %D/sbin/apxs -e -A -n %%AP_NAME%% %D/%%APACHEMODDIR%%/%%AP_MODULE%%" > ${PLIST}
|
|
@${ECHO} "%%APACHEMODDIR%%/%%AP_MODULE%%" >> ${PLIST}
|
|
@${ECHO} "@exec %D/sbin/apxs -e -A -n %%AP_NAME%% %D/%F" >> ${PLIST}
|
|
@${ECHO} "@unexec echo \"Don't forget to remove all ${MODULENAME}-related directives in your httpd.conf\"">> ${PLIST}
|
|
. endif
|
|
.else
|
|
@${DO_NADA}
|
|
.endif
|
|
.endif
|
|
|
|
.if !target(do-build)
|
|
do-build: ap-gen-plist
|
|
@cd ${WRKSRC} && ${APXS} -c ${AP_EXTRAS} -o ${MODULENAME}.${AP_BUILDEXT} ${SRC_FILE}
|
|
.endif
|
|
|
|
.if !target(do-install)
|
|
do-install:
|
|
@${APXS} -i -A -n ${SHORTMODNAME} ${WRKSRC}/${MODULENAME}.${AP_BUILDEXT}
|
|
.endif
|
|
|
|
.endif
|
|
|
|
.endif
|