xref: /netbsd-src/libexec/httpd/Makefile (revision 78e0157a414e6b12bb99c06f69ae8701237308fd)
1*78e0157aSrillig#	$NetBSD: Makefile,v 1.33 2024/10/04 08:45:46 rillig Exp $
260dbe745Stls#
3df5be573Smrg#	$eterna: Makefile,v 1.30 2010/07/11 00:34:27 mrg Exp $
4ce206308Smrg#
5ce206308Smrg# berkeley (netbsd) makefile.  see Makefile.boot for other systems.
660dbe745Stls
760dbe745Stls# compile-time options are:
8df5be573Smrg#	NO_DEBUG		/* don't include debugging support */
960dbe745Stls#	NO_USER_SUPPORT		/* don't support /~user requests */
1060dbe745Stls#	NO_CGIBIN_SUPPORT	/* don't support cgi-bin requests */
1160dbe745Stls#	NO_DIRINDEX_SUPPORT	/* don't support directory indexing */
1260dbe745Stls#	NO_DAEMON_MODE		/* don't support daemon mode */
1360dbe745Stls#	NO_DYNAMIC_CONTENT	/* don't support dynamic content updates */
1460dbe745Stls#	NO_SSL_SUPPORT		/* don't support ssl (https) */
1560dbe745Stls#	DO_HTPASSWD		/* support .htpasswd files */
16cb23152cSmbalmer#	NO_LUA_SUPPORT		/* don't support Lua for dynamic content */
17c0b4b2d2Sjruoho#	NO_BLOCKLIST_SUPPORT	/* don't support blocklist */
18df5be573Smrg#
19e8204d05Smrg# other system specific defines:
20e8204d05Smrg#	HAVE_NBUTIL_H		/* netbsd compat is in <nbutil.h>
21e8204d05Smrg#				(don't forget to also enable -lnbutil)
22e8204d05Smrg#
23df5be573Smrg# these are usually set via the "COPTS" variable, or some other method
24df5be573Smrg# for setting CFLAGS relevant to your make, eg
25df5be573Smrg#   % make COPTS="-DDO_HTPASSWD"
26df5be573Smrg
27dbfaed23SreedCOPTS+=	-DDO_HTPASSWD
281d0520b6SmrgPROG=	bozohttpd
291d0520b6SmrgLINKS=	${BINDIR}/bozohttpd ${BINDIR}/httpd
301d0520b6SmrgMAN=	bozohttpd.8
311d0520b6SmrgMLINKS+=bozohttpd.8 httpd.8
3260dbe745StlsSRCS=	bozohttpd.c ssl-bozo.c auth-bozo.c cgi-bozo.c daemon-bozo.c \
33cb23152cSmbalmer	tilde-luzah-bozo.c dir-index-bozo.c content-bozo.c lua-bozo.c
34ce206308SmrgSRCS+=	main.c
3560dbe745Stls
36bbe2f6f7SchristosCOPTS.ssl-bozo.c+=-Wno-error=deprecated-declarations
37bbe2f6f7Schristos
38c0b4b2d2SjruohoLDADD=	-lblocklist -lcrypt -llua -lm
39c0b4b2d2SjruohoDPADD=	${LIBBLOCKLIST} ${LIBCRYPT} ${LIBLUA} ${LIBM}
40e972654dSmrg
41ce206308SmrgWARNS?=	4
42*78e0157aSrilligLINTFLAGS+=	-X 161	# constant in conditional context
43*78e0157aSrilligLINTFLAGS+=	-X 193	# statement not reached
44*78e0157aSrilligLINTFLAGS+=	-X 239	# constant operand to '!'
45ce206308Smrg
46e8204d05Smrg.if defined(.OS.MAKE)
47e8204d05SmrgOPSYS=	${.OS.MAKE}
48e8204d05Smrg.else
49e8204d05SmrgOPSYS:=	${:!uname -s!:S/-//g:S/\///g}
50e8204d05Smrg.endif
51e8204d05Smrg
52e8204d05Smrg.if ${OPSYS} == "QNX"
53e8204d05SmrgCPPFLAGS+=	-DHAVE_NBUTIL_H
54e8204d05SmrgLDADD+=		-lnbutil
55e8204d05Smrg.endif
56e8204d05Smrg
57e972654dSmrgLDADD+=	-lssl -lcrypto
58e972654dSmrgDPADD+=	${LIBSSL} ${LIBCRYPTO}
59e972654dSmrg
60dbf68b5fSmrg#
61dbf68b5fSmrg# Build release things.
62dbf68b5fSmrg#
63dbf68b5fSmrgNROFF?=		nroff
64dbf68b5fSmrg
65dbf68b5fSmrgPREHTMLFROB=	sed \
66dbf68b5fSmrg		    -e 's/&/\&amp;/' \
67dbf68b5fSmrg		    -e 's/</\&lt;/' \
68dbf68b5fSmrg		    -e 's/>/\&gt;/'
69dbf68b5fSmrg
70dbf68b5fSmrgHTMLFROB=	sed \
71dbf68b5fSmrg		    -e 's/\([MC] "[^"]*\)<dd>$$/\1<b>"<\/b><dd>/' \
72dbf68b5fSmrg		    -e 's/'"''"'/\&rdquo;/' \
73dbf68b5fSmrg		    -e 's/""/\&ldquo;/' \
74dbf68b5fSmrg		    -e 's/<a href="\.\.\/html[^>]*>\(.*\)<\/a>/\1/'
75dbf68b5fSmrg
76dbf68b5fSmrgTXTFROB=	col -b
77dbf68b5fSmrg
78dbf68b5fSmrgbozohttpd.8.html: bozohttpd.8
79dbf68b5fSmrg	$(PREHTMLFROB) $> | $(NROFF) -mdoc2html | $(HTMLFROB) > $@
80dbf68b5fSmrg
81dbf68b5fSmrgbozohttpd.8.txt: bozohttpd.8
82dbf68b5fSmrg	$(NROFF) -mdoc -Tascii $> | $(TXTFROB) > $@
83dbf68b5fSmrg
84dbf68b5fSmrgCLEANFILES+=	bozohttpd.8.html bozohttpd.8.txt
85dbf68b5fSmrg
86d1eeb824Smrgcheck:
87d1eeb824Smrg	cd ${.CURDIR}/testsuite && ${MAKE} check
88d1eeb824Smrg
893803a1bfSmrg.if empty(BOZOVER)
903803a1bfSmrgBOZOVER!=	sed -n \
913803a1bfSmrg		    -e s/\"$$// -e \
927ddfa614Smrg		    's/\#define[ 	]*SERVER_SOFTWARE[ 	]*\"bozohttpd\///p'  ${.PARSEDIR}/bozohttpd.c
933803a1bfSmrg.endif
943803a1bfSmrg
951a1e3035Smrg# Create a distfile: uses /tmp
961a1e3035SmrgBASE=bozohttpd-${BOZOVER}
971a1e3035SmrgTAR=${BASE}.tar
981a1e3035Smrgexport-distfile:
991a1e3035Smrg	dir=`mktemp -d /tmp/bozo-export-XXXXXX`; \
1001a1e3035Smrg	cd "$${dir}" || exit; \
1011a1e3035Smrg	mkdir ${BASE}; \
1021a1e3035Smrg	( cd ${BASE} || exit; \
1031a1e3035Smrg	  cp -r "${.CURDIR}/." "."; \
1041a1e3035Smrg	  find . -name .CVS | xargs rm -r; \
1051a1e3035Smrg	); \
1061a1e3035Smrg	pax -wf ${TAR} ${BASE}; \
1077f3f4479Smrg	gzip -nc9 ${TAR} > ${TAR}.gz; \
108681e9c9bSmrg	bzip2 -9 ${TAR}; \
109681e9c9bSmrg	echo "Exported two files in $${dir}:"; \
110681e9c9bSmrg	echo ${TAR}.gz; \
111681e9c9bSmrg	echo ${TAR}.bz2
1121a1e3035Smrg
11360dbe745Stls.include <bsd.prog.mk>
114