Index: Mk/bsd.apache.mk =================================================================== RCS file: Mk/bsd.apache.mk diff -N Mk/bsd.apache.mk --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Mk/bsd.apache.mk 4 Jun 2005 16:58:40 -0000 @@ -0,0 +1,364 @@ +#-*- mode: makefile; tab-width: 4; -*- +# ex:ts=4 +# +# $FreeBSD$ +# +# bsd.apache.mk - Apache related macros. +# Author: Clement Laforet +# +# Please view me with 4 column tabs! + +# This file includes several functionnalities: +# - automatic detection of installed apache version and/or set correct +# dependencies +# - semi-automatic target to make module porting easier +# - modules selection for apache server ports +# + +########################################################################## +# +# Variables definition +# USE_APACHE: Call this script. Values can be: +# : 1.3/13/2.0/20/2.1/1.3+/2.0+/2.1+ +# common*: common13, common20 and common21 +# apr: deal with apr stuff ;-) +# +# APXS: +# APACHE_PORT: + +# 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 +APXS= ${LOCALBASE}/sbin/apxs +. if defined(WITH_APACHE2) +APACHE_PORT?= www/apache20 +. else +APACHE_PORT?= www/apache13 +. endif +APXS?= ${LOCALBASE}/sbin/apxs +BUILD_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} +RUN_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} +#### 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-imap --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 +#### XXX End of APR_DEPS #### + +.elif defined(AP_PORT_IS_MODULE) +#### XXX Start of 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" +APACHE_PORT= www/apache${APACHE_VERSION} +.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 + +#### XXX End of PORT IS MODULE #### +.endif + +### XXX TARGETS ### +.if defined(AP_PORT_IS_SERVER) +#### XXX Start of PORT IS SERVER #### +#### XXX End of PORT IS SERVER #### +.elif defined(AP_PORT_IS_MODULE) +#### XXX Start of 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 + +#### XXX End of PORT IS MODULE #### +.endif Index: Mk/bsd.port.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v retrieving revision 1.511 diff -u -r1.511 bsd.port.mk --- Mk/bsd.port.mk 17 Mar 2005 23:22:07 -0000 1.511 +++ Mk/bsd.port.mk 4 Jun 2005 16:51:54 -0000 @@ -1769,6 +1769,10 @@ .include "${PORTSDIR}/Mk/bsd.python.mk" .endif +.if defined(USE_APACHE) +.include "${PORTSDIR}/Mk/bsd.apache.mk" +.endif + .if exists(${PORTSDIR}/../Makefile.inc) .include "${PORTSDIR}/../Makefile.inc" USE_SUBMAKE= yes