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
/_
/-/}
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.
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 \
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"
55 CONFIGURE_ARGS
+= --without-execstrip
58 PKG_SYSCONFSUBDIR?
= httpd
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
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).
92 CONFIGURE_ARGS
+= --enable-module
=so
# requires dlopen()
93 _ENABLE_MOD
= --enable-shared
94 PLIST_SRC
+= ${PKGDIR}/PLIST.shared
96 _ENABLE_MOD
= --enable-module
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}
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
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
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.
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"
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'
180 SUBST_SED.db
+= -e
's,@DB_CFLAGS@,,g'
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"
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}
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
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
224 ${FIND} ${WRKSRC}/htdocs
-name
'*.orig' -print |
${XARGS} ${RM} -f
228 cd
${DESTDIR}${PREFIX}/lib
/httpd
; ${MV} libproxy.so mod_proxy.so
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
; \
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"