File:  [cvs.NetBSD.org] / pkgsrc / www / apache2 / Attic / Makefile
Revision 1.111: download - view: text, annotated - select for diffs
Thu Feb 22 19:27:19 2007 UTC (17 years, 9 months ago) by wiz
Branches: MAIN
CVS tags: pkgsrc-2007Q1-base, pkgsrc-2007Q1, HEAD
Whitespace cleanup, courtesy of pkglint.
Patch provided by Sergey Svishchev in private mail.

# $NetBSD: Makefile,v 1.111 2007/02/22 19:27:19 wiz Exp $

.include "Makefile.common"

PKGNAME=	apache-${APACHE_VERSION}
PKGREVISION=	4
CATEGORIES=	www

HOMEPAGE=	http://httpd.apache.org/
COMMENT=	Apache HTTP (Web) server, version 2

CONFLICTS=	apache-*ssl-[0-9]* apache6-[0-9]*

BUILD_DEFS+=	USE_INET6
BUILD_DEFS+=	VARBASE

USE_TOOLS+=		perl perl:run pkg-config
USE_LIBTOOL=		yes
GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--enable-layout=NetBSD
CONFIGURE_ARGS+=	--with-port=80
CONFIGURE_ARGS+=	--enable-so
CONFIGURE_ENV+=		perlbin=${PERL5:Q}

# Apache Portable Runtime library configure options
CONFIGURE_ARGS+=	--with-apr=${BUILDLINK_PREFIX.apr}
CONFIGURE_ARGS+=	--with-apr-util=${BUILDLINK_PREFIX.apr}

BUILDLINK_API_DEPENDS.apr+=	apr>=0.9.12.2.0.58

# the following must be set before bsd.prefs.mk in order to make += work
# in mk.conf; however, it isn't expanded until referenced, so we can
# define DFLT_APACHE_MODULES later
#
APACHE_MODULES?=	${DFLT_APACHE_MODULES}

.include "../../mk/bsd.prefs.mk"
.include "../../devel/apr0/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"

# Set the "Multi-Processing Model" used by Apache to handle requests.
# Valid values are:
#	prefork		non-threaded, pre-forking web server
#	worker		hybrid multi-threaded multi-process web server
#
APACHE_MPM?=		prefork
CONFIGURE_ARGS+=	--with-mpm=${APACHE_MPM:Q}
BUILD_DEFS+=		APACHE_MPM
.for mpm in prefork worker
PLIST_SUBST.${mpm}?=		MPM_COMMENT.${mpm}="@comment "
PLIST_SUBST+=			${PLIST_SUBST.${mpm}}
.endfor
PLIST_SUBST.${APACHE_MPM}=	MPM_COMMENT.${APACHE_MPM}=

CONFIGURE_ARGS+=	--disable-access
CONFIGURE_ARGS+=	--disable-auth
CONFIGURE_ARGS+=	--disable-include
CONFIGURE_ARGS+=	--disable-log-config
CONFIGURE_ARGS+=	--disable-env
CONFIGURE_ARGS+=	--disable-mime
CONFIGURE_ARGS+=	--disable-setenvif
CONFIGURE_ARGS+=	--disable-status
CONFIGURE_ARGS+=	--disable-autoindex
CONFIGURE_ARGS+=	--disable-asis
CONFIGURE_ARGS+=	--disable-cgi
CONFIGURE_ARGS+=	--disable-negotiation
CONFIGURE_ARGS+=	--disable-dir
CONFIGURE_ARGS+=	--disable-imap
CONFIGURE_ARGS+=	--disable-actions
CONFIGURE_ARGS+=	--disable-userdir
CONFIGURE_ARGS+=	--disable-alias

DFLT_APACHE_MODULES=	all
DFLT_APACHE_MODULES+=	proxy proxy_connect proxy_ftp proxy_http
DFLT_APACHE_MODULES+=	ssl deflate
DFLT_APACHE_MODULES+=	access auth include log_config env mime setenvif
DFLT_APACHE_MODULES+=	status autoindex asis cgi negotiation dir imap
DFLT_APACHE_MODULES+=	actions userdir alias

# LDAP support
.if !empty(PKG_BUILD_OPTIONS.apr:Mldap)
DFLT_APACHE_MODULES+=	ldap auth_ldap
.endif

