xref: /freebsd/contrib/mandoc/configure (revision c1c95add8c80843ba15d784f95c361d795b1f593)
161d06d6bSBaptiste Daroussin#!/bin/sh
261d06d6bSBaptiste Daroussin#
3*c1c95addSBrooks Davis# $Id: configure,v 1.83 2023/10/19 11:45:42 schwarze Exp $
461d06d6bSBaptiste Daroussin#
56d38604fSBaptiste Daroussin# Copyright (c) 2014-2021 Ingo Schwarze <schwarze@openbsd.org>
661d06d6bSBaptiste Daroussin#
761d06d6bSBaptiste Daroussin# Permission to use, copy, modify, and distribute this software for any
861d06d6bSBaptiste Daroussin# purpose with or without fee is hereby granted, provided that the above
961d06d6bSBaptiste Daroussin# copyright notice and this permission notice appear in all copies.
1061d06d6bSBaptiste Daroussin#
1161d06d6bSBaptiste Daroussin# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1261d06d6bSBaptiste Daroussin# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1361d06d6bSBaptiste Daroussin# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1461d06d6bSBaptiste Daroussin# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1561d06d6bSBaptiste Daroussin# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1661d06d6bSBaptiste Daroussin# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1761d06d6bSBaptiste Daroussin# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1861d06d6bSBaptiste Daroussin
1961d06d6bSBaptiste Daroussinset -e
2061d06d6bSBaptiste Daroussin
2161d06d6bSBaptiste Daroussin[ -w config.log ] && mv config.log config.log.old
2261d06d6bSBaptiste Daroussin[ -w config.h   ] && mv config.h config.h.old
2361d06d6bSBaptiste Daroussin
2461d06d6bSBaptiste Daroussin# Output file descriptor usage:
2561d06d6bSBaptiste Daroussin# 1 (stdout): config.h, Makefile.local
2661d06d6bSBaptiste Daroussin# 2 (stderr): original stderr, usually to the console
2761d06d6bSBaptiste Daroussin# 3: config.log
2861d06d6bSBaptiste Daroussin
2961d06d6bSBaptiste Daroussinexec 3> config.log
3061d06d6bSBaptiste Daroussinecho "file config.log: writing..."
3161d06d6bSBaptiste Daroussin
3261d06d6bSBaptiste Daroussin# --- default settings -------------------------------------------------
3361d06d6bSBaptiste Daroussin# Initialize all variables here,
3461d06d6bSBaptiste Daroussin# such that nothing can leak in from the environment.
3561d06d6bSBaptiste Daroussin
366d38604fSBaptiste DaroussinSOURCEDIR=`dirname "${0}"`
3761d06d6bSBaptiste Daroussin
3861d06d6bSBaptiste DaroussinMANPATH_BASE="/usr/share/man:/usr/X11R6/man"
3961d06d6bSBaptiste DaroussinMANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man"
40*c1c95addSBrooks DavisDEBUG_MEMORY=0
417295610fSBaptiste DaroussinOSENUM=
4261d06d6bSBaptiste DaroussinOSNAME=
4361d06d6bSBaptiste DaroussinUTF8_LOCALE=
4461d06d6bSBaptiste Daroussin
456d38604fSBaptiste DaroussinAR=ar
466d38604fSBaptiste DaroussinCC=cc
4761d06d6bSBaptiste DaroussinCFLAGS=
486d38604fSBaptiste DaroussinFATAL=0
4961d06d6bSBaptiste DaroussinLDADD=
5061d06d6bSBaptiste DaroussinLDFLAGS=
5161d06d6bSBaptiste DaroussinLD_NANOSLEEP=
5261d06d6bSBaptiste DaroussinLD_OHASH=
5361d06d6bSBaptiste DaroussinLD_RECVMSG=
5461d06d6bSBaptiste DaroussinSTATIC=
5561d06d6bSBaptiste Daroussin
5661d06d6bSBaptiste DaroussinBUILD_CGI=0
5761d06d6bSBaptiste DaroussinBUILD_CATMAN=0
5861d06d6bSBaptiste DaroussinINSTALL_LIBMANDOC=0
5961d06d6bSBaptiste Daroussin
606d38604fSBaptiste DaroussinHAVE_ATTRIBUTE=
6161d06d6bSBaptiste DaroussinHAVE_CMSG=
6261d06d6bSBaptiste DaroussinHAVE_DIRENT_NAMLEN=
6361d06d6bSBaptiste DaroussinHAVE_EFTYPE=
6461d06d6bSBaptiste DaroussinHAVE_ENDIAN=
6561d06d6bSBaptiste DaroussinHAVE_ERR=
6661d06d6bSBaptiste DaroussinHAVE_FTS=
6761d06d6bSBaptiste DaroussinHAVE_FTS_COMPARE_CONST=
6861d06d6bSBaptiste DaroussinHAVE_GETLINE=
6961d06d6bSBaptiste DaroussinHAVE_GETSUBOPT=
7061d06d6bSBaptiste DaroussinHAVE_ISBLANK=
717295610fSBaptiste DaroussinHAVE_LESS_T=
7261d06d6bSBaptiste DaroussinHAVE_MKDTEMP=
736d38604fSBaptiste DaroussinHAVE_MKSTEMPS=
7461d06d6bSBaptiste DaroussinHAVE_NANOSLEEP=
7561d06d6bSBaptiste DaroussinHAVE_NTOHL=
7661d06d6bSBaptiste DaroussinHAVE_O_DIRECTORY=
7761d06d6bSBaptiste DaroussinHAVE_OHASH=
7861d06d6bSBaptiste DaroussinHAVE_PATH_MAX=
7961d06d6bSBaptiste DaroussinHAVE_PLEDGE=
8061d06d6bSBaptiste DaroussinHAVE_PROGNAME=
8161d06d6bSBaptiste DaroussinHAVE_REALLOCARRAY=
8261d06d6bSBaptiste DaroussinHAVE_RECALLOCARRAY=
8361d06d6bSBaptiste DaroussinHAVE_RECVMSG=
8461d06d6bSBaptiste DaroussinHAVE_REWB_BSD=
8561d06d6bSBaptiste DaroussinHAVE_REWB_SYSV=
8661d06d6bSBaptiste DaroussinHAVE_SANDBOX_INIT=
8761d06d6bSBaptiste DaroussinHAVE_STRCASESTR=
8861d06d6bSBaptiste DaroussinHAVE_STRINGLIST=
8961d06d6bSBaptiste DaroussinHAVE_STRLCAT=
9061d06d6bSBaptiste DaroussinHAVE_STRLCPY=
9161d06d6bSBaptiste DaroussinHAVE_STRNDUP=
9261d06d6bSBaptiste DaroussinHAVE_STRPTIME=
9361d06d6bSBaptiste DaroussinHAVE_STRSEP=
9461d06d6bSBaptiste DaroussinHAVE_STRTONUM=
9561d06d6bSBaptiste DaroussinHAVE_SYS_ENDIAN=
9661d06d6bSBaptiste DaroussinHAVE_VASPRINTF=
9761d06d6bSBaptiste DaroussinHAVE_WCHAR=
9861d06d6bSBaptiste Daroussin
997295610fSBaptiste DaroussinNEED_GNU_SOURCE=0
1007295610fSBaptiste DaroussinNEED_OPENBSD_SOURCE=0
1016d38604fSBaptiste DaroussinNEED_XPG4_2=0
1026d38604fSBaptiste Daroussin
103*c1c95addSBrooks DavisDEBUG_OBJS=
1046d38604fSBaptiste DaroussinMANDOC_COBJS=
1056d38604fSBaptiste DaroussinSOELIM_COBJS=
1067295610fSBaptiste Daroussin
10761d06d6bSBaptiste DaroussinPREFIX="/usr/local"
10861d06d6bSBaptiste DaroussinBINDIR=
10961d06d6bSBaptiste DaroussinSBINDIR=
11061d06d6bSBaptiste DaroussinBIN_FROM_SBIN=
11161d06d6bSBaptiste DaroussinINCLUDEDIR=
11261d06d6bSBaptiste DaroussinLIBDIR=
11361d06d6bSBaptiste DaroussinMANDIR=
114*c1c95addSBrooks DavisMISCDIR=
1156d38604fSBaptiste DaroussinREAD_ALLOWED_PATH=
11661d06d6bSBaptiste Daroussin
11761d06d6bSBaptiste DaroussinWWWPREFIX="/var/www"
11861d06d6bSBaptiste DaroussinHTDOCDIR=
11961d06d6bSBaptiste DaroussinCGIBINDIR=
12061d06d6bSBaptiste Daroussin
12161d06d6bSBaptiste DaroussinBINM_APROPOS="apropos"
12261d06d6bSBaptiste DaroussinBINM_CATMAN="catman"
12361d06d6bSBaptiste DaroussinBINM_MAKEWHATIS="makewhatis"
12461d06d6bSBaptiste DaroussinBINM_MAN="man"
12561d06d6bSBaptiste DaroussinBINM_SOELIM="soelim"
12661d06d6bSBaptiste DaroussinBINM_WHATIS="whatis"
1276d38604fSBaptiste DaroussinBINM_PAGER=
12861d06d6bSBaptiste DaroussinMANM_MAN="man"
12961d06d6bSBaptiste DaroussinMANM_MANCONF="man.conf"
13061d06d6bSBaptiste DaroussinMANM_MDOC="mdoc"
13161d06d6bSBaptiste DaroussinMANM_ROFF="roff"
13261d06d6bSBaptiste DaroussinMANM_EQN="eqn"
13361d06d6bSBaptiste DaroussinMANM_TBL="tbl"
13461d06d6bSBaptiste Daroussin
13561d06d6bSBaptiste DaroussinINSTALL="install"
13661d06d6bSBaptiste DaroussinINSTALL_PROGRAM=
13761d06d6bSBaptiste DaroussinINSTALL_LIB=
13861d06d6bSBaptiste DaroussinINSTALL_MAN=
13961d06d6bSBaptiste DaroussinINSTALL_DATA=
14061d06d6bSBaptiste DaroussinLN="ln -f"
14161d06d6bSBaptiste Daroussin
14261d06d6bSBaptiste Daroussin# --- manual settings from configure.local -----------------------------
14361d06d6bSBaptiste Daroussin
14461d06d6bSBaptiste Daroussinif [ -r ./configure.local ]; then
14561d06d6bSBaptiste Daroussin	echo "file configure.local: reading..." 1>&2
14661d06d6bSBaptiste Daroussin	echo "file configure.local: reading..." 1>&3
14761d06d6bSBaptiste Daroussin	cat ./configure.local 1>&3
14861d06d6bSBaptiste Daroussin	. ./configure.local
14961d06d6bSBaptiste Daroussinelse
15061d06d6bSBaptiste Daroussin	echo "file configure.local: no (fully automatic configuration)" 1>&2
15161d06d6bSBaptiste Daroussin	echo "file configure.local: no (fully automatic configuration)" 1>&3
15261d06d6bSBaptiste Daroussinfi
15361d06d6bSBaptiste Daroussinecho 1>&3
15461d06d6bSBaptiste Daroussin
15561d06d6bSBaptiste Daroussin# --- tests functions --------------------------------------------------
15661d06d6bSBaptiste Daroussin
15761d06d6bSBaptiste Daroussin# Check whether this HAVE_ setting is manually overridden.
15861d06d6bSBaptiste Daroussin# If yes, use the override, if no, do not decide anything yet.
15961d06d6bSBaptiste Daroussin# Arguments: test file name, test var name, manual value
16061d06d6bSBaptiste Daroussinismanual() {
16161d06d6bSBaptiste Daroussin	[ -z "${3}" ] && return 1
16261d06d6bSBaptiste Daroussin	echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&2
16361d06d6bSBaptiste Daroussin	echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&3
16461d06d6bSBaptiste Daroussin	echo 1>&3
16561d06d6bSBaptiste Daroussin	return 0
16661d06d6bSBaptiste Daroussin}
16761d06d6bSBaptiste Daroussin
16861d06d6bSBaptiste Daroussin# Run a single autoconfiguration test.
16961d06d6bSBaptiste Daroussin# In case of success, enable the feature.
17061d06d6bSBaptiste Daroussin# In case of failure, do not decide anything yet.
17161d06d6bSBaptiste Daroussin# Arguments: test file name, test var name, additional CFLAGS
17261d06d6bSBaptiste Daroussinsingletest() {
1736d38604fSBaptiste Daroussin	n=${1}${3}
17461d06d6bSBaptiste Daroussin	cat 1>&3 << __HEREDOC__
1757295610fSBaptiste Daroussintesting ${n} ...
1766d38604fSBaptiste Daroussin${COMP} -o test-${1} test-${1}.c ${3}
17761d06d6bSBaptiste Daroussin__HEREDOC__
17861d06d6bSBaptiste Daroussin
1796d38604fSBaptiste Daroussin	if ${COMP} -o "test-${1}" "${SOURCEDIR}/test-${1}.c" ${3} 1>&3 2>&3
18061d06d6bSBaptiste Daroussin	then
1817295610fSBaptiste Daroussin		echo "partial result of ${n}: ${CC} succeeded" 1>&3
18261d06d6bSBaptiste Daroussin	else
1836d38604fSBaptiste Daroussin		echo "tested ${n}: no (compilation failed)" 1>&2
1847295610fSBaptiste Daroussin		echo "result of ${n}: ${CC} failed with exit status $?" 1>&3
1857295610fSBaptiste Daroussin		echo "result of compiling ${n}: no" 1>&3
18661d06d6bSBaptiste Daroussin		echo 1>&3
18761d06d6bSBaptiste Daroussin		return 1
18861d06d6bSBaptiste Daroussin	fi
18961d06d6bSBaptiste Daroussin
19061d06d6bSBaptiste Daroussin	if ./test-${1} 1>&3 2>&3; then
1917295610fSBaptiste Daroussin		echo "tested ${n}: yes" 1>&2
1927295610fSBaptiste Daroussin		echo "result of running ${n}: yes" 1>&3
19361d06d6bSBaptiste Daroussin		echo 1>&3
19461d06d6bSBaptiste Daroussin		eval HAVE_${2}=1
1956d38604fSBaptiste Daroussin		[ "${3}" = "-D_GNU_SOURCE" ] && NEED_GNU_SOURCE=1
1966d38604fSBaptiste Daroussin		[ "${3}" = "-D_OPENBSD_SOURCE" ] && NEED_OPENBSD_SOURCE=1
1976d38604fSBaptiste Daroussin		[ "${3}" = "-D_XPG4_2" ] && NEED_XPG4_2=1
1986d38604fSBaptiste Daroussin		[ "${3}" = "-lrt" ] && LD_NANOSLEEP="-lrt"
1996d38604fSBaptiste Daroussin		[ "${3}" = "-lsocket" ] && LD_RECVMSG="-lsocket"
2006d38604fSBaptiste Daroussin		[ "${3}" = "-lutil" ] && LD_OHASH="-lutil"
20161d06d6bSBaptiste Daroussin		rm "test-${1}"
20261d06d6bSBaptiste Daroussin		return 0
20361d06d6bSBaptiste Daroussin	else
2046d38604fSBaptiste Daroussin		echo "tested ${n}: no (execution failed)" 1>&2
2057295610fSBaptiste Daroussin		echo "result of ${n}: execution failed with exit status $?" 1>&3
2067295610fSBaptiste Daroussin		echo "result of running ${n}: no" 1>&3
20761d06d6bSBaptiste Daroussin		echo 1>&3
20861d06d6bSBaptiste Daroussin		rm "test-${1}"
20961d06d6bSBaptiste Daroussin		return 1
21061d06d6bSBaptiste Daroussin	fi
21161d06d6bSBaptiste Daroussin}
21261d06d6bSBaptiste Daroussin
21361d06d6bSBaptiste Daroussin# Run a complete autoconfiguration test, including the check for
21461d06d6bSBaptiste Daroussin# a manual override and disabling the feature on failure.
21561d06d6bSBaptiste Daroussin# Arguments: test file name, test var name, additional CFLAGS
2166d38604fSBaptiste Daroussin# The final argument can optionally be repeated a second time.
21761d06d6bSBaptiste Daroussinruntest() {
21861d06d6bSBaptiste Daroussin	eval _manual=\${HAVE_${2}}
21961d06d6bSBaptiste Daroussin	ismanual "${1}" "${2}" "${_manual}" && return 0
2206d38604fSBaptiste Daroussin	singletest "${1}" "${2}" "${3}" && return 0
2216d38604fSBaptiste Daroussin	[ -n "${4}" ] && singletest "${1}" "${2}" "${4}" && return 0
22261d06d6bSBaptiste Daroussin	eval HAVE_${2}=0
22361d06d6bSBaptiste Daroussin	return 1
22461d06d6bSBaptiste Daroussin}
22561d06d6bSBaptiste Daroussin
22661d06d6bSBaptiste Daroussin# Select a UTF-8 locale.
22761d06d6bSBaptiste Daroussinget_locale() {
22861d06d6bSBaptiste Daroussin	[ -n "${HAVE_WCHAR}" ] && [ "${HAVE_WCHAR}" -eq 0 ] && return 0
2296d38604fSBaptiste Daroussin	ismanual UTF8_LOCALE UTF8_LOCALE "${UTF8_LOCALE}" && return 0
23061d06d6bSBaptiste Daroussin	echo "testing UTF8_LOCALE ..." 1>&3
23161d06d6bSBaptiste Daroussin	UTF8_LOCALE=`locale -a | grep -i '^en_US\.UTF-*8$' | head -n 1`
23261d06d6bSBaptiste Daroussin	if [ -z "${UTF8_LOCALE}" ]; then
23361d06d6bSBaptiste Daroussin		UTF8_LOCALE=`locale -a | grep -i '\.UTF-*8' | head -n 1`
23461d06d6bSBaptiste Daroussin		[ -n "${UTF8_LOCALE}" ] || return 1
23561d06d6bSBaptiste Daroussin	fi
23661d06d6bSBaptiste Daroussin	echo "selected UTF8_LOCALE=${UTF8_LOCALE}" 1>&2
23761d06d6bSBaptiste Daroussin	echo "selected UTF8_LOCALE=${UTF8_LOCALE}" 1>&3
23861d06d6bSBaptiste Daroussin	echo 1>&3
23961d06d6bSBaptiste Daroussin	return 0;
24061d06d6bSBaptiste Daroussin}
24161d06d6bSBaptiste Daroussin
2427295610fSBaptiste Daroussin# --- operating system -------------------------------------------------
2437295610fSBaptiste Daroussin
2447295610fSBaptiste Daroussinif [ -n "${OSENUM}" ]; then
2457295610fSBaptiste Daroussin	echo "OSENUM specified manually: ${OSENUM}" 1>&2
2467295610fSBaptiste Daroussin	echo "OSENUM specified manually: ${OSENUM}" 1>&3
2477295610fSBaptiste Daroussinelse
2487295610fSBaptiste Daroussin	OSDETECT=`uname`
2496d38604fSBaptiste Daroussin	if [ "${OSDETECT}" = "NetBSD" ]; then
2507295610fSBaptiste Daroussin		OSENUM=MANDOC_OS_NETBSD
2516d38604fSBaptiste Daroussin	elif [ "${OSDETECT}" = "OpenBSD" ]; then
2527295610fSBaptiste Daroussin		OSENUM=MANDOC_OS_OPENBSD
2537295610fSBaptiste Daroussin	else
2547295610fSBaptiste Daroussin		OSENUM=MANDOC_OS_OTHER
2557295610fSBaptiste Daroussin	fi
2567295610fSBaptiste Daroussin	echo "tested operating system: ${OSDETECT} -> OSENUM=${OSENUM}" 1>&2
2577295610fSBaptiste Daroussin	echo "tested operating system: ${OSDETECT} -> OSENUM=${OSENUM}" 1>&3
2587295610fSBaptiste Daroussin	unset OSDETECT
2597295610fSBaptiste Daroussinfi
2607295610fSBaptiste Daroussinecho 1>&3
2617295610fSBaptiste Daroussin
26261d06d6bSBaptiste Daroussin# --- compiler options -------------------------------------------------
26361d06d6bSBaptiste Daroussin
2647295610fSBaptiste DaroussinDEFCFLAGS="-g -W -Wall -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wno-unused-parameter"
2657295610fSBaptiste Daroussin
26661d06d6bSBaptiste Daroussinif [ -n "${CFLAGS}" ]; then
26761d06d6bSBaptiste Daroussin	COMP="${CC} ${CFLAGS} -Wno-unused -Werror"
2687295610fSBaptiste Daroussinelse
2697295610fSBaptiste Daroussin	COMP="${CC} ${DEFCFLAGS} -Wno-unused -Werror"
2707295610fSBaptiste Daroussinfi
2716d38604fSBaptiste Daroussinprintf "%s" "tested ${CC} -W: " 1>&2
2726d38604fSBaptiste Daroussinprintf "%s" "testing ${CC} -W: " 1>&3
27361d06d6bSBaptiste Daroussinruntest noop WFLAG || true
2747295610fSBaptiste Daroussin
2757295610fSBaptiste Daroussinif [ -n "${CFLAGS}" ]; then
2767295610fSBaptiste Daroussin	echo "CFLAGS specified manually:" 1>&3
2777295610fSBaptiste Daroussinelif [ ${HAVE_WFLAG} -eq 0 ]; then
27861d06d6bSBaptiste Daroussin	CFLAGS="-g"
2797295610fSBaptiste Daroussinelse
2807295610fSBaptiste Daroussin	CFLAGS="${DEFCFLAGS}"
28161d06d6bSBaptiste Daroussinfi
28261d06d6bSBaptiste Daroussinecho "selected CFLAGS=\"${CFLAGS}\"" 1>&2
28361d06d6bSBaptiste Daroussinecho "selected CFLAGS=\"${CFLAGS}\"" 1>&3
28461d06d6bSBaptiste Daroussinecho 1>&3
2857295610fSBaptiste Daroussin
2867295610fSBaptiste DaroussinCOMP="${CC} ${CFLAGS}"
2877295610fSBaptiste Daroussin[ ${HAVE_WFLAG} -eq 0 ] || COMP="${COMP} -Wno-unused -Werror"
28861d06d6bSBaptiste Daroussin
28961d06d6bSBaptiste Daroussinif [ -n "${STATIC}" ]; then
29061d06d6bSBaptiste Daroussin	echo "selected STATIC=\"${STATIC}\" (manual)" 1>&2
29161d06d6bSBaptiste Daroussin	echo "selected STATIC=\"${STATIC}\" (manual)" 1>&3
29261d06d6bSBaptiste Daroussin	echo 1>&3
29361d06d6bSBaptiste Daroussinelse
29461d06d6bSBaptiste Daroussin	runtest noop STATIC -static || true
29561d06d6bSBaptiste Daroussin	[ ${HAVE_STATIC} -eq 0 ] || STATIC="-static"
29661d06d6bSBaptiste Daroussin	echo "selected STATIC=\"${STATIC}\"" 1>&2
29761d06d6bSBaptiste Daroussin	echo "selected STATIC=\"${STATIC}\"" 1>&3
29861d06d6bSBaptiste Daroussin	echo 1>&3
29961d06d6bSBaptiste Daroussinfi
30061d06d6bSBaptiste Daroussin
30161d06d6bSBaptiste Daroussin# --- tests for config.h  ----------------------------------------------
30261d06d6bSBaptiste Daroussin
30361d06d6bSBaptiste Daroussin# --- library functions ---
3046d38604fSBaptiste Daroussinruntest attribute	ATTRIBUTE	|| true
3056d38604fSBaptiste Daroussinruntest cmsg		CMSG		"" "-D_XPG4_2" || true
30661d06d6bSBaptiste Daroussinruntest dirent-namlen	DIRENT_NAMLEN	|| true
30761d06d6bSBaptiste Daroussinruntest be32toh		ENDIAN		|| true
30861d06d6bSBaptiste Daroussinruntest be32toh		SYS_ENDIAN	-DSYS_ENDIAN || true
30961d06d6bSBaptiste Daroussinruntest EFTYPE		EFTYPE		|| true
31061d06d6bSBaptiste Daroussinruntest err		ERR		|| true
31161d06d6bSBaptiste Daroussinruntest getline		GETLINE		|| true
3126d38604fSBaptiste Daroussinruntest getsubopt	GETSUBOPT	"" -D_GNU_SOURCE || true
31361d06d6bSBaptiste Daroussinruntest isblank		ISBLANK		|| true
31461d06d6bSBaptiste Daroussinruntest mkdtemp		MKDTEMP		|| true
3156d38604fSBaptiste Daroussinruntest mkstemps	MKSTEMPS	|| true
3166d38604fSBaptiste Daroussinruntest nanosleep	NANOSLEEP	"${LD_NANOSLEEP}" "-lrt" || true
31761d06d6bSBaptiste Daroussinruntest ntohl		NTOHL		|| true
31861d06d6bSBaptiste Daroussinruntest O_DIRECTORY	O_DIRECTORY	|| true
31961d06d6bSBaptiste Daroussinruntest PATH_MAX	PATH_MAX	|| true
32061d06d6bSBaptiste Daroussinruntest pledge		PLEDGE		|| true
32161d06d6bSBaptiste Daroussinruntest sandbox_init	SANDBOX_INIT	|| true
32261d06d6bSBaptiste Daroussinruntest progname	PROGNAME	|| true
3236d38604fSBaptiste Daroussinruntest reallocarray	REALLOCARRAY	"" -D_OPENBSD_SOURCE || true
3246d38604fSBaptiste Daroussinruntest recallocarray	RECALLOCARRAY	"" -D_OPENBSD_SOURCE || true
3256d38604fSBaptiste Daroussinruntest recvmsg		RECVMSG		"${LD_RECVMSG}" "-lsocket" || true
32661d06d6bSBaptiste Daroussinruntest rewb-bsd	REWB_BSD	|| true
32761d06d6bSBaptiste Daroussinruntest rewb-sysv	REWB_SYSV	|| true
3286d38604fSBaptiste Daroussinruntest strcasestr	STRCASESTR	"" -D_GNU_SOURCE || true
32961d06d6bSBaptiste Daroussinruntest stringlist	STRINGLIST	|| true
33061d06d6bSBaptiste Daroussinruntest strlcat		STRLCAT		|| true
33161d06d6bSBaptiste Daroussinruntest strlcpy		STRLCPY		|| true
33261d06d6bSBaptiste Daroussinruntest strndup		STRNDUP		|| true
3336d38604fSBaptiste Daroussinruntest strptime	STRPTIME	"" -D_GNU_SOURCE || true
33461d06d6bSBaptiste Daroussinruntest strsep		STRSEP		|| true
3356d38604fSBaptiste Daroussinruntest strtonum	STRTONUM	"" -D_OPENBSD_SOURCE || true
3366d38604fSBaptiste Daroussinruntest vasprintf	VASPRINTF	"" -D_GNU_SOURCE || true
33761d06d6bSBaptiste Daroussin
3386d38604fSBaptiste Daroussin# --- fts ---
3396d38604fSBaptiste Daroussinif [ "${1}" = "-depend" ]; then
340*c1c95addSBrooks Davis	DEBUG_MEMORY=1
3416d38604fSBaptiste Daroussin	HAVE_FTS=0
3426d38604fSBaptiste Daroussin	HAVE_FTS_COMPARE_CONST=0
3436d38604fSBaptiste Daroussin	echo "tested fts: HAVE_FTS=0 (for make depend)" 1>&2
3446d38604fSBaptiste Daroussin	echo "tested fts: HAVE_FTS=0 (for make depend)" 1>&3
3456d38604fSBaptiste Daroussin	echo 1>&3
3466d38604fSBaptiste Daroussinelif ismanual fts FTS ${HAVE_FTS}; then
34761d06d6bSBaptiste Daroussin	HAVE_FTS_COMPARE_CONST=0
34861d06d6bSBaptiste Daroussinelif runtest fts FTS_COMPARE_CONST -DFTS_COMPARE_CONST; then
34961d06d6bSBaptiste Daroussin	HAVE_FTS=1
35061d06d6bSBaptiste Daroussinelse
35161d06d6bSBaptiste Daroussin	runtest fts FTS || true
35261d06d6bSBaptiste Daroussinfi
35361d06d6bSBaptiste Daroussin
3546d38604fSBaptiste Daroussin# --- pager ---
3556d38604fSBaptiste Daroussinmanual=
3566d38604fSBaptiste Daroussinif [ -n "${BINM_PAGER}" ]; then
3576d38604fSBaptiste Daroussin	manual=" (manual)"
3586d38604fSBaptiste Daroussinelif less test-noop.c 1>/dev/null 2>&3; then
3596d38604fSBaptiste Daroussin	BINM_PAGER=less
3606d38604fSBaptiste Daroussin	echo "tested less: yes" 1>&2
3616d38604fSBaptiste Daroussin	echo "tested less: yes" 1>&3
3626d38604fSBaptiste Daroussinelse
3636d38604fSBaptiste Daroussin	BINM_PAGER=more
3646d38604fSBaptiste Daroussin	echo "tested less: no" 1>&2
3656d38604fSBaptiste Daroussin	echo "tested less: no" 1>&3
3666d38604fSBaptiste Daroussinfi
3676d38604fSBaptiste Daroussinecho "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&2
3686d38604fSBaptiste Daroussinecho "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&3
3696d38604fSBaptiste Daroussin
3706d38604fSBaptiste Daroussin# --- tagging support in the pager ---
3716d38604fSBaptiste Daroussinif ismanual "${BINM_PAGER} -T" LESS_T ${HAVE_LESS_T}; then
3727295610fSBaptiste Daroussin	:
3736d38604fSBaptiste Daroussinelif ${BINM_PAGER} -T /dev/null test-noop.c 1>/dev/null 2>&3; then
3747295610fSBaptiste Daroussin	HAVE_LESS_T=1
3756d38604fSBaptiste Daroussin	echo "tested ${BINM_PAGER} -T: yes" 1>&2
3766d38604fSBaptiste Daroussin	echo "tested ${BINM_PAGER} -T: yes" 1>&3
3777295610fSBaptiste Daroussin	echo 1>&3
3787295610fSBaptiste Daroussinelse
3797295610fSBaptiste Daroussin	HAVE_LESS_T=0
3806d38604fSBaptiste Daroussin	echo "tested ${BINM_PAGER} -T: no" 1>&2
3816d38604fSBaptiste Daroussin	echo "tested ${BINM_PAGER} -T: no" 1>&3
3827295610fSBaptiste Daroussin	echo 1>&3
3837295610fSBaptiste Daroussinfi
3847295610fSBaptiste Daroussin
38561d06d6bSBaptiste Daroussin# --- wide character and locale support ---
38661d06d6bSBaptiste Daroussinif get_locale; then
3876d38604fSBaptiste Daroussin	runtest wchar WCHAR "-DUTF8_LOCALE=\"${UTF8_LOCALE}\"" \
3886d38604fSBaptiste Daroussin	    "-D_GNU_SOURCE -DUTF8_LOCALE=\"${UTF8_LOCALE}\"" || true
38961d06d6bSBaptiste Daroussinelse
39061d06d6bSBaptiste Daroussin	HAVE_WCHAR=0
39161d06d6bSBaptiste Daroussin	echo "tested wchar: no (no UTF8_LOCALE)" 1>&2
39261d06d6bSBaptiste Daroussin	echo "tested wchar: no (no UTF8_LOCALE)" 1>&3
39361d06d6bSBaptiste Daroussin	echo 1>&3
39461d06d6bSBaptiste Daroussinfi
39561d06d6bSBaptiste Daroussin
39661d06d6bSBaptiste Daroussin# --- ohash ---
3976d38604fSBaptiste Daroussinif [ "${1}" = "-depend" ]; then
3986d38604fSBaptiste Daroussin	HAVE_OHASH=0
3996d38604fSBaptiste Daroussin	echo "tested ohash: HAVE_OHASH=0 (for make depend)" 1>&2
4006d38604fSBaptiste Daroussin	echo "tested ohash: HAVE_OHASH=0 (for make depend)" 1>&3
4016d38604fSBaptiste Daroussin	echo 1>&3
4026d38604fSBaptiste Daroussinelse
4036d38604fSBaptiste Daroussin	runtest ohash OHASH "${LD_OHASH}" "-lutil" || true
40461d06d6bSBaptiste Daroussinfi
40561d06d6bSBaptiste Daroussinif [ "${HAVE_OHASH}" -eq 0 ]; then
40661d06d6bSBaptiste Daroussin	LD_OHASH=
40761d06d6bSBaptiste Daroussinfi
40861d06d6bSBaptiste Daroussin
4096d38604fSBaptiste Daroussin# --- required functions ---
4106d38604fSBaptiste Daroussinif [ ${HAVE_ENDIAN} -eq 0 -a \
4116d38604fSBaptiste Daroussin     ${HAVE_SYS_ENDIAN} -eq 0 -a \
4126d38604fSBaptiste Daroussin     ${HAVE_NTOHL} -eq 0 ]; then
4136d38604fSBaptiste Daroussin	echo "FATAL: no endian conversion functions found" 1>&2
4146d38604fSBaptiste Daroussin	echo "FATAL: no endian conversion functions found" 1>&3
4156d38604fSBaptiste Daroussin	FATAL=1
4166d38604fSBaptiste Daroussinfi
4176d38604fSBaptiste Daroussinif [ "${HAVE_NANOSLEEP}" -eq 0 ]; then
4186d38604fSBaptiste Daroussin	echo "FATAL: nanosleep: no" 1>&2
4196d38604fSBaptiste Daroussin	echo "FATAL: nanosleep: no" 1>&3
4206d38604fSBaptiste Daroussin	FATAL=1
4216d38604fSBaptiste Daroussinfi
4226d38604fSBaptiste Daroussinif [ ${BUILD_CATMAN} -gt 0 -a "${HAVE_RECVMSG}" -eq 0 ]; then
4236d38604fSBaptiste Daroussin	echo "FATAL: recvmsg: no" 1>&2
4246d38604fSBaptiste Daroussin	echo "FATAL: recvmsg: no" 1>&3
4256d38604fSBaptiste Daroussin	echo "Without recvmsg(2), you cannot BUILD_CATMAN." 1>&2
4266d38604fSBaptiste Daroussin	FATAL=1
4276d38604fSBaptiste Daroussinfi
4286d38604fSBaptiste Daroussinif [ ${BUILD_CATMAN} -gt 0 -a "${HAVE_CMSG}" -eq 0 ]; then
4296d38604fSBaptiste Daroussin	echo "FATAL: cmsg: no" 1>&2
4306d38604fSBaptiste Daroussin	echo "FATAL: cmsg: no" 1>&3
4316d38604fSBaptiste Daroussin	echo "Without CMSG_FIRSTHDR(3), you cannot BUILD_CATMAN." 1>&2
4326d38604fSBaptiste Daroussin	FATAL=1
4336d38604fSBaptiste Daroussinfi
4346d38604fSBaptiste Daroussin[ "${FATAL}" -eq 0 ] || exit 1
4356d38604fSBaptiste Daroussin
43661d06d6bSBaptiste Daroussin# --- LDADD ---
43761d06d6bSBaptiste DaroussinLDADD="${LDADD} ${LD_NANOSLEEP} ${LD_RECVMSG} ${LD_OHASH} -lz"
43861d06d6bSBaptiste Daroussinecho "selected LDADD=\"${LDADD}\"" 1>&2
43961d06d6bSBaptiste Daroussinecho "selected LDADD=\"${LDADD}\"" 1>&3
44061d06d6bSBaptiste Daroussinecho 1>&3
44161d06d6bSBaptiste Daroussin
44261d06d6bSBaptiste Daroussin# --- write config.h ---
44361d06d6bSBaptiste Daroussin
44461d06d6bSBaptiste Daroussinexec > config.h
44561d06d6bSBaptiste Daroussin
44661d06d6bSBaptiste Daroussincat << __HEREDOC__
44761d06d6bSBaptiste Daroussin#ifdef __cplusplus
44861d06d6bSBaptiste Daroussin#error "Do not use C++.  See the INSTALL file."
44961d06d6bSBaptiste Daroussin#endif
45061d06d6bSBaptiste Daroussin
45161d06d6bSBaptiste Daroussin__HEREDOC__
45261d06d6bSBaptiste Daroussin
4537295610fSBaptiste Daroussin[ ${NEED_GNU_SOURCE} -eq 0 ] || echo "#define _GNU_SOURCE"
4547295610fSBaptiste Daroussin[ ${NEED_OPENBSD_SOURCE} -eq 0 ] || echo "#define _OPENBSD_SOURCE"
4557295610fSBaptiste Daroussin
45661d06d6bSBaptiste Daroussin[ ${HAVE_GETLINE} -eq 0 -o \
45761d06d6bSBaptiste Daroussin  ${HAVE_REALLOCARRAY} -eq 0 -o ${HAVE_RECALLOCARRAY} -eq 0 -o \
45861d06d6bSBaptiste Daroussin  ${HAVE_STRLCAT} -eq 0 -o ${HAVE_STRLCPY} -eq 0 -o \
45961d06d6bSBaptiste Daroussin  ${HAVE_STRNDUP} -eq 0 ] \
46061d06d6bSBaptiste Daroussin	&& echo "#include <sys/types.h>"
46161d06d6bSBaptiste Daroussin[ ${HAVE_VASPRINTF} -eq 0 ] && echo "#include <stdarg.h>"
46261d06d6bSBaptiste Daroussin[ ${HAVE_GETLINE} -eq 0 ] && echo "#include <stdio.h>"
46361d06d6bSBaptiste Daroussin
46461d06d6bSBaptiste Daroussinecho
46561d06d6bSBaptiste Daroussinecho "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\""
46661d06d6bSBaptiste Daroussinecho "#define MANPATH_BASE \"${MANPATH_BASE}\""
46761d06d6bSBaptiste Daroussinecho "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\""
468*c1c95addSBrooks Davisif [ ${DEBUG_MEMORY} -ne 0 ]; then
469*c1c95addSBrooks Davis	echo "#define DEBUG_MEMORY ${DEBUG_MEMORY}"
470*c1c95addSBrooks Davis	DEBUG_OBJS=mandoc_dbg.o
471*c1c95addSBrooks Davisfi
4727295610fSBaptiste Daroussinecho "#define OSENUM ${OSENUM}"
47361d06d6bSBaptiste Daroussin[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\""
47461d06d6bSBaptiste Daroussin[ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\""
4756d38604fSBaptiste Daroussin[ -n "${READ_ALLOWED_PATH}" ] \
4766d38604fSBaptiste Daroussin	&& echo "#define READ_ALLOWED_PATH \"${READ_ALLOWED_PATH}\""
4776d38604fSBaptiste Daroussin[ ${HAVE_ATTRIBUTE} -eq 0 ] && echo "#define __attribute__(x)"
47861d06d6bSBaptiste Daroussin[ ${HAVE_EFTYPE} -eq 0 ] && echo "#define EFTYPE EINVAL"
47961d06d6bSBaptiste Daroussin[ ${HAVE_O_DIRECTORY} -eq 0 ] && echo "#define O_DIRECTORY 0"
48061d06d6bSBaptiste Daroussin[ ${HAVE_PATH_MAX} -eq 0 ] && echo "#define PATH_MAX 4096"
48161d06d6bSBaptiste Daroussinif [ ${HAVE_ENDIAN} -eq 0 -a ${HAVE_SYS_ENDIAN} -eq 0 ]; then
48261d06d6bSBaptiste Daroussin	echo "#define be32toh ntohl"
48361d06d6bSBaptiste Daroussin	echo "#define htobe32 htonl"
48461d06d6bSBaptiste Daroussinfi
48561d06d6bSBaptiste Daroussincat << __HEREDOC__
4866d38604fSBaptiste Daroussin
48761d06d6bSBaptiste Daroussin#define HAVE_DIRENT_NAMLEN ${HAVE_DIRENT_NAMLEN}
48861d06d6bSBaptiste Daroussin#define HAVE_ENDIAN ${HAVE_ENDIAN}
48961d06d6bSBaptiste Daroussin#define HAVE_ERR ${HAVE_ERR}
49061d06d6bSBaptiste Daroussin#define HAVE_FTS ${HAVE_FTS}
49161d06d6bSBaptiste Daroussin#define HAVE_FTS_COMPARE_CONST ${HAVE_FTS_COMPARE_CONST}
49261d06d6bSBaptiste Daroussin#define HAVE_GETLINE ${HAVE_GETLINE}
49361d06d6bSBaptiste Daroussin#define HAVE_GETSUBOPT ${HAVE_GETSUBOPT}
49461d06d6bSBaptiste Daroussin#define HAVE_ISBLANK ${HAVE_ISBLANK}
4957295610fSBaptiste Daroussin#define HAVE_LESS_T ${HAVE_LESS_T}
49661d06d6bSBaptiste Daroussin#define HAVE_MKDTEMP ${HAVE_MKDTEMP}
4976d38604fSBaptiste Daroussin#define HAVE_MKSTEMPS ${HAVE_MKSTEMPS}
49861d06d6bSBaptiste Daroussin#define HAVE_NTOHL ${HAVE_NTOHL}
49961d06d6bSBaptiste Daroussin#define HAVE_PLEDGE ${HAVE_PLEDGE}
50061d06d6bSBaptiste Daroussin#define HAVE_PROGNAME ${HAVE_PROGNAME}
50161d06d6bSBaptiste Daroussin#define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY}
50261d06d6bSBaptiste Daroussin#define HAVE_RECALLOCARRAY ${HAVE_RECALLOCARRAY}
50361d06d6bSBaptiste Daroussin#define HAVE_REWB_BSD ${HAVE_REWB_BSD}
50461d06d6bSBaptiste Daroussin#define HAVE_REWB_SYSV ${HAVE_REWB_SYSV}
50561d06d6bSBaptiste Daroussin#define HAVE_SANDBOX_INIT ${HAVE_SANDBOX_INIT}
50661d06d6bSBaptiste Daroussin#define HAVE_STRCASESTR ${HAVE_STRCASESTR}
50761d06d6bSBaptiste Daroussin#define HAVE_STRINGLIST ${HAVE_STRINGLIST}
50861d06d6bSBaptiste Daroussin#define HAVE_STRLCAT ${HAVE_STRLCAT}
50961d06d6bSBaptiste Daroussin#define HAVE_STRLCPY ${HAVE_STRLCPY}
51061d06d6bSBaptiste Daroussin#define HAVE_STRNDUP ${HAVE_STRNDUP}
51161d06d6bSBaptiste Daroussin#define HAVE_STRPTIME ${HAVE_STRPTIME}
51261d06d6bSBaptiste Daroussin#define HAVE_STRSEP ${HAVE_STRSEP}
51361d06d6bSBaptiste Daroussin#define HAVE_STRTONUM ${HAVE_STRTONUM}
51461d06d6bSBaptiste Daroussin#define HAVE_SYS_ENDIAN ${HAVE_SYS_ENDIAN}
51561d06d6bSBaptiste Daroussin#define HAVE_VASPRINTF ${HAVE_VASPRINTF}
51661d06d6bSBaptiste Daroussin#define HAVE_WCHAR ${HAVE_WCHAR}
51761d06d6bSBaptiste Daroussin#define HAVE_OHASH ${HAVE_OHASH}
5186d38604fSBaptiste Daroussin#define NEED_XPG4_2 ${NEED_XPG4_2}
51961d06d6bSBaptiste Daroussin
52061d06d6bSBaptiste Daroussin#define BINM_APROPOS "${BINM_APROPOS}"
52161d06d6bSBaptiste Daroussin#define BINM_CATMAN "${BINM_CATMAN}"
52261d06d6bSBaptiste Daroussin#define BINM_MAKEWHATIS "${BINM_MAKEWHATIS}"
52361d06d6bSBaptiste Daroussin#define BINM_MAN "${BINM_MAN}"
52461d06d6bSBaptiste Daroussin#define BINM_SOELIM "${BINM_SOELIM}"
52561d06d6bSBaptiste Daroussin#define BINM_WHATIS "${BINM_WHATIS}"
5266d38604fSBaptiste Daroussin#define BINM_PAGER "${BINM_PAGER}"
52761d06d6bSBaptiste Daroussin
52861d06d6bSBaptiste Daroussin__HEREDOC__
52961d06d6bSBaptiste Daroussin
53061d06d6bSBaptiste Daroussinif [ ${HAVE_ERR} -eq 0 ]; then
53161d06d6bSBaptiste Daroussin	echo "extern	void	  err(int, const char *, ...);"
53261d06d6bSBaptiste Daroussin	echo "extern	void	  errx(int, const char *, ...);"
53361d06d6bSBaptiste Daroussin	echo "extern	void	  warn(const char *, ...);"
53461d06d6bSBaptiste Daroussin	echo "extern	void	  warnx(const char *, ...);"
5356d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_err.o"
5366d38604fSBaptiste Daroussin	SOELIM_COBJS="${SOELIM_COBJS} compat_err.o"
53761d06d6bSBaptiste Daroussinfi
5386d38604fSBaptiste Daroussinif [ ${HAVE_FTS} -eq 0 ]; then
5396d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_fts.o"
5406d38604fSBaptiste Daroussinfi
5416d38604fSBaptiste Daroussinif [ ${HAVE_GETLINE} -eq 0 ]; then
54261d06d6bSBaptiste Daroussin	echo "extern	ssize_t	  getline(char **, size_t *, FILE *);"
5436d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_getline.o"
5446d38604fSBaptiste Daroussin	SOELIM_COBJS="${SOELIM_COBJS} compat_getline.o"
5456d38604fSBaptiste Daroussinfi
5466d38604fSBaptiste Daroussinif [ ${HAVE_GETSUBOPT} -eq 0 ]; then
54761d06d6bSBaptiste Daroussin	echo "extern	int	  getsubopt(char **, char * const *, char **);"
5486d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_getsubopt.o"
5496d38604fSBaptiste Daroussinfi
5506d38604fSBaptiste Daroussinif [ ${HAVE_ISBLANK} -eq 0 ]; then
55161d06d6bSBaptiste Daroussin	echo "extern	int	  isblank(int);"
5526d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_isblank.o"
5536d38604fSBaptiste Daroussinfi
5546d38604fSBaptiste Daroussinif [ ${HAVE_MKDTEMP} -eq 0 ]; then
55561d06d6bSBaptiste Daroussin	echo "extern	char	 *mkdtemp(char *);"
5566d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_mkdtemp.o"
5576d38604fSBaptiste Daroussinfi
5586d38604fSBaptiste Daroussinif [ ${HAVE_MKSTEMPS} -eq 0 ]; then
5596d38604fSBaptiste Daroussin	echo "extern	int	  mkstemps(char *, int);"
5606d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_mkstemps.o"
5616d38604fSBaptiste Daroussinfi
5626d38604fSBaptiste Daroussinif [ ${HAVE_OHASH} -eq 0 ]; then
5636d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_ohash.o"
5646d38604fSBaptiste Daroussinfi
56561d06d6bSBaptiste Daroussinif [ ${HAVE_PROGNAME} -eq 0 ]; then
56661d06d6bSBaptiste Daroussin	echo "extern	const char *getprogname(void);"
56761d06d6bSBaptiste Daroussin	echo "extern	void	  setprogname(const char *);"
5686d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_progname.o"
5696d38604fSBaptiste Daroussin	SOELIM_COBJS="${SOELIM_COBJS} compat_progname.o"
57061d06d6bSBaptiste Daroussinfi
5716d38604fSBaptiste Daroussinif [ ${HAVE_REALLOCARRAY} -eq 0 ]; then
57261d06d6bSBaptiste Daroussin	echo "extern	void	 *reallocarray(void *, size_t, size_t);"
5736d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_reallocarray.o"
5746d38604fSBaptiste Daroussin	SOELIM_COBJS="${SOELIM_COBJS} compat_reallocarray.o"
5756d38604fSBaptiste Daroussinfi
5766d38604fSBaptiste Daroussinif [ ${HAVE_RECALLOCARRAY} -eq 0 ]; then
57761d06d6bSBaptiste Daroussin	echo "extern	void	 *recallocarray(void *, size_t, size_t, size_t);"
5786d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_recallocarray.o"
5796d38604fSBaptiste Daroussinfi
5806d38604fSBaptiste Daroussinif [ ${HAVE_STRCASESTR} -eq 0 ]; then
58161d06d6bSBaptiste Daroussin	echo "extern	char	 *strcasestr(const char *, const char *);"
5826d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_strcasestr.o"
5836d38604fSBaptiste Daroussinfi
5846d38604fSBaptiste Daroussinif [ ${HAVE_STRINGLIST} -eq 0 ]; then
5856d38604fSBaptiste Daroussin	SOELIM_COBJS="${SOELIM_COBJS} compat_stringlist.o"
5866d38604fSBaptiste Daroussinfi
5876d38604fSBaptiste Daroussinif [ ${HAVE_STRLCAT} -eq 0 ]; then
58861d06d6bSBaptiste Daroussin	echo "extern	size_t	  strlcat(char *, const char *, size_t);"
5896d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_strlcat.o"
5906d38604fSBaptiste Daroussinfi
5916d38604fSBaptiste Daroussinif [ ${HAVE_STRLCPY} -eq 0 ]; then
59261d06d6bSBaptiste Daroussin	echo "extern	size_t	  strlcpy(char *, const char *, size_t);"
5936d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_strlcpy.o"
5946d38604fSBaptiste Daroussinfi
5956d38604fSBaptiste Daroussinif [ ${HAVE_STRNDUP} -eq 0 ]; then
59661d06d6bSBaptiste Daroussin	echo "extern	char	 *strndup(const char *, size_t);"
5976d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_strndup.o"
5986d38604fSBaptiste Daroussinfi
5996d38604fSBaptiste Daroussinif [ ${HAVE_STRSEP} -eq 0 ]; then
60061d06d6bSBaptiste Daroussin	echo "extern	char	 *strsep(char **, const char *);"
6016d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_strsep.o"
6026d38604fSBaptiste Daroussinfi
6036d38604fSBaptiste Daroussinif [ ${HAVE_STRTONUM} -eq 0 ]; then
60461d06d6bSBaptiste Daroussin	echo "extern	long long strtonum(const char *, long long, long long, const char **);"
6056d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_strtonum.o"
6066d38604fSBaptiste Daroussinfi
6076d38604fSBaptiste Daroussinif [ ${HAVE_VASPRINTF} -eq 0 ]; then
60861d06d6bSBaptiste Daroussin	echo "extern	int	  vasprintf(char **, const char *, va_list);"
6096d38604fSBaptiste Daroussin	MANDOC_COBJS="${MANDOC_COBJS} compat_vasprintf.o"
6106d38604fSBaptiste Daroussinfi
61161d06d6bSBaptiste Daroussinecho "file config.h: written" 1>&2
61261d06d6bSBaptiste Daroussinecho "file config.h: written" 1>&3
61361d06d6bSBaptiste Daroussin
61461d06d6bSBaptiste Daroussin# --- tests for Makefile.local -----------------------------------------
61561d06d6bSBaptiste Daroussin
61661d06d6bSBaptiste Daroussinexec > Makefile.local
61761d06d6bSBaptiste Daroussin
61861d06d6bSBaptiste Daroussin[ -z "${BINDIR}"          ] && BINDIR="${PREFIX}/bin"
61961d06d6bSBaptiste Daroussin[ -z "${SBINDIR}"         ] && SBINDIR="${PREFIX}/sbin"
62061d06d6bSBaptiste Daroussin[ -z "${BIN_FROM_SBIN}"   ] && BIN_FROM_SBIN="../bin"
62161d06d6bSBaptiste Daroussin[ -z "${INCLUDEDIR}"      ] && INCLUDEDIR="${PREFIX}/include/mandoc"
62261d06d6bSBaptiste Daroussin[ -z "${LIBDIR}"          ] && LIBDIR="${PREFIX}/lib/mandoc"
62361d06d6bSBaptiste Daroussin[ -z "${MANDIR}"          ] && MANDIR="${PREFIX}/man"
624*c1c95addSBrooks Davis[ -z "${MISCDIR}"         ] && MISCDIR="${PREFIX}/share/misc"
62561d06d6bSBaptiste Daroussin
62661d06d6bSBaptiste Daroussin[ -z "${HTDOCDIR}"        ] && HTDOCDIR="${WWWPREFIX}/htdocs"
62761d06d6bSBaptiste Daroussin[ -z "${CGIBINDIR}"       ] && CGIBINDIR="${WWWPREFIX}/cgi-bin"
62861d06d6bSBaptiste Daroussin
62961d06d6bSBaptiste Daroussin[ -z "${INSTALL_PROGRAM}" ] && INSTALL_PROGRAM="${INSTALL} -m 0555"
63061d06d6bSBaptiste Daroussin[ -z "${INSTALL_LIB}"     ] && INSTALL_LIB="${INSTALL} -m 0444"
63161d06d6bSBaptiste Daroussin[ -z "${INSTALL_MAN}"     ] && INSTALL_MAN="${INSTALL} -m 0444"
63261d06d6bSBaptiste Daroussin[ -z "${INSTALL_DATA}"    ] && INSTALL_DATA="${INSTALL} -m 0444"
63361d06d6bSBaptiste Daroussin
63461d06d6bSBaptiste DaroussinBUILD_TARGETS=
63561d06d6bSBaptiste Daroussin[ ${BUILD_CGI} -gt 0 ] && BUILD_TARGETS="man.cgi"
63661d06d6bSBaptiste Daroussin[ ${BUILD_CATMAN} -gt 0 ] && \
63761d06d6bSBaptiste Daroussin	BUILD_TARGETS="${BUILD_TARGETS} mandocd catman"
63861d06d6bSBaptiste DaroussinINSTALL_TARGETS=
63961d06d6bSBaptiste Daroussin[ ${INSTALL_LIBMANDOC} -gt 0 ] && INSTALL_TARGETS="lib-install"
64061d06d6bSBaptiste Daroussin[ ${BUILD_CGI} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} cgi-install"
64161d06d6bSBaptiste Daroussin[ ${BUILD_CATMAN} -gt 0 ] && \
64261d06d6bSBaptiste Daroussin	INSTALL_TARGETS="${INSTALL_TARGETS} catman-install"
64361d06d6bSBaptiste Daroussin
64461d06d6bSBaptiste Daroussincat << __HEREDOC__
64561d06d6bSBaptiste DaroussinBUILD_TARGETS	= ${BUILD_TARGETS}
64661d06d6bSBaptiste DaroussinINSTALL_TARGETS	= ${INSTALL_TARGETS}
6476d38604fSBaptiste DaroussinAR		= ${AR}
64861d06d6bSBaptiste DaroussinCC		= ${CC}
64961d06d6bSBaptiste DaroussinCFLAGS		= ${CFLAGS}
65061d06d6bSBaptiste DaroussinLDADD		= ${LDADD}
65161d06d6bSBaptiste DaroussinLDFLAGS		= ${LDFLAGS}
652*c1c95addSBrooks DavisDEBUG_OBJS	= ${DEBUG_OBJS}
6536d38604fSBaptiste DaroussinMANDOC_COBJS	= ${MANDOC_COBJS}
6546d38604fSBaptiste DaroussinSOELIM_COBJS	= ${SOELIM_COBJS}
65561d06d6bSBaptiste DaroussinSTATIC		= ${STATIC}
65661d06d6bSBaptiste DaroussinPREFIX		= ${PREFIX}
65761d06d6bSBaptiste DaroussinBINDIR		= ${BINDIR}
65861d06d6bSBaptiste DaroussinSBINDIR		= ${SBINDIR}
65961d06d6bSBaptiste DaroussinBIN_FROM_SBIN	= ${BIN_FROM_SBIN}
66061d06d6bSBaptiste DaroussinINCLUDEDIR	= ${INCLUDEDIR}
66161d06d6bSBaptiste DaroussinLIBDIR		= ${LIBDIR}
66261d06d6bSBaptiste DaroussinMANDIR		= ${MANDIR}
663*c1c95addSBrooks DavisMISCDIR		= ${MISCDIR}
66461d06d6bSBaptiste DaroussinWWWPREFIX	= ${WWWPREFIX}
66561d06d6bSBaptiste DaroussinHTDOCDIR	= ${HTDOCDIR}
66661d06d6bSBaptiste DaroussinCGIBINDIR	= ${CGIBINDIR}
66761d06d6bSBaptiste DaroussinBINM_APROPOS	= ${BINM_APROPOS}
66861d06d6bSBaptiste DaroussinBINM_CATMAN	= ${BINM_CATMAN}
66961d06d6bSBaptiste DaroussinBINM_MAKEWHATIS	= ${BINM_MAKEWHATIS}
67061d06d6bSBaptiste DaroussinBINM_MAN	= ${BINM_MAN}
67161d06d6bSBaptiste DaroussinBINM_SOELIM	= ${BINM_SOELIM}
67261d06d6bSBaptiste DaroussinBINM_WHATIS	= ${BINM_WHATIS}
67361d06d6bSBaptiste DaroussinMANM_MAN	= ${MANM_MAN}
67461d06d6bSBaptiste DaroussinMANM_MANCONF	= ${MANM_MANCONF}
67561d06d6bSBaptiste DaroussinMANM_MDOC	= ${MANM_MDOC}
67661d06d6bSBaptiste DaroussinMANM_ROFF	= ${MANM_ROFF}
67761d06d6bSBaptiste DaroussinMANM_EQN	= ${MANM_EQN}
67861d06d6bSBaptiste DaroussinMANM_TBL	= ${MANM_TBL}
67961d06d6bSBaptiste DaroussinINSTALL		= ${INSTALL}
68061d06d6bSBaptiste DaroussinINSTALL_PROGRAM	= ${INSTALL_PROGRAM}
68161d06d6bSBaptiste DaroussinINSTALL_LIB	= ${INSTALL_LIB}
68261d06d6bSBaptiste DaroussinINSTALL_MAN	= ${INSTALL_MAN}
68361d06d6bSBaptiste DaroussinINSTALL_DATA	= ${INSTALL_DATA}
68461d06d6bSBaptiste DaroussinLN		= ${LN}
68561d06d6bSBaptiste Daroussin__HEREDOC__
68661d06d6bSBaptiste Daroussin
68761d06d6bSBaptiste Daroussinecho "file Makefile.local: written" 1>&2
68861d06d6bSBaptiste Daroussinecho "file Makefile.local: written" 1>&3
68961d06d6bSBaptiste Daroussin
69061d06d6bSBaptiste Daroussinexit 0
691