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 27 COPTS+= -DDO_HTPASSWD 28 PROG= bozohttpd 29 LINKS= ${BINDIR}/bozohttpd ${BINDIR}/httpd 30 MAN= bozohttpd.8 31 MLINKS+=bozohttpd.8 httpd.8 32 SRCS= 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 34 SRCS+= main.c 35 36 COPTS.ssl-bozo.c+=-Wno-error=deprecated-declarations 37 38 LDADD= -lblocklist -lcrypt -llua -lm 39 DPADD= ${LIBBLOCKLIST} ${LIBCRYPT} ${LIBLUA} ${LIBM} 40 41 WARNS?= 4 42 LINTFLAGS+= -X 161 # constant in conditional context 43 LINTFLAGS+= -X 193 # statement not reached 44 LINTFLAGS+= -X 239 # constant operand to '!' 45 46 .if defined(.OS.MAKE) 47 OPSYS= ${.OS.MAKE} 48 .else 49 OPSYS:= ${:!uname -s!:S/-//g:S/\///g} 50 .endif 51 52 .if ${OPSYS} == "QNX" 53 CPPFLAGS+= -DHAVE_NBUTIL_H 54 LDADD+= -lnbutil 55 .endif 56 57 LDADD+= -lssl -lcrypto 58 DPADD+= ${LIBSSL} ${LIBCRYPTO} 59 60 # 61 # Build release things. 62 # 63 NROFF?= nroff 64 65 PREHTMLFROB= sed \ 66 -e 's/&/\&/' \ 67 -e 's/</\</' \ 68 -e 's/>/\>/' 69 70 HTMLFROB= sed \ 71 -e 's/\([MC] "[^"]*\)<dd>$$/\1<b>"<\/b><dd>/' \ 72 -e 's/'"''"'/\”/' \ 73 -e 's/""/\“/' \ 74 -e 's/<a href="\.\.\/html[^>]*>\(.*\)<\/a>/\1/' 75 76 TXTFROB= col -b 77 78 bozohttpd.8.html: bozohttpd.8 79 $(PREHTMLFROB) $> | $(NROFF) -mdoc2html | $(HTMLFROB) > $@ 80 81 bozohttpd.8.txt: bozohttpd.8 82 $(NROFF) -mdoc -Tascii $> | $(TXTFROB) > $@ 83 84 CLEANFILES+= bozohttpd.8.html bozohttpd.8.txt 85 86 check: 87 cd ${.CURDIR}/testsuite && ${MAKE} check 88 89 .if empty(BOZOVER) 90 BOZOVER!= 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 96 BASE=bozohttpd-${BOZOVER} 97 TAR=${BASE}.tar 98 export-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