1# Build wrapper for the HTTP daemon
2# $MirOS: src/usr.sbin/httpd/Makefile.bsd-wrapper,v 1.12 2008/03/19 23:07:16 tg Exp $
3# $OpenBSD: Makefile.bsd-wrapper,v 1.64 2008/01/08 10:08:31 henning Exp $
4
5.include <bsd.own.mk>
6.include <bsd.sys.mk>
7
8# until this works with bmake and without a Configure script…
9COPTS+=			-std=gnu89
10CFLAGS+=		${COPTS}
11
12#   MirOS Layout
13#<Layout MirOS>
14#    prefix:        /var/www
15#    exec_prefix:   /usr
16#    bindir:        $exec_prefix/bin
17#    sbindir:       $exec_prefix/sbin
18#    libexecdir:    $exec_prefix/libexec/httpd/modules
19#    mandir:        $exec_prefix/share/man
20#    sysconfdir:    $prefix/conf
21#    datadir:       $prefix
22#    iconsdir:      $prefix/icons
23#    htdocsdir:     $prefix/htdocs
24#    manualdir:     $htdocsdir/manual
25#    cgidir:        $prefix/cgi-bin
26#    includedir:    $exec_prefix/libexec/httpd/include
27#    localstatedir: $prefix
28#    runtimedir:    $prefix/logs
29#    logfiledir:    $prefix/logs
30#    proxycachedir: $prefix/proxy
31#</Layout>
32
33HTTPD_PREFIX=		/var/www
34HTTPD_EXEC_PREFIX=	/usr
35HTTPD_BINDIR=		${HTTPD_EXEC_PREFIX}/bin
36HTTPD_SBINDIR=		${HTTPD_EXEC_PREFIX}/sbin
37HTTPD_LIBEXECDIR=	${HTTPD_EXEC_PREFIX}/libexec/httpd/modules
38HTTPD_SYSCONFDIR=	${HTTPD_PREFIX}/conf
39HTTPD_ICONSDIR=		${HTTPD_PREFIX}/icons
40HTTPD_HTDOCSDIR=	${HTTPD_PREFIX}/htdocs
41HTTPD_INCLUDEDIR=	${HTTPD_EXEC_PREFIX}/libexec/httpd/include
42HTTPD_RUNDIR=		${HTTPD_PREFIX}/logs
43HTTPD_LOGDIR=		${HTTPD_PREFIX}/logs
44
45CONFIG_ARGS=	--with-layout=MirOS --enable-module=ssl --enable-suexec \
46		--enable-module=keynote --enable-rule=INET6 \
47		--suexec-caller=www \
48		--suexec-docroot=${HTTPD_HTDOCSDIR:Q} --suexec-userdir=pub \
49		--suexec-logfile=/var/log/suexec_log \
50		--suexec-uidmin=1000 --suexec-gidmin=1000 \
51		--suexec-safepath=/usr/bin:/bin:/usr/local/bin:/usr/mpkg/bin
52
53# This is stupid - to build a DSO module for httpd you not only need to
54# --enable-shared, you need to --enable-module or --enable-shared doesn't
55# do anything.
56
57DSO_MODULE_ARGS=  \
58	--enable-module=so \
59	--enable-module=auth_anon \
60	--enable-shared=auth_anon \
61	--enable-module=expires \
62	--enable-shared=expires \
63	--enable-module=headers \
64	--enable-shared=headers \
65	--enable-module=auth_db \
66	--enable-shared=auth_db \
67	--enable-module=auth_dbm \
68	--enable-shared=auth_dbm \
69	--enable-module=auth_digest \
70	--enable-shared=auth_digest \
71	--enable-module=cern_meta \
72	--enable-shared=cern_meta \
73	--enable-module=define \
74	--enable-shared=define \
75	--enable-module=digest \
76	--enable-shared=digest \
77	--enable-module=info \
78	--enable-shared=info \
79	--enable-module=log_agent \
80	--enable-shared=log_agent \
81	--enable-module=log_referer \
82	--enable-shared=log_referer \
83	--enable-module=mime_magic \
84	--enable-shared=mime_magic \
85	--enable-module=mmap_static \
86	--enable-shared=mmap_static \
87	--enable-module=proxy \
88	--enable-shared=proxy \
89	--enable-module=rewrite \
90	--enable-shared=rewrite \
91	--enable-module=speling \
92	--enable-shared=speling \
93	--enable-module=unique_id \
94	--enable-shared=unique_id \
95	--enable-module=usertrack \
96	--enable-shared=usertrack \
97	--enable-module=vhost_alias \
98	--enable-shared=vhost_alias
99
100INSTALL_MODULES=
101
102# If you support dynamic loading, enable the so module, and build all the
103# modules that come with httpd.
104
105.if !defined(NOPIC) || ${NOPIC:L} == "no"
106CONFIG_ARGS+=  ${DSO_MODULE_ARGS}
107INSTALL_MODULES= \
108	src/modules/experimental/mod_mmap_static.so \
109	src/modules/experimental/mod_auth_digest.so \
110	src/modules/extra/mod_define.so \
111	src/modules/proxy/libproxy.so \
112	src/modules/standard/mod_vhost_alias.so \
113	src/modules/standard/mod_log_agent.so \
114	src/modules/standard/mod_info.so \
115	src/modules/standard/mod_log_referer.so \
116	src/modules/standard/mod_mime_magic.so \
117	src/modules/standard/mod_speling.so \
118	src/modules/standard/mod_rewrite.so \
119	src/modules/standard/mod_auth_dbm.so \
120	src/modules/standard/mod_auth_anon.so \
121	src/modules/standard/mod_auth_db.so \
122	src/modules/standard/mod_digest.so \
123	src/modules/standard/mod_cern_meta.so \
124	src/modules/standard/mod_usertrack.so \
125	src/modules/standard/mod_unique_id.so \
126	src/modules/standard/mod_expires.so \
127	src/modules/standard/mod_headers.so
128.endif
129
130PERLPATH=	/usr/bin/perl
131
132MUNGEDFILES=	${.OBJDIR}/src/ap/Makefile \
133		${.OBJDIR}/src/include/ap_config_auto.h.new \
134		${.OBJDIR}/src/main/Makefile \
135		${.OBJDIR}/src/modules/experimental/Makefile \
136		${.OBJDIR}/src/modules/extra/Makefile \
137		${.OBJDIR}/src/modules/proxy/Makefile \
138		${.OBJDIR}/src/modules/standard/Makefile \
139		${.OBJDIR}/src/modules/keynote/Makefile \
140		${.OBJDIR}/src/modules/ssl/Makefile \
141		${.OBJDIR}/src/modules/ssl/ssl_expr_parse.c \
142		${.OBJDIR}/src/modules/ssl/ssl_expr_parse.h \
143		${.OBJDIR}/src/modules/ssl/ssl_expr_scan.c \
144		${.OBJDIR}/src/modules/Makefile \
145		${.OBJDIR}/src/os/unix/Makefile \
146		${.OBJDIR}/src/regex/Makefile \
147		${.OBJDIR}/src/support/Makefile \
148		${.OBJDIR}/src/apaci \
149		${.OBJDIR}/src/Makefile \
150		${.OBJDIR}/src/Makefile.config \
151		${.OBJDIR}/src/modules.c \
152		${.OBJDIR}/src/Configuration.apaci \
153		${.OBJDIR}/Makefile \
154		${.OBJDIR}/config.status
155
156BINFILES=	src/support/htdigest src/support/htpasswd
157
158SBINFILES= \
159	src/httpd \
160	src/support/logresolve src/support/rotatelogs src/support/suexec
161
162MAN+=	httpd.8 src/support/apxs.8 src/support/dbmmanage.1 \
163	src/support/htdigest.1 src/support/htpasswd.1 src/support/suexec.8 \
164	src/support/logresolve.8 src/support/rotatelogs.8
165
166INCFILES= \
167	src/include/ap.h \
168	src/include/ap_alloc.h  \
169	src/include/ap_compat.h \
170	src/include/ap_config.h \
171	src/include/ap_config_auto.h \
172	src/include/ap_ctx.h \
173	src/include/ap_ctype.h \
174	src/include/ap_hook.h \
175	src/include/ap_md5.h \
176	src/include/ap_mm.h \
177	src/include/ap_mmn.h \
178	src/include/ap_sha1.h \
179	src/include/buff.h \
180	src/include/compat.h \
181	src/include/conf.h \
182	src/include/explain.h \
183	src/include/fnmatch.h \
184	src/include/fdcache.h \
185	src/include/http_conf_globals.h \
186	src/include/http_config.h \
187	src/include/http_core.h \
188	src/include/http_log.h \
189	src/include/http_main.h \
190	src/include/http_protocol.h \
191	src/include/http_request.h \
192	src/include/http_vhost.h \
193	src/include/httpd.h \
194	src/include/multithread.h \
195	src/include/rfc1413.h \
196	src/include/scoreboard.h \
197	src/include/util_date.h \
198	src/include/util_md5.h \
199	src/include/util_script.h \
200	src/include/util_uri.h \
201	src/os/unix/os-inline.c \
202	src/os/unix/os.h \
203	src/include/sa_len.h \
204	src/include/sockaddr_storage.h \
205	src/modules/ssl/mod_ssl.h \
206	src/modules/ssl/ssl_expr.h \
207	src/modules/ssl/ssl_util_ssl.h \
208	src/modules/ssl/ssl_util_table.h
209
210MODCONFDIR= \
211	modules \
212	modules.sample
213
214CONFFILES= \
215	conf/httpd.conf \
216	conf/magic \
217	conf/mime.types
218
219HTDOCS=	\
220	htdocs/index.htm
221
222CGIFILES= \
223	cgi-bin/printenv \
224	cgi-bin/test-cgi
225
226MANUALFILES= \
227	manual/FAQ.html \
228	manual/bind.html \
229	manual/configuring.html \
230	manual/content-negotiation.html \
231	manual/custom-error.html \
232	manual/dns-caveats.html \
233	manual/dso.html \
234	manual/env.html \
235	manual/handler.html \
236	manual/howto/auth.html \
237	manual/howto/cgi.html \
238	manual/howto/htaccess.html \
239	manual/howto/ssi.html \
240	manual/images/custom_errordocs.gif \
241	manual/images/feather.jpg \
242	manual/images/home.gif \
243	manual/images/index.gif \
244	manual/images/mod_rewrite_fig1.fig \
245	manual/images/mod_rewrite_fig1.gif \
246	manual/images/mod_rewrite_fig2.fig \
247	manual/images/mod_rewrite_fig2.gif \
248	manual/images/mod_ssl_sb.gif \
249	manual/images/openssl_ics.gif \
250	manual/images/pixel.gif \
251	manual/images/sub.gif \
252	manual/index.html \
253	manual/invoking.html \
254	manual/keepalive.html \
255	manual/location.html \
256	manual/logs.html \
257	manual/misc/API.html \
258	manual/misc/custom_errordocs.html \
259	manual/misc/descriptors.html \
260	manual/misc/fin_wait_2.html \
261	manual/misc/howto.html \
262	manual/misc/index.html \
263	manual/misc/known_client_problems.html \
264	manual/misc/perf-bsd44.html \
265	manual/misc/perf-tuning.html \
266	manual/misc/perf.html \
267	manual/misc/rewriteguide.html \
268	manual/misc/security_tips.html \
269	manual/misc/tutorials.html \
270	manual/mod/core.html \
271	manual/mod/directive-dict.html \
272	manual/mod/directives.html \
273	manual/mod/index-bytype.html \
274	manual/mod/index.html \
275	manual/mod/mod_access.html \
276	manual/mod/mod_actions.html \
277	manual/mod/mod_alias.html \
278	manual/mod/mod_asis.html \
279	manual/mod/mod_auth.html \
280	manual/mod/mod_auth_anon.html \
281	manual/mod/mod_auth_db.html \
282	manual/mod/mod_auth_dbm.html \
283	manual/mod/mod_auth_digest.html \
284	manual/mod/mod_auth_msql.html \
285	manual/mod/mod_autoindex.html \
286	manual/mod/mod_cern_meta.html \
287	manual/mod/mod_cgi.html \
288	manual/mod/mod_define.html \
289	manual/mod/mod_digest.html \
290	manual/mod/mod_dir.html \
291	manual/mod/mod_env.html \
292	manual/mod/mod_expires.html \
293	manual/mod/mod_headers.html \
294	manual/mod/mod_imap.html \
295	manual/mod/mod_include.html \
296	manual/mod/mod_info.html \
297	manual/mod/mod_log_agent.html \
298	manual/mod/mod_log_common.html \
299	manual/mod/mod_log_config.html \
300	manual/mod/mod_log_referer.html \
301	manual/mod/mod_mime.html \
302	manual/mod/mod_mime_magic.html \
303	manual/mod/mod_mmap_static.html \
304	manual/mod/mod_negotiation.html \
305	manual/mod/mod_proxy.html \
306	manual/mod/mod_rewrite.html \
307	manual/mod/mod_setenvif.html \
308	manual/mod/mod_so.html \
309	manual/mod/mod_speling.html \
310	manual/mod/mod_ssl/index.html \
311	manual/mod/mod_ssl/ssl_compat.gfont000.gif \
312	manual/mod/mod_ssl/ssl_compat.html \
313	manual/mod/mod_ssl/ssl_cover_logo.jpg \
314	manual/mod/mod_ssl/ssl_cover_title.jpg \
315	manual/mod/mod_ssl/ssl_faq.gfont000.gif \
316	manual/mod/mod_ssl/ssl_faq.html \
317	manual/mod/mod_ssl/ssl_glossary.html \
318	manual/mod/mod_ssl/ssl_howto.gfont000.gif \
319	manual/mod/mod_ssl/ssl_howto.html \
320	manual/mod/mod_ssl/ssl_intro.gfont000.gif \
321	manual/mod/mod_ssl/ssl_intro.html \
322	manual/mod/mod_ssl/ssl_intro_fig1.gif \
323	manual/mod/mod_ssl/ssl_intro_fig2.gif \
324	manual/mod/mod_ssl/ssl_intro_fig3.gif \
325	manual/mod/mod_ssl/ssl_overview.gfont000.gif \
326	manual/mod/mod_ssl/ssl_overview.html \
327	manual/mod/mod_ssl/ssl_overview_fig1.gif \
328	manual/mod/mod_ssl/ssl_reference.gfont000.gif \
329	manual/mod/mod_ssl/ssl_reference.html \
330	manual/mod/mod_ssl/ssl_template.head-chapter.gif \
331	manual/mod/mod_ssl/ssl_template.head-num-1.gif \
332	manual/mod/mod_ssl/ssl_template.head-num-2.gif \
333	manual/mod/mod_ssl/ssl_template.head-num-3.gif \
334	manual/mod/mod_ssl/ssl_template.head-num-4.gif \
335	manual/mod/mod_ssl/ssl_template.head-num-5.gif \
336	manual/mod/mod_ssl/ssl_template.head-num-6.gif \
337	manual/mod/mod_ssl/ssl_template.head-num-7.gif \
338	manual/mod/mod_ssl/ssl_template.imgdot-1x1-000000.gif \
339	manual/mod/mod_ssl/ssl_template.imgdot-1x1-transp.gif \
340	manual/mod/mod_ssl/ssl_template.navbut-next-n.gif \
341	manual/mod/mod_ssl/ssl_template.navbut-next-s.gif \
342	manual/mod/mod_ssl/ssl_template.navbut-prev-n.gif \
343	manual/mod/mod_ssl/ssl_template.navbut-prev-s.gif \
344	manual/mod/mod_ssl/ssl_template.title-abstract.gif \
345	manual/mod/mod_ssl/ssl_template.title-compat.gif \
346	manual/mod/mod_ssl/ssl_template.title-faq.gif \
347	manual/mod/mod_ssl/ssl_template.title-gloss.gif \
348	manual/mod/mod_ssl/ssl_template.title-howto.gif \
349	manual/mod/mod_ssl/ssl_template.title-intro.gif \
350	manual/mod/mod_ssl/ssl_template.title-over.gif \
351	manual/mod/mod_ssl/ssl_template.title-preface.gif \
352	manual/mod/mod_ssl/ssl_template.title-ref.gif \
353	manual/mod/mod_ssl/ssl_template.title-toc.gif \
354	manual/mod/mod_ssl/ssl_template.title-tutor.gif \
355	manual/mod/mod_status.html \
356	manual/mod/mod_unique_id.html \
357	manual/mod/mod_userdir.html \
358	manual/mod/mod_usertrack.html \
359	manual/mod/mod_vhost_alias.html \
360	manual/mod/module-dict.html \
361	manual/multilogs.html \
362	manual/process-model.html \
363	manual/programs/apxs.html \
364	manual/programs/dbmmanage.html \
365	manual/programs/htdigest.html \
366	manual/programs/htpasswd.html \
367	manual/programs/httpd.html \
368	manual/programs/index.html \
369	manual/programs/logresolve.html \
370	manual/programs/other.html \
371	manual/programs/rotatelogs.html \
372	manual/programs/suexec.html \
373	manual/sections.html \
374	manual/server-wide.html \
375	manual/sitemap.html \
376	manual/stopping.html \
377	manual/suexec.html \
378	manual/urlmapping.html \
379	manual/vhosts/details.html \
380	manual/vhosts/examples.html \
381	manual/vhosts/fd-limits.html \
382	manual/vhosts/host.html \
383	manual/vhosts/index.html \
384	manual/vhosts/ip-based.html \
385	manual/vhosts/mass.html \
386	manual/vhosts/name-based.html \
387	manual/vhosts/vhosts-in-depth.html \
388	manual/vhosts/virtual-host.html
389
390ICONFILES= \
391	icons/README \
392	icons/a.gif \
393	icons/a.png \
394	icons/alert.black.gif \
395	icons/alert.black.png \
396	icons/alert.red.gif \
397	icons/alert.red.png \
398	icons/back.gif \
399	icons/back.png \
400	icons/ball.gray.gif \
401	icons/ball.gray.png \
402	icons/ball.red.gif \
403	icons/ball.red.png \
404	icons/binary.gif \
405	icons/binary.png \
406	icons/binhex.gif \
407	icons/binhex.png \
408	icons/blank.gif \
409	icons/blank.png \
410	icons/bomb.gif \
411	icons/bomb.png \
412	icons/box1.gif \
413	icons/box1.png \
414	icons/box2.gif \
415	icons/box2.png \
416	icons/broken.gif \
417	icons/broken.png \
418	icons/burst.gif \
419	icons/burst.png \
420	icons/c.gif \
421	icons/c.png \
422	icons/comp.blue.gif \
423	icons/comp.blue.png \
424	icons/comp.gray.gif \
425	icons/comp.gray.png \
426	icons/comp1.gif \
427	icons/comp1.png \
428	icons/comp2.gif \
429	icons/comp2.png \
430	icons/compressed.gif \
431	icons/compressed.png \
432	icons/continued.gif \
433	icons/continued.png \
434	icons/dir.gif \
435	icons/dir.png \
436	icons/dir2.gif \
437	icons/dir2.png \
438	icons/diskimg.gif \
439	icons/diskimg.png \
440	icons/doc.gif \
441	icons/doc.png \
442	icons/down.gif \
443	icons/down.png \
444	icons/dvi.gif \
445	icons/dvi.png \
446	icons/f.gif \
447	icons/f.png \
448	icons/folder.gif \
449	icons/folder.open.gif \
450	icons/folder.open.png \
451	icons/folder.png \
452	icons/folder.sec.gif \
453	icons/folder.sec.png \
454	icons/forward.gif \
455	icons/forward.png \
456	icons/generic.gif \
457	icons/generic.png \
458	icons/generic.red.gif \
459	icons/generic.red.png \
460	icons/generic.sec.gif \
461	icons/generic.sec.png \
462	icons/generic2.gif \
463	icons/generic2.png \
464	icons/generic3.gif \
465	icons/generic3.png \
466	icons/hand.right.gif \
467	icons/hand.right.png \
468	icons/hand.up.gif \
469	icons/hand.up.png \
470	icons/icon.sheet.gif \
471	icons/icon.sheet.png \
472	icons/image.gif \
473	icons/image.png \
474	icons/image1.gif \
475	icons/image1.png \
476	icons/image2.gif \
477	icons/image2.png \
478	icons/image3.gif \
479	icons/image3.png \
480	icons/index.gif \
481	icons/index.png \
482	icons/key.gif \
483	icons/key.png \
484	icons/layout.gif \
485	icons/layout.png \
486	icons/left.gif \
487	icons/left.png \
488	icons/link.gif \
489	icons/link.png \
490	icons/movie.gif \
491	icons/movie.png \
492	icons/p.gif \
493	icons/p.png \
494	icons/patch.gif \
495	icons/patch.png \
496	icons/pdf.gif \
497	icons/pdf.png \
498	icons/pie0.gif \
499	icons/pie0.png \
500	icons/pie1.gif \
501	icons/pie1.png \
502	icons/pie2.gif \
503	icons/pie2.png \
504	icons/pie3.gif \
505	icons/pie3.png \
506	icons/pie4.gif \
507	icons/pie4.png \
508	icons/pie5.gif \
509	icons/pie5.png \
510	icons/pie6.gif \
511	icons/pie6.png \
512	icons/pie7.gif \
513	icons/pie7.png \
514	icons/pie8.gif \
515	icons/pie8.png \
516	icons/portal.gif \
517	icons/portal.png \
518	icons/ps.gif \
519	icons/ps.png \
520	icons/quill.gif \
521	icons/quill.png \
522	icons/rainbow.gif \
523	icons/rainbow.png \
524	icons/right.gif \
525	icons/right.png \
526	icons/screw1.gif \
527	icons/screw1.png \
528	icons/screw2.gif \
529	icons/screw2.png \
530	icons/script.gif \
531	icons/script.png \
532	icons/sound.gif \
533	icons/sound.png \
534	icons/sound1.gif \
535	icons/sound1.png \
536	icons/sound2.gif \
537	icons/sound2.png \
538	icons/sphere1.gif \
539	icons/sphere1.png \
540	icons/sphere2.gif \
541	icons/sphere2.png \
542	icons/tar.gif \
543	icons/tar.png \
544	icons/tex.gif \
545	icons/tex.png \
546	icons/text.gif \
547	icons/text.png \
548	icons/transfer.gif \
549	icons/transfer.png \
550	icons/unknown.gif \
551	icons/unknown.png \
552	icons/up.gif \
553	icons/up.png \
554	icons/uu.gif \
555	icons/uu.png \
556	icons/uuencoded.gif \
557	icons/uuencoded.png \
558	icons/world1.gif \
559	icons/world1.png \
560	icons/world2.gif \
561	icons/world2.png
562
563all: ${.OBJDIR}/config.status
564	@cd ${.OBJDIR} && ${MAKE} OPTIM=${CFLAGS:Q}
565
566BEFOREMAN=${.OBJDIR}/config.status
567
568${.OBJDIR}/config.status : ${.OBJDIR}/config.layout
569	@cd ${.OBJDIR} && CC=${CC:Q} OPTIM=${CFLAGS:Q} \
570	    LD_SHLIB=${CC:Q} PATH=/sbin:/usr/sbin:/bin:/usr/bin \
571	    ${SHELL} configure ${CONFIG_ARGS}
572	diff -u ${.CURDIR}/src/include/ap_config_auto.h ${.OBJDIR}/src/include/ap_config_auto.h.new
573
574.if !exists(${.OBJDIR}/config.layout)
575${.OBJDIR}/config.layout: ${.CURDIR}/config.layout
576	lndir -s -e obj -e obj.${MACHINE_ARCH} -e Makefile.bsd-wrapper \
577	    ${.CURDIR}
578.endif
579
580includes:
581	@-for i in ${INCFILES}; do \
582		j=$$(basename $$i); \
583		echo "Installing ${DESTDIR}${HTTPD_INCLUDEDIR}/$$j"; \
584		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${NONBINMODE} \
585		    ${.CURDIR}/$$i ${DESTDIR}${HTTPD_INCLUDEDIR}; \
586	done
587
588install: maninstall includes
589	${INSTALL} -c -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE} \
590	    ${.CURDIR}/LICENCE.httpd ${DESTDIR}${DOCDIR}/legal/
591	@-for i in ${BINFILES}; do \
592		j=$$(basename $$i); \
593		echo "Installing ${DESTDIR}${HTTPD_BINDIR}/$$j"; \
594		${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -g ${BINGRP} \
595		    -m ${BINMODE} ${.OBJDIR}/$$i ${DESTDIR}${HTTPD_BINDIR}; \
596	done
597	@-for i in ${SBINFILES}; do \
598		j=$$(basename $$i); \
599		echo "Installing ${DESTDIR}${HTTPD_SBINDIR}/$$j"; \
600		${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -g ${BINGRP} \
601		    -m ${BINMODE} ${.OBJDIR}/$$i ${DESTDIR}${HTTPD_SBINDIR}; \
602	done
603	@-for i in ${INSTALL_MODULES}; do \
604		j=$$(basename $$i); \
605		echo "Installing ${DESTDIR}${HTTPD_LIBEXECDIR}/$$j"; \
606		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${NONBINMODE} \
607		    ${.OBJDIR}/$$i ${DESTDIR}${HTTPD_LIBEXECDIR}; \
608	done
609	@d=$$(mktemp -d /tmp/httpdXXXXXXXXXX); \
610	echo "Installing ${DESTDIR}${HTTPD_SBINDIR}/apxs"; \
611	j="sed -e 's;^#!/.*;#!${PERLPATH};' \
612		-e 's;\@prefix\@;${HTTPD_PREFIX};' \
613		-e 's;\@sbindir\@;${HTTPD_SBINDIR};' \
614		-e 's;\@libexecdir\@;${HTTPD_LIBEXECDIR};' \
615		-e 's;\@includedir\@;${HTTPD_INCLUDEDIR};' \
616		-e 's;\@sysconfdir\@;${HTTPD_SYSCONFDIR};' \
617		<${.OBJDIR}/src/support/apxs >$$d/apxs && \
618		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${BINMODE} \
619		$$d/apxs ${DESTDIR}${HTTPD_SBINDIR}"; \
620		echo $$j; \
621		eval $$j; \
622	echo "Installing ${DESTDIR}${HTTPD_BINDIR}/dbmmanage"; \
623	j="sed -e 's;^#!/.*;#!${PERLPATH};' \
624		<${.OBJDIR}/src/support/dbmmanage >$$d/dbmmanage && \
625		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${BINMODE} \
626		$$d/dbmmanage ${DESTDIR}${HTTPD_BINDIR}"; \
627		echo $$j; \
628		eval $$j; \
629	rm -rf $$d
630
631.if ${.OBJDIR} == ${.CURDIR}
632clean: cleanman
633	-@cd ${.OBJDIR} && rm -f ${MUNGEDFILES} && ${MAKE} clean
634.else
635clean: cleanman
636	@cd ${.OBJDIR} && find . \! -type d -print0 | xargs -0r rm
637.endif
638
639cleandir: clean
640
641prereq:
642
643test:
644
645depend:
646
647lint:
648
649tags:
650
651.if defined(NOMAN) && ${NOMAN:L} != "no"
652maninstall:
653	@echo NOMAN is set
654cleanman:
655	@echo NOMAN is set
656.endif
657
658distribution:
659	@-for i in ${MODCONFDIR}; do \
660		echo "Installing ${DESTDIR}${HTTPD_SYSCONFDIR}/$$i"; \
661		${INSTALL} -d -m 755 ${DESTDIR}${HTTPD_SYSCONFDIR}/$$i; \
662	done
663	@-for i in ${CONFFILES}; do \
664		j=$$(dirname $$i); \
665		echo "Installing ${DESTDIR}${HTTPD_PREFIX}/$$i"; \
666		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${NONBINMODE} \
667		    ${.OBJDIR}/$$i ${DESTDIR}${HTTPD_PREFIX}/$$j/; \
668	done
669	@-for i in ${HTDOCS}; do \
670		j=$$(dirname $$i); \
671		echo "Installing ${DESTDIR}${HTTPD_PREFIX}/$$i"; \
672		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${NONBINMODE} \
673		    ${.OBJDIR}/$$i ${DESTDIR}${HTTPD_PREFIX}/$$j/; \
674	done
675	@-for i in ${MANUALFILES}; do \
676		j=$$(dirname $$i); \
677		echo "Installing ${DESTDIR}${HTTPD_HTDOCSDIR}/$$i"; \
678		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${NONBINMODE} \
679		    ${.OBJDIR}/htdocs/$$i ${DESTDIR}${HTTPD_HTDOCSDIR}/$$j/; \
680	done
681	@-for i in ${CGIFILES}; do \
682		j=$$(dirname $$i); \
683		echo "Installing ${DESTDIR}${HTTPD_PREFIX}/$$i"; \
684		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m 000 \
685		    ${.OBJDIR}/$$i ${DESTDIR}${HTTPD_PREFIX}/$$j/; \
686	done
687	@-for i in ${ICONFILES}; do \
688		j=$$(dirname $$i); \
689		echo "Installing ${DESTDIR}${HTTPD_PREFIX}/$$i"; \
690		${INSTALL} ${INSTALL_COPY} -g ${BINGRP} -m ${NONBINMODE} \
691		    ${.OBJDIR}/$$i ${DESTDIR}${HTTPD_PREFIX}/$$j/; \
692	done
693
694.include <bsd.obj.mk>
695.include <bsd.subdir.mk>
696.if !defined(NOMAN) || ${NOMAN:L} == "no"
697.  include <bsd.man.mk>
698.endif
699