# APACHE_MODULES are the modules that are linked statically into the
# apache httpd executable.
#
CONFIGURE_ARGS+=	--enable-modules=${APACHE_MODULES:Q}
BUILD_DEFS+=		APACHE_MODULES

APACHE_USER?=		www
APACHE_GROUP?=		www
PKG_GROUPS=		${APACHE_GROUP}
PKG_USERS=		${APACHE_USER}:${APACHE_GROUP}
BUILD_DEFS+=		APACHE_USER APACHE_GROUP

PKG_SYSCONFVAR=		apache
PKG_SYSCONFSUBDIR?=	httpd
EGDIR=			${PREFIX}/share/examples/httpd
SBINDIR=		${PREFIX}/sbin
CONF_FILES=		${EGDIR}/httpd-std.conf ${PKG_SYSCONFDIR}/httpd.conf
CONF_FILES+=		${EGDIR}/ssl-std.conf ${PKG_SYSCONFDIR}/ssl.conf
CONF_FILES+=		${SBINDIR}/envvars-std ${SBINDIR}/envvars
CONF_FILES+=		${EGDIR}/magic ${PKG_SYSCONFDIR}/magic
CONF_FILES+=		${EGDIR}/mime.types ${PKG_SYSCONFDIR}/mime.types
RCD_SCRIPTS=		apache

REQD_DIRS=		${PREFIX}/share/httpd
REQD_DIRS+=		${PREFIX}/share/httpd/htdocs
OWN_DIRS=	${VARBASE}/log/httpd
OWN_DIRS+=		${VARBASE}/db/httpd
OWN_DIRS_PERMS+=	${VARBASE}/db/httpd/proxy ${APACHE_USER} ${APACHE_GROUP} 0755
FIX_PERMS=		apachectl apxs dbmmanage envvars-std mkcert
FIX_MAN_PERMS=		man1/htdbm.1 man1/htpasswd.1 man1/htdigest.1
FIX_MAN_PERMS+=		man1/dbmmanage.1 man8/httpd.8 man8/suexec.8
FIX_MAN_PERMS+=		man8/rotatelogs.8 man8/logresolve.8 man8/apxs.8
FIX_MAN_PERMS+=		man8/apachectl.8 man8/ab.8

