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