1#         $NetBSD: Makefile,v 1.35 2025/04/10 20:22:18 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 193    # statement not reached
43
44.if defined(.OS.MAKE)
45OPSYS=    ${.OS.MAKE}
46.else
47OPSYS:=   ${:!uname -s!:S/-//g:S/\///g}
48.endif
49
50.if ${OPSYS} == "QNX"
51CPPFLAGS+=          -DHAVE_NBUTIL_H
52LDADD+=             -lnbutil
53.endif
54
55LDADD+=   -lssl -lcrypto
56DPADD+=   ${LIBSSL} ${LIBCRYPTO}
57
58#
59# Build release things.
60#
61NROFF?=             nroff
62
63PREHTMLFROB=        sed \
64                        -e 's/&/\&amp;/' \
65                        -e 's/</\&lt;/' \
66                        -e 's/>/\&gt;/'
67
68HTMLFROB= sed \
69                        -e 's/\([MC] "[^"]*\)<dd>$$/\1<b>"<\/b><dd>/' \
70                        -e 's/'"''"'/\&rdquo;/' \
71                        -e 's/""/\&ldquo;/' \
72                        -e 's/<a href="\.\.\/html[^>]*>\(.*\)<\/a>/\1/'
73
74TXTFROB=  col -b
75
76bozohttpd.8.html: bozohttpd.8
77          $(PREHTMLFROB) $> | $(NROFF) -mdoc2html | $(HTMLFROB) > $@
78
79bozohttpd.8.txt: bozohttpd.8
80          $(NROFF) -mdoc -Tascii $> | $(TXTFROB) > $@
81
82CLEANFILES+=        bozohttpd.8.html bozohttpd.8.txt
83
84check:
85          cd ${.CURDIR}/testsuite && ${MAKE} check
86
87.if empty(BOZOVER)
88BOZOVER!= sed -n \
89                        -e s/\"$$// -e \
90                        's/\#define[    ]*SERVER_SOFTWARE[  ]*\"bozohttpd\///p'  ${.PARSEDIR}/bozohttpd.c
91.endif
92
93# Create a distfile: uses /tmp
94BASE=bozohttpd-${BOZOVER}
95TAR=${BASE}.tar
96export-distfile:
97          dir=`mktemp -d /tmp/bozo-export-XXXXXX`; \
98          cd "$${dir}" || exit; \
99          mkdir ${BASE}; \
100          ( cd ${BASE} || exit; \
101            cp -r "${.CURDIR}/." "."; \
102            find . -name .CVS | xargs rm -r; \
103          ); \
104          pax -wf ${TAR} ${BASE}; \
105          gzip -nc9 ${TAR} > ${TAR}.gz; \
106          bzip2 -9 ${TAR}; \
107          echo "Exported two files in $${dir}:"; \
108          echo ${TAR}.gz; \
109          echo ${TAR}.bz2
110
111.include <bsd.prog.mk>
112