# Fix paths in the apache manpages.
SUBST_CLASSES+=		man
SUBST_STAGE.man=	post-patch
SUBST_FILES.man=	docs/man/*.1 docs/man/*.8
SUBST_SED.man=		-e 's,/usr/local/etc/apache,${PKG_SYSCONFDIR},'
SUBST_SED.man+=		-e 's,/path/to/apache/etc,${PKG_SYSCONFDIR},'
SUBST_SED.man+=		-e 's,/usr/local/apache2,${PREFIX}/share/httpd/htdocs,'
SUBST_SED.man+=		-e 's,/usr/web,${PREFIX}/share/httpd/htdocs,'

SUBST_CLASSES+=		paths
SUBST_STAGE.paths=	pre-configure
SUBST_FILES.paths=	config.layout
SUBST_SED.paths=	-e "s|@PREFIX@|${PREFIX}|g"
SUBST_SED.paths+=	-e "s|@VARBASE@|${VARBASE}|g"
SUBST_SED.paths+=	-e "s|@SYSCONFDIR@|${PKG_SYSCONFDIR}|g"
SUBST_MESSAGE.paths=	Fixing paths.

SUBST_CLASSES+=		apr-lt
SUBST_STAGE.apr-lt=	post-configure
SUBST_FILES.apr-lt=	build/config_vars.mk
SUBST_SED.apr-lt=	-e 's|^\(LIBTOOL =\) [^ ]*|\1 $$(SHELL) $$(top_builddir)/build/libtool|g'
SUBST_MESSAGE.apr-lt=	Fixing libtool references.

SUBST_CLASSES+=		confs
SUBST_STAGE.confs=	post-configure
SUBST_MESSAGE.confs=	Fixing configuration files.
SUBST_FILES.confs=	docs/conf/highperformance-std.conf
SUBST_FILES.confs+=	docs/conf/httpd-std.conf
SUBST_FILES.confs+=	docs/conf/ssl-std.conf
SUBST_SED.confs=	-e "s|${EGDIR}|${PKG_SYSCONFDIR}|g"
SUBST_SED.confs+=	-e "s|${PREFIX}/htdocs|${PREFIX}/share/httpd/htdocs|g"
SUBST_SED.confs+=	-e "s|${PREFIX}/conf|${PKG_SYSCONFDIR}|g"
SUBST_SED.confs+=	-e "s|logs/|${VARBASE}/log/httpd/|g"
SUBST_SED.confs+=	-e 's|/var/log/httpd/foo\.log|logs/foo.log/|g'
SUBST_SED.confs+=	-e 's|^\(User[	 ]\).*|\1${APACHE_USER}|g'
SUBST_SED.confs+=	-e 's|^\(Group[	 ]\).*|\1${APACHE_GROUP}|g'

REPLACE_PERL=		docs/cgi-examples/printenv

.include "options.mk"

# Add dependencies for the modules that will be built.  For each module
# ap_mod listed in ${APACHE_MODULES}, _AP_DEPENDS.ap_mod is a whitespace
# separated list of dependencies or buildlink3.mk files needed to build
# ap_mod, and _AP_CFG_ARGS.ap_mod is a whitespace separated list of
# configure script options for ap_mod.
#
AP_DEPENDS.ssl=	../../security/openssl/buildlink3.mk
AP_DEPENDS.deflate=	../../devel/zlib/buildlink3.mk

AP_CFG_ARGS.ssl=	--with-ssl=${BUILDLINK_PREFIX.openssl}
AP_CFG_ARGS.deflate=	--with-z=${BUILDLINK_PREFIX.zlib}

.for ap_mod in ${APACHE_MODULES}
.  if defined(AP_DEPENDS.${ap_mod}) && !empty(AP_DEPENDS.${ap_mod})
.    for ap_depend in ${AP_DEPENDS.${ap_mod}}
.      if exists(${ap_depend})
.        include "${ap_depend}"
.      else
DEPENDS+=		${ap_depend}
.      endif
.    endfor
.  endif
.  if defined(AP_CFG_ARGS.${ap_mod}) && !empty(AP_CFG_ARGS.${ap_mod})
CONFIGURE_ARGS+=	${AP_CFG_ARGS.${ap_mod}}
.  endif
.endfor

post-extract:
	${TOUCH} ${WRKSRC}/build/libtool

post-build:
	${SED} "s#@PKG_SYSCONFDIR@#${PKG_SYSCONFDIR}#g"			\
		< ${FILESDIR}/mkcert.sh > ${WRKDIR}/mkcert

pre-install:
	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV}				\
		${MAKE_PROGRAM} install-conf sysconfdir="${EGDIR}"

post-install:
	${LN} -sf ${LOCALBASE}/libexec/apr/libtool ${PREFIX}/share/httpd/build
	cd ${EGDIR} &&							\
	for file in							\
		highperformance-std.conf				\
		httpd-std.conf						\
		ssl-std.conf;						\
	do								\
		${AWK} '						\
			/^Listen[ 	]*80/	{			\
				print;					\
				printf "%s", "Listen 0.0.0.0:80\n";	\
				next;					\
			}						\
			/^Listen[ 	]*443/	{			\
				print;					\
				printf "%s", "Listen 0.0.0.0:443\n";	\
				next;					\
			}						\
			{ print; }					\
			' < "$${file}" >> $${file}.new;			\
		${MV} -f $${file}.new $${file};				\
	done

	${INSTALL_DATA_DIR} ${PREFIX}/share/httpd/manual
	cd ${WRKSRC}/docs/manual && ${PAX} -rw . ${PREFIX}/share/httpd/manual

	${INSTALL_SCRIPT} ${WRKDIR}/mkcert ${PREFIX}/sbin

	for file in ${FIX_PERMS}; do \
		${CHOWN} ${BINOWN}:${BINGRP} ${PREFIX}/sbin/$$file && \
		${CHMOD} ${BINMODE} ${PREFIX}/sbin/$$file; \
	done

	${CHOWN} -R ${BINOWN}:${BINGRP} ${PREFIX}/share/httpd
	${CHOWN} -R ${BINOWN}:${BINGRP} ${PREFIX}/include/httpd
	${CHOWN} -R ${BINOWN}:${BINGRP} ${PREFIX}/lib/httpd
	${CHOWN} ${BINOWN}:${BINGRP} ${PREFIX}/libexec/cgi-bin/test-cgi
	${CHOWN} ${BINOWN}:${BINGRP} ${PREFIX}/libexec/cgi-bin/printenv

	for file in ${FIX_MAN_PERMS}; do \
		${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/${PKGMANDIR}/$$file; \
	done

.include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>