Makefile revision 1.32
11.32Schristos#	$NetBSD: Makefile,v 1.32 2023/05/09 01:47:21 christos Exp $
21.2Stls#
31.12Smrg#	$eterna: Makefile,v 1.30 2010/07/11 00:34:27 mrg Exp $
41.11Smrg#
51.11Smrg# berkeley (netbsd) makefile.  see Makefile.boot for other systems.
61.1Stls
71.1Stls# compile-time options are:
81.12Smrg#	NO_DEBUG		/* don't include debugging support */
91.1Stls#	NO_USER_SUPPORT		/* don't support /~user requests */
101.1Stls#	NO_CGIBIN_SUPPORT	/* don't support cgi-bin requests */
111.1Stls#	NO_DIRINDEX_SUPPORT	/* don't support directory indexing */
121.1Stls#	NO_DAEMON_MODE		/* don't support daemon mode */
131.1Stls#	NO_DYNAMIC_CONTENT	/* don't support dynamic content updates */
141.1Stls#	NO_SSL_SUPPORT		/* don't support ssl (https) */
151.1Stls#	DO_HTPASSWD		/* support .htpasswd files */
161.16Smbalmer#	NO_LUA_SUPPORT		/* don't support Lua for dynamic content */
171.29Sjruoho#	NO_BLOCKLIST_SUPPORT	/* don't support blocklist */
181.12Smrg#
191.24Smrg# other system specific defines:
201.24Smrg#	HAVE_NBUTIL_H		/* netbsd compat is in <nbutil.h>
211.24Smrg#				(don't forget to also enable -lnbutil)
221.24Smrg#
231.12Smrg# these are usually set via the "COPTS" variable, or some other method
241.12Smrg# for setting CFLAGS relevant to your make, eg
251.12Smrg#   % make COPTS="-DDO_HTPASSWD"
261.12Smrg
271.3SreedCOPTS+=	-DDO_HTPASSWD
281.23SmrgPROG=	bozohttpd
291.23SmrgLINKS=	${BINDIR}/bozohttpd ${BINDIR}/httpd
301.23SmrgMAN=	bozohttpd.8
311.23SmrgMLINKS+=bozohttpd.8 httpd.8
321.1StlsSRCS=	bozohttpd.c ssl-bozo.c auth-bozo.c cgi-bozo.c daemon-bozo.c \
331.16Smbalmer	tilde-luzah-bozo.c dir-index-bozo.c content-bozo.c lua-bozo.c
341.11SmrgSRCS+=	main.c
351.1Stls
361.32SchristosCOPTS.ssl-bozo.c+=-Wno-error=deprecated-declarations
371.32Schristos
381.29SjruohoLDADD=	-lblocklist -lcrypt -llua -lm
391.29SjruohoDPADD=	${LIBBLOCKLIST} ${LIBCRYPT} ${LIBLUA} ${LIBM}
401.5Smrg
411.11SmrgWARNS?=	4
421.11Smrg
431.24Smrg.if defined(.OS.MAKE)
441.24SmrgOPSYS=	${.OS.MAKE}
451.24Smrg.else
461.24SmrgOPSYS:=	${:!uname -s!:S/-//g:S/\///g}
471.24Smrg.endif
481.24Smrg
491.24Smrg.if ${OPSYS} == "QNX"
501.24SmrgCPPFLAGS+=	-DHAVE_NBUTIL_H
511.24SmrgLDADD+=		-lnbutil
521.24Smrg.endif
531.24Smrg
541.5SmrgLDADD+=	-lssl -lcrypto
551.5SmrgDPADD+=	${LIBSSL} ${LIBCRYPTO}
561.5Smrg
571.13Smrg#
581.13Smrg# Build release things.
591.13Smrg#
601.13SmrgNROFF?=		nroff
611.15Smbalmer
621.13SmrgPREHTMLFROB=	sed \
631.13Smrg		    -e 's/&/\&amp;/' \
641.13Smrg		    -e 's/</\&lt;/' \
651.13Smrg		    -e 's/>/\&gt;/'
661.13Smrg
671.13SmrgHTMLFROB=	sed \
681.13Smrg		    -e 's/\([MC] "[^"]*\)<dd>$$/\1<b>"<\/b><dd>/' \
691.13Smrg		    -e 's/'"''"'/\&rdquo;/' \
701.13Smrg		    -e 's/""/\&ldquo;/' \
711.13Smrg		    -e 's/<a href="\.\.\/html[^>]*>\(.*\)<\/a>/\1/'
721.13Smrg
731.13SmrgTXTFROB=	col -b
741.13Smrg
751.13Smrgbozohttpd.8.html: bozohttpd.8
761.13Smrg	$(PREHTMLFROB) $> | $(NROFF) -mdoc2html | $(HTMLFROB) > $@
771.15Smbalmer
781.13Smrgbozohttpd.8.txt: bozohttpd.8
791.13Smrg	$(NROFF) -mdoc -Tascii $> | $(TXTFROB) > $@
801.13Smrg
811.13SmrgCLEANFILES+=	bozohttpd.8.html bozohttpd.8.txt
821.13Smrg
831.28Smrgcheck:
841.28Smrg	cd ${.CURDIR}/testsuite && ${MAKE} check
851.28Smrg
861.30Smrg.if empty(BOZOVER)
871.30SmrgBOZOVER!=	sed -n \
881.30Smrg		    -e s/\"$$// -e \
891.31Smrg		    's/\#define[ 	]*SERVER_SOFTWARE[ 	]*\"bozohttpd\///p'  ${.PARSEDIR}/bozohttpd.c
901.30Smrg.endif
911.30Smrg
921.14Smrg# Create a distfile: uses /tmp
931.14SmrgBASE=bozohttpd-${BOZOVER}
941.14SmrgTAR=${BASE}.tar
951.14Smrgexport-distfile:
961.14Smrg	dir=`mktemp -d /tmp/bozo-export-XXXXXX`; \
971.14Smrg	cd "$${dir}" || exit; \
981.14Smrg	mkdir ${BASE}; \
991.14Smrg	( cd ${BASE} || exit; \
1001.14Smrg	  cp -r "${.CURDIR}/." "."; \
1011.14Smrg	  find . -name .CVS | xargs rm -r; \
1021.14Smrg	); \
1031.14Smrg	pax -wf ${TAR} ${BASE}; \
1041.20Smrg	gzip -nc9 ${TAR} > ${TAR}.gz; \
1051.22Smrg	bzip2 -9 ${TAR}; \
1061.22Smrg	echo "Exported two files in $${dir}:"; \
1071.22Smrg	echo ${TAR}.gz; \
1081.22Smrg	echo ${TAR}.bz2
1091.14Smrg
1101.1Stls.include <bsd.prog.mk>
111