aboutsummaryrefslogtreecommitdiff
path: root/www/apache20/Makefile.modules
blob: e65bc60bd5867f202d15972e5a560e7ec0903c29 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
# Makefile.modules
# Author:			Clement Laforet <sheepkiller@cultdeadsheep.org>
#
# This file is used to build modules list, DBM dependencies and MPM selection.
# I hope it can easily handle external modules (such as mod_perl) or MPMs, like
# muxmpm.
#
# Note to myself: (to generate PLIST_SUB entries for modules)
#	gsed 's/^\(.*\)mod\(.*\)\.so/%%\MOD\U\2%%\L\1mod\2\.so/' pkg-plist > tmp
#	mv tmp pkg-plist
#
# $FreeBSD$
#

# MPM section:
# << TO BE WRITTEN >>
.if defined (SLAVE_PORT_MPM)
PLIST_SUB+=	PREFORK="@comment " WORKER="@comment "
PKGNAMESUFFIX=	-${SLAVE_PORT_MPM}
.else
.   if ${WITH_MPM} != "prefork"
PKGNAMESUFFIX=		-${WITH_MPM:L}
WITH_THREADS=		yes
.      if ${WITH_MPM:L} == "worker"
PLIST_SUB+=	PREFORK="@comment " WORKER=""
.      elif  ${WITH_MPM:L} == "perchild"
PLIST_SUB+=	PREFORK="@comment " WORKER="@comment "
.      else
BROKEN=		"Unknown MPM: ${WITH_MPM}"
.      endif
.   else
PLIST_SUB+=	PREFORK="@comment " WORKER="@comment "
.   endif
.else
PLIST_SUB+=	PREFORK="@comment " WORKER="@comment "
.endif

# Documentation section
.if defined(NO_CGI)
MAKE_ENV+=	NO_CGI=yes
PLIST_SUB+=	CGI="@comment "
.else
PLIST_SUB+=	CGI=""
.endif

.if defined(NO_ICONS)
MAKE_ENV+=	NO_ICONS=yes
PLIST_SUB+=	ICONS="@comment "
.else
PLIST_SUB+=	ICONS=""
.endif

.if defined(NO_WWWDATA)
MAKE_ENV+=	NO_WWWDATA=yes
PLIST_SUB+=	WWWDATA="@comment "
.else
PLIST_SUB+=	WWWDATA=""
.endif

.if defined(NO_ERROR)
MAKE_ENV+=	NO_ERROR=yes
PLIST_SUB+=	ERROR="@comment "
.else
PLIST_SUB+=	ERROR=""
.endif


# xDBM section
#
.if !defined(WITH_DBM) && defined(WITH_BERKELEYDB)
WITH_DBM=db
.endif
.if defined(WITH_DBM) && !defined(WITH_BERKELEYDB)
WITH_BERKELEYDB=	FreeBSD
.endif

.if defined(WITH_DBM)
.   if ${WITH_DBM:L} == "sdbm"
CONFIGURE_ARGS+=	--with-dbm=sdbm
.   elif ${WITH_DBM:L} == "gdbm"
LIB_DEPENDS+=		gdbm.3:${PORTSDIR}/databases/gdbm
CONFIGURE_ARGS+=	--with-gdbm=${LOCALBASE}
.   elif ${WITH_DBM:L} == "db" 
.       if ${WITH_BERKELEYDB} == "FreeBSD"
CONFIGURE_ARGS+=	--with-dbm=db185 \
			--with-berkeley-db=/usr
.       elif ${WITH_BERKELEYDB} == "db2"
LIB_DEPENDS+=		db2:${PORTSDIR}/databases/db2
CONFIGURE_ARGS+=	--with-dbm=db2 \
			--with-berkeley-db=${LOCALBASE}
.       elif ${WITH_BERKELEYDB} == "db3"
LIB_DEPENDS+=		db3:${PORTSDIR}/databases/db3
CONFIGURE_ARGS+=	--with-dbm=db3 \
			--with-berkeley-db=${LOCALBASE}
.       elif ${WITH_BERKELEYDB} == "db4"
LIB_DEPENDS+=		db4:${PORTSDIR}/databases/db4
CONFIGURE_ARGS+=	--with-dbm=db4 \
			--with-berkeley-db=${LOCALBASE}
.           if exists(${LOCALBASE}/lib/libdb41.so)
BROKEN=		"It seems you have db41 installed. Current configuration process will choose it. Please use WITH_BERKELEYDB=db41"
.           endif
.       elif ${WITH_BERKELEYDB} == "db41"
LIB_DEPENDS+=		db41:${PORTSDIR}/databases/db41
CONFIGURE_ARGS+=	--with-dbm=db41 \
			--with-berkeley-db=${LOCALBASE}
.       else
BROKEN=		"Unknown Berkeley DB version"
.       endif
.   else
BROKEN=		"Unknown DBM"
.   endif
.else
CONFIGURE_ARGS+=	--with-dbm=sdbm
.endif

# Modules section:
# How does it works ?
# << TO BE WRITTEN >>
# All supported modules
AUTH_MODULES=		access auth auth_anon auth_dbm auth_digest
DAV_MODULES=		dav dav_fs
EXPERIMENTAL_MODULES=	bucketeer case_filter case_filter_in ext_filter charset_lite \
			optional_hook_export optional_hook_import \
			optional_fn_import optional_fn_export
LDAP_MODULES=		ldap auth_ldap
MISC_MODULES=		actions alias asis autoindex cache cern_meta \
			cgi cgid charset_lite  deflate dir disk_cache env expires \
			file_cache headers imap include info log_config logio mime \
			mime_magic negotiation rewrite setenvif speling status \
			unique_id userdir usertrack vhost_alias
