Fixup fromcvs/togit conversion
[minix-pkgsrc.git] / www / apache / Makefile
bloba7889566d17e52c2a828239fd705091b31ee40d2
1 # $NetBSD: Makefile,v 1.203 2012/10/28 06:30:09 asau Exp $
3 # This pkg does not compile in mod_ssl, only the `mod_ssl EAPI' (a set of
4 # code hooks that allow mod_ssl to be compiled separately later, if desired).
6 DISTNAME= apache_1.3.42
7 PKGNAME= ${DISTNAME:S/_/-/}
8 PKGREVISION= 4
9 CATEGORIES= www
10 MASTER_SITES= ${MASTER_SITE_APACHE:=httpd/} \
11 ${MASTER_SITE_APACHE:=httpd/old/}
12 DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${NETBSD_LOGO} ${MODSSL_DIST}
14 MAINTAINER= pkgsrc-users@NetBSD.org
15 HOMEPAGE= http://httpd.apache.org/
16 COMMENT= Apache HTTP (Web) server
18 NETBSD_LOGO= sitedrivenby.gif
19 SITES.${NETBSD_LOGO}= http://www.NetBSD.org/images/logos/
21 MODSSL_VERSION= 2.8.31
22 MODSSL_DISTNAME= mod_ssl-${MODSSL_VERSION}-1.3.41
23 MODSSL_DIST= ${MODSSL_DISTNAME}.tar.gz
24 MODSSL_SRC= ${WRKDIR}/${MODSSL_DISTNAME}
25 SITES.${MODSSL_DIST}= http://www.modssl.org/source/ \
26 ftp://ftp.pca.dfn.de/pub/tools/net/mod_ssl/source/ \
27 ftp://ftp.funet.fi/pub/crypt/cryptography/libs/modssl/source/
29 CONFLICTS= apache-*ssl-[0-9]* apache6-[0-9]*
31 EXTRACT_ONLY= ${DISTFILES:N*.gif}
32 # Actually, apache is only written in C, but we need this so that
33 # a dlopen()ed apache module that's written in C++ will have static
34 # objects constructed properly.
35 USE_LANGUAGES= c c++
36 HAS_CONFIGURE= YES
37 CONFIGURE_ARGS+= --with-layout="${WRKSRC}/config.layout:pkgsrc"
38 CONFIGURE_ARGS+= --enable-module=most \
39 --enable-module=auth_db \
40 --disable-module=auth_dbm
41 CONFIGURE_ARGS+= --enable-rule=EAPI \
42 --disable-module=ssl
43 CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
44 CONFIGURE_ARGS+= --without-confadjust
45 CONFIGURE_ARGS+= --with-perl=${PERL5:Q}
46 CONFIGURE_ARGS+= --with-port=80
47 CONFIGURE_ENV+= OPTIM=${APACHE_CUSTOM_CFLAGS:Q}
48 CONFIGURE_ENV+= EAPI_MM="${BUILDLINK_PREFIX.libmm}"
49 CONFIGURE_ENV+= BINOWN=${BINOWN:Q} BINGRP=${BINGRP:Q}
50 INSTALL_MAKE_FLAGS+= root=${DESTDIR:Q}
52 .include "../../mk/bsd.prefs.mk"
54 .if empty(STRIPFLAG)
55 CONFIGURE_ARGS+= --without-execstrip
56 .endif
58 PKG_SYSCONFSUBDIR?= httpd
59 USE_TOOLS+= perl
61 APACHE_USER?= www
62 APACHE_GROUP?= www
63 PKG_USERS_VARS+= APACHE_USER
64 PKG_GROUPS_VARS+= APACHE_GROUP
66 CONFIGURE_ARGS+= --server-uid=${APACHE_USER:Q}
67 CONFIGURE_ARGS+= --server-gid=${APACHE_GROUP:Q}
69 PKG_OPTIONS_VAR= PKG_OPTIONS.apache
70 PKG_SUPPORTED_OPTIONS= perf-tuning suexec
72 .include "../../mk/bsd.options.mk"
74 .if !empty(PKG_OPTIONS:Msuexec)
75 APACHE_SUEXEC_DOCROOT?= ${PREFIX}/share/httpd/htdocs
76 APACHE_SUEXEC_PATH= /bin:/usr/bin:${PREFIX}/bin:/usr/local/bin
77 APACHE_SUEXEC_CONFIGURE_ARGS+= \
78 --suexec-caller=${APACHE_USER} \
79 --suexec-safepath=${APACHE_SUEXEC_PATH:Q} \
80 --suexec-docroot=${APACHE_SUEXEC_DOCROOT}
81 CONFIGURE_ARGS+= --enable-suexec \
82 ${APACHE_SUEXEC_CONFIGURE_ARGS:M--suexec-*}
83 PLIST_SRC= ${PKGDIR}/PLIST.suexec
84 BUILD_DEFS+= APACHE_SUEXEC_DOCROOT
85 .endif
87 # Note that there is NO static compile module hook here. This is intentional.
88 # Under Apache 1.3, modules can be compiled to link dynamically to the server
89 # using the "apxs" program. See apxs(8).
91 .if !defined(NOPIC)
92 CONFIGURE_ARGS+= --enable-module=so # requires dlopen()
93 _ENABLE_MOD= --enable-shared
94 PLIST_SRC+= ${PKGDIR}/PLIST.shared
95 .else
96 _ENABLE_MOD= --enable-module
97 .endif
98 PLIST_SRC+= ${PKGDIR}/PLIST
100 CONFIGURE_ARGS+= ${_ENABLE_MOD}=proxy
101 CONFIGURE_ARGS+= ${_ENABLE_MOD}=define # from mod_ssl pkg.addon
103 APACHE_CUSTOM_CFLAGS?= # empty
105 .if !empty(PKG_OPTIONS:Mperf-tuning)
106 APACHE_CUSTOM_CFLAGS+= -DBUFFERED_LOGS
107 APACHE_CUSTOM_CFLAGS+= ${COMPILER_PERFTUNE_FLAGS}
108 LDFLAGS+= ${COMPILER_PERFTUNE_FLAGS}
109 .endif
111 # Explicitly turn on large file support
112 APACHE_CUSTOM_CFLAGS+= -D_LARGEFILE_SOURCE
113 APACHE_CUSTOM_CFLAGS+= -D_FILE_OFFSET_BITS=64
115 .include "../../mk/compiler.mk"
117 # On NetBSD ELF platforms, we need to link libgcc.a whole-archive so that
118 # certain symbols from the C++ implementation (__get_eh_context, etc.)
119 # referenced by DSOs written in C++ will resolve correctly.
121 .if ${OPSYS} == "NetBSD"
122 . if ${OBJECT_FMT} == "ELF"
123 LINK_LIBGCC_LDFLAGS= ${LINK_ALL_LIBGCC_HACK}
124 MAKE_ENV+= LINK_LIBGCC_LDFLAGS=${LINK_LIBGCC_LDFLAGS:Q}
126 # If we are using gcc3, we need to link against libgcc_s, too. This
127 # ensures modules can resolve symbols they require from gcc.
129 . if !empty(CC_VERSION:Mgcc-3*)
130 LINK_LIBGCC_LDFLAGS+= -lgcc_s
131 . endif
132 . endif
133 .endif
135 BUILD_DEFS+= APACHE_CUSTOM_CFLAGS APACHE_USER APACHE_GROUP
137 EGDIR= ${PREFIX}/share/examples/httpd
139 CONF_FILES= ${EGDIR}/httpd.conf.default ${PKG_SYSCONFDIR}/httpd.conf
140 CONF_FILES+= ${EGDIR}/magic.default ${PKG_SYSCONFDIR}/magic
141 CONF_FILES+= ${EGDIR}/mime.types.default ${PKG_SYSCONFDIR}/mime.types
142 RCD_SCRIPTS= apache
144 REQD_DIRS= ${PREFIX}/share/httpd
145 REQD_DIRS+= ${PREFIX}/share/httpd/htdocs
146 REQD_DIRS+= ${PREFIX}/lib/httpd
147 OWN_DIRS+= ${VARBASE}/httpd
148 OWN_DIRS+= ${VARBASE}/log/httpd
149 OWN_DIRS_PERMS+= ${VARBASE}/httpd/proxy ${APACHE_USER} ${APACHE_GROUP} 0755
152 # Fix paths in the apache manpages.
154 SUBST_CLASSES+= man
155 SUBST_STAGE.man= post-patch
156 SUBST_FILES.man= src/support/*.1 src/support/*.8
157 SUBST_SED.man= -e 's,/usr/local/apache/conf,${PKG_SYSCONFDIR},'
158 SUBST_SED.man+= -e 's,/usr/local/etc/apache,${PKG_SYSCONFDIR},'
159 SUBST_SED.man+= -e 's,/path/to/apache/etc,${PKG_SYSCONFDIR},'
160 SUBST_SED.man+= -e 's,/usr/local/apache/logs,${VARBASE}/log/httpd,'
161 SUBST_SED.man+= -e 's,/usr/local/apache,${PREFIX}/share/httpd/htdocs,'
162 SUBST_SED.man+= -e 's,/usr/web,${PREFIX}/share/httpd/htdocs,'
164 SUBST_CLASSES+= paths
165 SUBST_FILES.paths= config.layout
166 SUBST_SED.paths+= -e 's,@PREFIX@,${PREFIX},g'
167 SUBST_SED.paths+= -e 's,@PKG_SYSCONFDIR@,${PKG_SYSCONFDIR},g'
168 SUBST_SED.paths+= -e 's,@VARBASE@,${VARBASE},g'
169 SUBST_STAGE.paths= post-patch
171 .include "../../mk/bdb.buildlink3.mk"
172 SUBST_CLASSES+= db
173 SUBST_STAGE.db= post-patch
174 SUBST_FILES.db= src/modules/standard/mod_auth_db.module
175 SUBST_SED.db+= -e 's,@DB_LIB@,${BDB_LIBS},g'
176 SUBST_SED.db+= -e 's,@DB_VERSION@,${BDB_TYPE},g'
177 .if defined(BDB_BASE) && !empty(BDB_BASE)
178 SUBST_SED.db+= -e 's,@DB_CFLAGS@,-I${BDB_BASE}/include,g'
179 .else
180 SUBST_SED.db+= -e 's,@DB_CFLAGS@,,g'
181 .endif
183 REPLACE_PERL+= cgi-bin/printenv
184 CHECK_INTERPRETER_SKIP+= lib/httpd/httpd.exp
186 PKG_GROUPS= ${APACHE_GROUP}
187 PKG_USERS= ${APACHE_USER}:${APACHE_GROUP}
189 MAKE_ENV+= CHMOD=${CHMOD:Q} CHOWN=${CHOWN:Q} XARGS=${XARGS:Q}
190 MAKE_ENV+= FIND=${FIND:Q} CHGRP=${CHGRP:Q}
192 .include "../../devel/libmm/buildlink3.mk"
193 .include "../../textproc/expat/buildlink3.mk"
194 .include "../../mk/dlopen.buildlink3.mk"
196 post-extract:
197 ${CP} ${FILESDIR}/ap_include_extern.h ${WRKSRC}/src/include
198 ${CP} ${MODSSL_SRC}/pkg.addon/*.c ${WRKSRC}/src/modules/extra
199 ${CP} ${MODSSL_SRC}/pkg.addon/*.html ${WRKSRC}/htdocs/manual/mod
200 ${CP} ${MODSSL_SRC}/pkg.eapi/*.c ${WRKSRC}/src/ap
201 ${CP} ${MODSSL_SRC}/pkg.eapi/*.h ${WRKSRC}/src/include
202 ${CP} ${FILESDIR}/config.layout ${WRKSRC}
204 pre-patch:
205 cd ${WRKSRC} && ${CAT} \
206 ${MODSSL_SRC}/pkg.addon/addon.patch \
207 ${MODSSL_SRC}/pkg.eapi/eapi.patch \
208 ${MODSSL_SRC}/pkg.sslcfg/sslcfg.patch \
209 ${MODSSL_SRC}/pkg.sslmod/sslmod.patch \
210 ${MODSSL_SRC}/pkg.sslsup/sslsup.patch \
211 | ${PATCH} ${PATCH_ARGS}
212 cd ${WRKSRC} && ${TAIL} -n +160 \
213 ${MODSSL_SRC}/pkg.ssldoc/ssldoc.patch \
214 | ${PATCH} ${PATCH_ARGS}
215 ${FIND} ${WRKSRC} -name '*.orig' -print | ${XARGS} ${RM} -f
217 post-patch:
218 cd ${WRKSRC}/src/support; \
219 ${SED} -e "s|@INSTALL@|"`${TYPE} ${INSTALL} | ${AWK} '{ print $$NF }'`" -c -o ${LIBOWN} -g ${LIBGRP}|" \
220 apxs.pl > apxs.pl.sed; \
221 ${MV} apxs.pl.sed apxs.pl
223 pre-install:
224 ${FIND} ${WRKSRC}/htdocs -name '*.orig' -print | ${XARGS} ${RM} -f
226 post-install:
227 .if !defined(NOPIC)
228 cd ${DESTDIR}${PREFIX}/lib/httpd; ${MV} libproxy.so mod_proxy.so
229 .endif
230 ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/examples/httpd
231 for file in httpd.conf magic mime.types; do \
232 ${INSTALL_DATA} ${DESTDIR}${PKG_SYSCONFDIR}/$${file}.default \
233 ${DESTDIR}${PREFIX}/share/examples/httpd; \
234 ${RM} -f ${DESTDIR}${PKG_SYSCONFDIR}/$${file}.default; \
235 done
236 ${INSTALL_DATA} ${DISTDIR}/sitedrivenby.gif ${DESTDIR}${PREFIX}/share/httpd/htdocs
237 ${CHMOD} ${NONBINMODE} ${DESTDIR}${PREFIX}/libexec/cgi-bin/printenv \
238 ${DESTDIR}${PREFIX}/libexec/cgi-bin/test-cgi
240 .include "../../mk/bsd.pkg.mk"