# Makefile.modules.3rd # # $FreeBSD$ # # Author: Clement Laforet # If you have questions, please contact me. # .ifdef(USE_APACHE) .error USE_APACHE and Makefile.modules.3rd can't be used together. .endif APXS?= ${LOCALBASE}/sbin/apxs MODULENAME?= ${PORTNAME} SHORTMODNAME?= ${MODULENAME:S/mod_//} SRC_FILE?= ${MODULENAME}.c OVERRIDABLE_VARS= SRC_FILE MODULENAME SHORTMODNAME WRKSRC \ PKGNAMESUFFIX .if exists(${LOCALBASE}/include/apache2/http_core.h) WITH_APACHE2= YES . if defined (WANT_APACHE) . if ${WANT_APACHE} == 13 IGNORE= "This module require apache13 and you have apache2 installed" . endif . endif .elif exists(${LOCALBASE}/include/apache/http_core.h) WITH_APACHE13= YES . if defined (WANT_APACHE) . if ${WANT_APACHE} == 2 IGNORE= "This module require apache2 and you have apache13 installed" . endif . endif . ifdef(WITH_APACHE2) IGNORE= You have 'WITH_APACHE2' variable defined either in environment or in make(1) arguments. but apache13 is installed Please undefine and try again. . endif .endif .if defined (WANT_APACHE) . if ${WANT_APACHE} == 13 WITH_APACHE13= YES . elif ${WANT_APACHE} == 2 WITH_APACHE2= YES .elif ${WANT_APACHE:Mcommon*} != "" PORT_IS_SERVER= YES . else IGNORE= "Unknown apache version" . endif .endif .if !defined(PORT_IS_SERVER) .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 .else APXS_PREFIX= ${APXS:S/\/sbin\/apxs//} .endif .if defined(WITH_APACHE2) AP_BUILDEXT= la PLIST_SUB+= APACHEMODDIR="libexec/apache2" APACHE_PORT= www/apache20 AP_VER= 2 .else AP_BUILDEXT= so PLIST_SUB+= APACHEMODDIR="libexec/apache" APACHE_PORT?= www/apache13 AP_VER= 13 .endif .for VAR in ${OVERRIDABLE_VARS} . if defined(AP${AP_VER}_${VAR}) ${VAR}= ${AP${AP_VER}_${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 .if defined(AP_FAST_BUILD) 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 do-build: ap-gen-plist @cd ${WRKSRC} && ${APXS} -c ${AP_EXTRAS} -o ${MODULENAME}.${AP_BUILDEXT} ${SRC_FILE} do-install: @${APXS} -i -A -n ${SHORTMODNAME} ${WRKSRC}/${MODULENAME}.${AP_BUILDEXT} .endif .else # 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} # We select them 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 .if ${WANT_APACHE} == common13 # dirty hack to make sure all modules are disabled before we select them CONFIGURE_ARGS+= --disable-module="all" .elif ${WANT_APACHE} == common2 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 ${WANT_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 ${WANT_APACHE} == common2 || ${WANT_APACHE} == common21 # FYI #DYNAMIC_MODULES= so CONFIGURE_ARGS+= --enable-so . endif .else . if ${WANT_APACHE} == common2 || ${WANT_APACHE} == common21 CONFIGURE_ARGS+= --disable-so . endif WITH_ALL_STATIC_MODULES= YES .endif .if defined(WITH_SUEXEC) || defined(WITH_SUEXEC_MODULES) .if ${WANT_APACHE} == common13 SUEXEC_CONFARGS= suexec CONFIGURE_ARGS+= --enable-suexec .elif ${WANT_APACHE} == common2 || ${WANT_APACHE} == common21 SUEXEC_CONFARGS= with-suexec .else IGNORE= Can not determine apache version .endif 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 WANT_APACHE=13 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 ${WANT_APACHE} == common13 . for module in ${APACHE_MODULES} CONFIGURE_ARGS+= --enable-module=${module} . endfor . else CONFIGURE_ARGS+= --enable-modules="${APACHE_MODULES}" . endif .else . if ${WANT_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 .endif #PORT_IS_SERVER