PROXY_MODULES=		proxy proxy_connect proxy_ftp proxy_http
SSL_MODULE=		ssl
SUEXEC_MODULES=		suexec
THREADS_MODULES=	cache file_cache disk_cache mem_cache

# Work in progress
SLAVE_PORT_MODULES?=	# If you are porting a slave port for apache2 please define SLAVE_PORT_MODULES

DEFAULT_MODULES=	${AUTH_MODULES} ${DAV_MODULES} ${MISC_MODULES} \
			${PROXY_MODULES} ${SLAVE_PORT_MODULES}

AVAILABLE_MODULES=	${DEFAULT_MODULES} ${EXPERIMENTAL_MODULES} ${LDAP_MODULES} ${THREADS_MODULES} \
			${SSL_MODULE} ${SUEXEC_MODULES}

# Setting "@comment " as default.
.for module in ${AVAILABLE_MODULES}
${module}_PLIST_SUB=	"@comment "
.endfor

# Configure

.if defined(WITH_MODULES) && ( defined(WITHOUT_MODULES) || defined(WITH_EXTRA_MODULES))
BROKEN=		"WITH_MODULES and WITHOUT_MODULES are mutually exclusive"
.endif

.if defined(WITHOUT_AUTH) || defined(WITH_CUSTOM_AUTH) || \
    defined(WITHOUT_PROXY) || defined(WITH_CUSTOM_PROXY) || \
    defined(WITHOUT_DAV)
CUSTOM=		YES
.endif

.if !defined(WITH_STATIC_APACHE)
# FYI
#DYNAMIC_MODULES=	so
CONFIGURE_ARGS+=	--enable-so
.else
CONFIGURE_ARGS+=	--disable-so
WITH_ALL_STATIC_MODULES=	YES
.endif

### This part is not processed if WITH_MODULES is defined
.if defined(WITH_MODULES)
_APACHE_MODULES+=		${WITH_MODULES}
.elif !defined(CUSTOM)
_APACHE_MODULES+=	${DEFAULT_MODULES}
.else
.    if defined(WITH_CUSTOM_AUTH)
_APACHE_MODULES+=		${WITH_CUSTOM_AUTH}
.    elif !defined(WITHOUT_AUTH)
_APACHE_MODULES+=		${AUTH_MODULE}
.   endif
.   if defined(WITH_CUSTOM_PROXY)
_APACHE_MODULES+=		${WITH_CUSTOM_PROXY}
.   elif !defined(WITHOUT_PROXY)
_APACHE_MODULES+=		${PROXY_MODULES}
.   endif
.   if !defined(WITHOUT_DAV)
_APACHE_MODULES+=		dav dav_fs
.   endif
_APACHE_MODULES+=	${MISC_MODULES} ${SLAVE_PORT_MODULES}
.endif # end of module selection

.if defined (WITH_LDAP)
_APACHE_MODULES+=	${LDAP_MODULES}
.endif

.if defined(WITH_THREADS)
CONFIGURE_ARGS+=	--enable-threads
CFLAGS+=		-DFREEBSD_THREAD_HACK
.   if !defined(WITH_CUSTOM_THREADS)
_APACHE_MODULES+=	${THREAD_MODULES}
.   else
_APACHE_MODULES+=	${WITH_CUSTOM_THREADS}
.   endif
.endif # endif of module selection

.if !defined(WITHOUT_SSL)
_APACHE_MODULES+=	${SSL_MODULE}
CONFIGURE_ARGS+=	--with-ssl=${OPENSSLBASE}
RC_SUB+=		-e 's,@@SSL@@,ssl,g'
.else
RC_SUB+=		-e 's,@@SSL@@,,g'
.endif

.if defined(WITH_SUEXEC)
SUEXEC_DOCROOT?=	${PREFIX_RELDEST}/www/data
SUEXEC_USERDIR?=	public_html
SUEXEC_SAFEPATH?=	${PREFIX_RELDEST}/bin:${LOCALBASE}/bin:/usr/bin:/bin
_APACHE_MODULES+=	${SUEXEC_MODULES}
CONFIGURE_ARGS+=	--with-suexec-caller=www \
			--with-suexec-uidmin=1000 --with-suexec-gidmin=1000 \
			--with-suexec-userdir="${SUEXEC_USERDIR}" \
			--with-suexec-docroot="${SUEXEC_DOCROOT}" \
			--with-suexec-safepath="${SUEXEC_SAFEPATH}" \
			--with-suexec-logfile="/var/log/httpd-suexec.log" \
			--with-suexec-bin="${PREFIX_RELDEST}/sbin/suexec"
.endif
.if defined(WITH_EXTRA_MODULES)
_APACHE_MODULES+=	${WITH_EXTRA_MODULES}
.endif

.if defined(WITH_EXPERIMENTAL)
_APACHE_MODULES+=	${EXPERIMENTAL_MODULES}
.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)
_CONFIGURE_ARGS!=	\
			for module in ${APACHE_MODULES} ; do \
				${ECHO_CMD} ${WITH_STATIC_MODULES} | \
					${GREP} -wq $${module} 2> /dev/null ; \
				if [ "$${?}" = "0" ] ; then \
						${ECHO_CMD} "--enable-$${module}"; \
					else \
						${ECHO_CMD} "--enable-$${module}=shared"; \
					fi; done
CONFIGURE_ARGS+=	${_CONFIGURE_ARGS}
.elif defined(WITH_STATIC_APACHE) || defined(WITH_ALL_STATIC_MODULES)
CONFIGURE_ARGS+=	--enable-modules="${APACHE_MODULES}"
.else
CONFIGURE_ARGS+=	--enable-mods-shared="${APACHE_MODULES}"
.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