xref: /netbsd-src/libexec/httpd/Makefile (revision 78e0157a414e6b12bb99c06f69ae8701237308fd)
1#	$NetBSD: Makefile,v 1.33 2024/10/04 08:45:46 rillig Exp $
2#
3#	$eterna: Makefile,v 1.30 2010/07/11 00:34:27 mrg Exp $
4#
5# berkeley (netbsd) makefile.  see Makefile.boot for other systems.
6
7# compile-time options are:
8#	NO_DEBUG		/* don't include debugging support */
9#	NO_USER_SUPPORT		/* don't support /~user requests */
10#	NO_CGIBIN_SUPPORT	/* don't support cgi-bin requests */
11#	NO_DIRINDEX_SUPPORT	/* don't support directory indexing */
12#	NO_DAEMON_MODE		/* don't support daemon mode */
13#	NO_DYNAMIC_CONTENT	/* don't support dynamic content updates */
14#	NO_SSL_SUPPORT		/* don't support ssl (https) */
15#	DO_HTPASSWD		/* support .htpasswd files */
16#	NO_LUA_SUPPORT		/* don't support Lua for dynamic content */
17#	NO_BLOCKLIST_SUPPORT	/* don't support blocklist */
18#
19# other system specific defines:
20#	HAVE_NBUTIL_H		/* netbsd compat is in <nbutil.h>
21#				(don't forget to also enable -lnbutil)
22#
23# these are usually set via the "COPTS" variable, or some other method
24# for setting CFLAGS relevant to your make, eg
25#   % make COPTS="-DDO_HTPASSWD"
26
27COPTS+=	-DDO_HTPASSWD
28PROG=	bozohttpd
29LINKS=	${BINDIR}/bozohttpd ${BINDIR}/httpd
30MAN=	bozohttpd.8
31MLINKS+=bozohttpd.8 httpd.8
32SRCS=	bozohttpd.c ssl-bozo.c auth-bozo.c cgi-bozo.c daemon-bozo.c \
33	tilde-luzah-bozo.c dir-index-bozo.c content-bozo.c lua-bozo.c
34SRCS+=	main.c
35
36COPTS.ssl-bozo.c+=-Wno-error=deprecated-declarations
37
38LDADD=	-lblocklist -lcrypt -llua -lm
39DPADD=	${LIBBLOCKLIST} ${LIBCRYPT} ${LIBLUA} ${LIBM}
40
41WARNS?=	4
42LINTFLAGS+=	-X 161	# constant in conditional context
43LINTFLAGS+=	-X 193	# statement not reached
44LINTFLAGS+=	-X 239	# constant operand to '!'
45
46.if defined(.OS.MAKE)
47OPSYS=	${.OS.MAKE}
48.else
49OPSYS:=	${:!uname -s!:S/-//g:S/\///g}
50.endif
51
52.if ${OPSYS} == "QNX"
53CPPFLAGS+=	-DHAVE_NBUTIL_H
54LDADD+=		-lnbutil
55.endif
56
57LDADD+=	-lssl -lcrypto
58DPADD+=	${LIBSSL} ${LIBCRYPTO}
59
60#
61# Build release things.
62#
63NROFF?=		nroff
64
65PREHTMLFROB=	sed \
66		    -e 's/&/\&amp;/' \
67		    -e 's/</\&lt;/' \
68		    -e 's/>/\&gt;/'
69
70HTMLFROB=	sed \
71		    -e 's/\([MC] "[^"]*\)<dd>$$/\1<b>"<\/b><dd>/' \
72		    -e 's/'"''"'/\&rdquo;/' \
73		    -e 's/""/\&ldquo;/' \
74		    -e 's/<a href="\.\.\/html[^>]*>\(.*\)<\/a>/\1/'
75
76TXTFROB=	col -b
77
78bozohttpd.8.html: bozohttpd.8
79	$(PREHTMLFROB) $> | $(NROFF) -mdoc2html | $(HTMLFROB) > $@
80
81bozohttpd.8.txt: bozohttpd.8
82	$(NROFF) -mdoc -Tascii $> | $(TXTFROB) > $@
83
84CLEANFILES+=	bozohttpd.8.html bozohttpd.8.txt
85
86check:
87	cd ${.CURDIR}/testsuite && ${MAKE} check
88
89.if empty(BOZOVER)
90BOZOVER!=	sed -n \
91		    -e s/\"$$// -e \
92		    's/\#define[ 	]*SERVER_SOFTWARE[ 	]*\"bozohttpd\///p'  ${.PARSEDIR}/bozohttpd.c
93.endif
94
95# Create a distfile: uses /tmp
96BASE=bozohttpd-${BOZOVER}
97TAR=${BASE}.tar
98export-distfile:
99	dir=`mktemp -d /tmp/bozo-export-XXXXXX`; \
100	cd "$${dir}" || exit; \
101	mkdir ${BASE}; \
102	( cd ${BASE} || exit; \
103	  cp -r "${.CURDIR}/." "."; \
104	  find . -name .CVS | xargs rm -r; \
105	); \
106	pax -wf ${TAR} ${BASE}; \
107	gzip -nc9 ${TAR} > ${TAR}.gz; \
108	bzip2 -9 ${TAR}; \
109	echo "Exported two files in $${dir}:"; \
110	echo ${TAR}.gz; \
111	echo ${TAR}.bz2
112
113.include <bsd.prog.mk>
114