aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure313
1 files changed, 178 insertions, 135 deletions
diff --git a/configure b/configure
index 2df028da0510..5cf4e081c2cb 100755
--- a/configure
+++ b/configure
@@ -1,8 +1,8 @@
#!/bin/sh
#
-# $Id: configure,v 1.71 2019/07/01 22:56:24 schwarze Exp $
+# $Id: configure,v 1.81 2021/09/20 10:19:51 schwarze Exp $
#
-# Copyright (c) 2014-2019 Ingo Schwarze <schwarze@openbsd.org>
+# Copyright (c) 2014-2021 Ingo Schwarze <schwarze@openbsd.org>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -33,7 +33,7 @@ echo "file config.log: writing..."
# Initialize all variables here,
# such that nothing can leak in from the environment.
-SOURCEDIR=`dirname "$0"`
+SOURCEDIR=`dirname "${0}"`
MANPATH_BASE="/usr/share/man:/usr/X11R6/man"
MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man"
@@ -41,8 +41,10 @@ OSENUM=
OSNAME=
UTF8_LOCALE=
-CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -`
+AR=ar
+CC=cc
CFLAGS=
+FATAL=0
LDADD=
LDFLAGS=
LD_NANOSLEEP=
@@ -54,8 +56,8 @@ BUILD_CGI=0
BUILD_CATMAN=0
INSTALL_LIBMANDOC=0
+HAVE_ATTRIBUTE=
HAVE_CMSG=
-HAVE_CMSG_XPG42=0
HAVE_DIRENT_NAMLEN=
HAVE_EFTYPE=
HAVE_ENDIAN=
@@ -67,6 +69,7 @@ HAVE_GETSUBOPT=
HAVE_ISBLANK=
HAVE_LESS_T=
HAVE_MKDTEMP=
+HAVE_MKSTEMPS=
HAVE_NANOSLEEP=
HAVE_NTOHL=
HAVE_O_DIRECTORY=
@@ -94,6 +97,10 @@ HAVE_WCHAR=
NEED_GNU_SOURCE=0
NEED_OPENBSD_SOURCE=0
+NEED_XPG4_2=0
+
+MANDOC_COBJS=
+SOELIM_COBJS=
PREFIX="/usr/local"
BINDIR=
@@ -102,7 +109,7 @@ BIN_FROM_SBIN=
INCLUDEDIR=
LIBDIR=
MANDIR=
-HOMEBREWDIR=
+READ_ALLOWED_PATH=
WWWPREFIX="/var/www"
HTDOCDIR=
@@ -114,6 +121,7 @@ BINM_MAKEWHATIS="makewhatis"
BINM_MAN="man"
BINM_SOELIM="soelim"
BINM_WHATIS="whatis"
+BINM_PAGER=
MANM_MAN="man"
MANM_MANCONF="man.conf"
MANM_MDOC="mdoc"
@@ -159,16 +167,17 @@ ismanual() {
# In case of failure, do not decide anything yet.
# Arguments: test file name, test var name, additional CFLAGS
singletest() {
- n=${1}${3}${4}
+ n=${1}${3}
cat 1>&3 << __HEREDOC__
testing ${n} ...
-${COMP} -o test-${1} test-${1}.c ${3} ${4}
+${COMP} -o test-${1} test-${1}.c ${3}
__HEREDOC__
- if ${COMP} -o "test-${1}" "${SOURCEDIR}/test-${1}.c" ${3} ${4} 1>&3 2>&3
+ if ${COMP} -o "test-${1}" "${SOURCEDIR}/test-${1}.c" ${3} 1>&3 2>&3
then
echo "partial result of ${n}: ${CC} succeeded" 1>&3
else
+ echo "tested ${n}: no (compilation failed)" 1>&2
echo "result of ${n}: ${CC} failed with exit status $?" 1>&3
echo "result of compiling ${n}: no" 1>&3
echo 1>&3
@@ -180,11 +189,16 @@ __HEREDOC__
echo "result of running ${n}: yes" 1>&3
echo 1>&3
eval HAVE_${2}=1
- [ "X$3" = "X-D_GNU_SOURCE" ] && NEED_GNU_SOURCE=1
- [ "X$3" = "X-D_OPENBSD_SOURCE" ] && NEED_OPENBSD_SOURCE=1
+ [ "${3}" = "-D_GNU_SOURCE" ] && NEED_GNU_SOURCE=1
+ [ "${3}" = "-D_OPENBSD_SOURCE" ] && NEED_OPENBSD_SOURCE=1
+ [ "${3}" = "-D_XPG4_2" ] && NEED_XPG4_2=1
+ [ "${3}" = "-lrt" ] && LD_NANOSLEEP="-lrt"
+ [ "${3}" = "-lsocket" ] && LD_RECVMSG="-lsocket"
+ [ "${3}" = "-lutil" ] && LD_OHASH="-lutil"
rm "test-${1}"
return 0
else
+ echo "tested ${n}: no (execution failed)" 1>&2
echo "result of ${n}: execution failed with exit status $?" 1>&3
echo "result of running ${n}: no" 1>&3
echo 1>&3
@@ -196,11 +210,12 @@ __HEREDOC__
# Run a complete autoconfiguration test, including the check for
# a manual override and disabling the feature on failure.
# Arguments: test file name, test var name, additional CFLAGS
+# The final argument can optionally be repeated a second time.
runtest() {
eval _manual=\${HAVE_${2}}
ismanual "${1}" "${2}" "${_manual}" && return 0
- singletest "${1}" "${2}" "${3}" "${4}" && return 0
- echo "tested ${1}${3}${4}: no" 1>&2
+ singletest "${1}" "${2}" "${3}" && return 0
+ [ -n "${4}" ] && singletest "${1}" "${2}" "${4}" && return 0
eval HAVE_${2}=0
return 1
}
@@ -208,7 +223,7 @@ runtest() {
# Select a UTF-8 locale.
get_locale() {
[ -n "${HAVE_WCHAR}" ] && [ "${HAVE_WCHAR}" -eq 0 ] && return 0
- ismanual UTF8_LOCALE UTF8_LOCALE "$UTF8_LOCALE" && return 0
+ ismanual UTF8_LOCALE UTF8_LOCALE "${UTF8_LOCALE}" && return 0
echo "testing UTF8_LOCALE ..." 1>&3
UTF8_LOCALE=`locale -a | grep -i '^en_US\.UTF-*8$' | head -n 1`
if [ -z "${UTF8_LOCALE}" ]; then
@@ -228,9 +243,9 @@ if [ -n "${OSENUM}" ]; then
echo "OSENUM specified manually: ${OSENUM}" 1>&3
else
OSDETECT=`uname`
- if [ "X${OSDETECT}" = "XNetBSD" ]; then
+ if [ "${OSDETECT}" = "NetBSD" ]; then
OSENUM=MANDOC_OS_NETBSD
- elif [ "X${OSDETECT}" = "XOpenBSD" ]; then
+ elif [ "${OSDETECT}" = "OpenBSD" ]; then
OSENUM=MANDOC_OS_OPENBSD
else
OSENUM=MANDOC_OS_OTHER
@@ -250,8 +265,8 @@ if [ -n "${CFLAGS}" ]; then
else
COMP="${CC} ${DEFCFLAGS} -Wno-unused -Werror"
fi
-echo -n "tested ${CC} -W: " 1>&2
-echo -n "testing ${CC} -W: " 1>&3
+printf "%s" "tested ${CC} -W: " 1>&2
+printf "%s" "testing ${CC} -W: " 1>&3
runtest noop WFLAG || true
if [ -n "${CFLAGS}" ]; then
@@ -283,51 +298,48 @@ fi
# --- tests for config.h ----------------------------------------------
# --- library functions ---
+runtest attribute ATTRIBUTE || true
+runtest cmsg CMSG "" "-D_XPG4_2" || true
runtest dirent-namlen DIRENT_NAMLEN || true
runtest be32toh ENDIAN || true
runtest be32toh SYS_ENDIAN -DSYS_ENDIAN || true
runtest EFTYPE EFTYPE || true
runtest err ERR || true
runtest getline GETLINE || true
-singletest getsubopt GETSUBOPT || \
- runtest getsubopt GETSUBOPT -D_GNU_SOURCE || true
+runtest getsubopt GETSUBOPT "" -D_GNU_SOURCE || true
runtest isblank ISBLANK || true
runtest mkdtemp MKDTEMP || true
+runtest mkstemps MKSTEMPS || true
+runtest nanosleep NANOSLEEP "${LD_NANOSLEEP}" "-lrt" || true
runtest ntohl NTOHL || true
runtest O_DIRECTORY O_DIRECTORY || true
runtest PATH_MAX PATH_MAX || true
runtest pledge PLEDGE || true
runtest sandbox_init SANDBOX_INIT || true
runtest progname PROGNAME || true
-singletest reallocarray REALLOCARRAY || \
- runtest reallocarray REALLOCARRAY -D_OPENBSD_SOURCE || true
-singletest recallocarray RECALLOCARRAY || \
- runtest recallocarray RECALLOCARRAY -D_OPENBSD_SOURCE || true
+runtest reallocarray REALLOCARRAY "" -D_OPENBSD_SOURCE || true
+runtest recallocarray RECALLOCARRAY "" -D_OPENBSD_SOURCE || true
+runtest recvmsg RECVMSG "${LD_RECVMSG}" "-lsocket" || true
runtest rewb-bsd REWB_BSD || true
runtest rewb-sysv REWB_SYSV || true
-singletest strcasestr STRCASESTR || \
- runtest strcasestr STRCASESTR -D_GNU_SOURCE || true
+runtest strcasestr STRCASESTR "" -D_GNU_SOURCE || true
runtest stringlist STRINGLIST || true
runtest strlcat STRLCAT || true
runtest strlcpy STRLCPY || true
runtest strndup STRNDUP || true
-singletest strptime STRPTIME || \
- runtest strptime STRPTIME -D_GNU_SOURCE || true
+runtest strptime STRPTIME "" -D_GNU_SOURCE || true
runtest strsep STRSEP || true
-singletest strtonum STRTONUM || \
- runtest strtonum STRTONUM -D_OPENBSD_SOURCE || true
-singletest vasprintf VASPRINTF || \
- runtest vasprintf VASPRINTF -D_GNU_SOURCE || true
-
-if [ ${HAVE_ENDIAN} -eq 0 -a \
- ${HAVE_SYS_ENDIAN} -eq 0 -a \
- ${HAVE_NTOHL} -eq 0 ]; then
- echo "FATAL: no endian conversion functions found" 1>&2
- echo "FATAL: no endian conversion functions found" 1>&3
- exit 1
-fi
+runtest strtonum STRTONUM "" -D_OPENBSD_SOURCE || true
+runtest vasprintf VASPRINTF "" -D_GNU_SOURCE || true
-if ismanual fts FTS ${HAVE_FTS}; then
+# --- fts ---
+if [ "${1}" = "-depend" ]; then
+ HAVE_FTS=0
+ HAVE_FTS_COMPARE_CONST=0
+ echo "tested fts: HAVE_FTS=0 (for make depend)" 1>&2
+ echo "tested fts: HAVE_FTS=0 (for make depend)" 1>&3
+ echo 1>&3
+elif ismanual fts FTS ${HAVE_FTS}; then
HAVE_FTS_COMPARE_CONST=0
elif runtest fts FTS_COMPARE_CONST -DFTS_COMPARE_CONST; then
HAVE_FTS=1
@@ -335,25 +347,41 @@ else
runtest fts FTS || true
fi
-if ismanual "less -T" LESS_T ${HAVE_LESS_T}; then
+# --- pager ---
+manual=
+if [ -n "${BINM_PAGER}" ]; then
+ manual=" (manual)"
+elif less test-noop.c 1>/dev/null 2>&3; then
+ BINM_PAGER=less
+ echo "tested less: yes" 1>&2
+ echo "tested less: yes" 1>&3
+else
+ BINM_PAGER=more
+ echo "tested less: no" 1>&2
+ echo "tested less: no" 1>&3
+fi
+echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&2
+echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&3
+
+# --- tagging support in the pager ---
+if ismanual "${BINM_PAGER} -T" LESS_T ${HAVE_LESS_T}; then
:
-elif less -ET /dev/null test-noop.c 1>/dev/null 2>&3; then
+elif ${BINM_PAGER} -T /dev/null test-noop.c 1>/dev/null 2>&3; then
HAVE_LESS_T=1
- echo "tested less -T: yes" 1>&2
- echo "tested less -T: yes" 1>&3
+ echo "tested ${BINM_PAGER} -T: yes" 1>&2
+ echo "tested ${BINM_PAGER} -T: yes" 1>&3
echo 1>&3
else
HAVE_LESS_T=0
- echo "tested less -T: no" 1>&2
- echo "tested less -T: no" 1>&3
+ echo "tested ${BINM_PAGER} -T: no" 1>&2
+ echo "tested ${BINM_PAGER} -T: no" 1>&3
echo 1>&3
fi
# --- wide character and locale support ---
if get_locale; then
- singletest wchar WCHAR -DUTF8_LOCALE=\"${UTF8_LOCALE}\" || \
- runtest wchar WCHAR -D_GNU_SOURCE \
- -DUTF8_LOCALE=\"${UTF8_LOCALE}\" || true
+ runtest wchar WCHAR "-DUTF8_LOCALE=\"${UTF8_LOCALE}\"" \
+ "-D_GNU_SOURCE -DUTF8_LOCALE=\"${UTF8_LOCALE}\"" || true
else
HAVE_WCHAR=0
echo "tested wchar: no (no UTF8_LOCALE)" 1>&2
@@ -361,63 +389,45 @@ else
echo 1>&3
fi
-# --- nanosleep ---
-if [ -n "${LD_NANOSLEEP}" ]; then
- runtest nanosleep NANOSLEEP "${LD_NANOSLEEP}" || true
-elif singletest nanosleep NANOSLEEP; then
- :
-elif runtest nanosleep NANOSLEEP "-lrt"; then
- LD_NANOSLEEP="-lrt"
+# --- ohash ---
+if [ "${1}" = "-depend" ]; then
+ HAVE_OHASH=0
+ echo "tested ohash: HAVE_OHASH=0 (for make depend)" 1>&2
+ echo "tested ohash: HAVE_OHASH=0 (for make depend)" 1>&3
+ echo 1>&3
+else
+ runtest ohash OHASH "${LD_OHASH}" "-lutil" || true
+fi
+if [ "${HAVE_OHASH}" -eq 0 ]; then
+ LD_OHASH=
+fi
+
+# --- required functions ---
+if [ ${HAVE_ENDIAN} -eq 0 -a \
+ ${HAVE_SYS_ENDIAN} -eq 0 -a \
+ ${HAVE_NTOHL} -eq 0 ]; then
+ echo "FATAL: no endian conversion functions found" 1>&2
+ echo "FATAL: no endian conversion functions found" 1>&3
+ FATAL=1
fi
if [ "${HAVE_NANOSLEEP}" -eq 0 ]; then
echo "FATAL: nanosleep: no" 1>&2
echo "FATAL: nanosleep: no" 1>&3
- exit 1
+ FATAL=1
fi
-
-if [ ${BUILD_CATMAN} -gt 0 ]; then
- # --- recvmsg ---
- if [ -n "${LD_RECVMSG}" ]; then
- runtest recvmsg RECVMSG "${LD_RECVMSG}" || true
- elif singletest recvmsg RECVMSG; then
- :
- elif runtest recvmsg RECVMSG "-lsocket"; then
- LD_RECVMSG="-lsocket"
- fi
- if [ "${HAVE_RECVMSG}" -eq 0 ]; then
- echo "FATAL: recvmsg: no" 1>&2
- echo "FATAL: recvmsg: no" 1>&3
- echo "Without recvmsg(2), you cannot BUILD_CATMAN." 1>&2
- exit 1
- fi
-
- # --- cmsg ---
- if singletest cmsg CMSG; then
- :
- elif runtest cmsg CMSG "-D_XPG4_2"; then
- HAVE_CMSG_XPG42=1
- fi
- if [ "${HAVE_CMSG}" -eq 0 ]; then
- echo "FATAL: cmsg: no" 1>&2
- echo "FATAL: cmsg: no" 1>&3
- echo "Without CMSG_FIRSTHDR(3), you cannot BUILD_CATMAN." 1>&2
- exit 1
- fi
-fi
-
-# --- ohash ---
-if ismanual ohash OHASH "${HAVE_OHASH}"; then
- :
-elif [ -n "${LD_OHASH}" ]; then
- runtest ohash OHASH "${LD_OHASH}" || true
-elif singletest ohash OHASH; then
- :
-elif runtest ohash OHASH "-lutil"; then
- LD_OHASH="-lutil"
+if [ ${BUILD_CATMAN} -gt 0 -a "${HAVE_RECVMSG}" -eq 0 ]; then
+ echo "FATAL: recvmsg: no" 1>&2
+ echo "FATAL: recvmsg: no" 1>&3
+ echo "Without recvmsg(2), you cannot BUILD_CATMAN." 1>&2
+ FATAL=1
fi
-if [ "${HAVE_OHASH}" -eq 0 ]; then
- LD_OHASH=
+if [ ${BUILD_CATMAN} -gt 0 -a "${HAVE_CMSG}" -eq 0 ]; then
+ echo "FATAL: cmsg: no" 1>&2
+ echo "FATAL: cmsg: no" 1>&3
+ echo "Without CMSG_FIRSTHDR(3), you cannot BUILD_CATMAN." 1>&2
+ FATAL=1
fi
+[ "${FATAL}" -eq 0 ] || exit 1
# --- LDADD ---
LDADD="${LDADD} ${LD_NANOSLEEP} ${LD_RECVMSG} ${LD_OHASH} -lz"
@@ -434,10 +444,6 @@ cat << __HEREDOC__
#error "Do not use C++. See the INSTALL file."
#endif
-#if !defined(__GNUC__) || (__GNUC__ < 4)
-#define __attribute__(x)
-#endif
-
__HEREDOC__
[ ${NEED_GNU_SOURCE} -eq 0 ] || echo "#define _GNU_SOURCE"
@@ -458,7 +464,9 @@ echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\""
echo "#define OSENUM ${OSENUM}"
[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\""
[ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\""
-[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\""
+[ -n "${READ_ALLOWED_PATH}" ] \
+ && echo "#define READ_ALLOWED_PATH \"${READ_ALLOWED_PATH}\""
+[ ${HAVE_ATTRIBUTE} -eq 0 ] && echo "#define __attribute__(x)"
[ ${HAVE_EFTYPE} -eq 0 ] && echo "#define EFTYPE EINVAL"
[ ${HAVE_O_DIRECTORY} -eq 0 ] && echo "#define O_DIRECTORY 0"
[ ${HAVE_PATH_MAX} -eq 0 ] && echo "#define PATH_MAX 4096"
@@ -466,9 +474,8 @@ if [ ${HAVE_ENDIAN} -eq 0 -a ${HAVE_SYS_ENDIAN} -eq 0 ]; then
echo "#define be32toh ntohl"
echo "#define htobe32 htonl"
fi
-
cat << __HEREDOC__
-#define HAVE_CMSG_XPG42 ${HAVE_CMSG_XPG42}
+
#define HAVE_DIRENT_NAMLEN ${HAVE_DIRENT_NAMLEN}
#define HAVE_ENDIAN ${HAVE_ENDIAN}
#define HAVE_ERR ${HAVE_ERR}
@@ -479,6 +486,7 @@ cat << __HEREDOC__
#define HAVE_ISBLANK ${HAVE_ISBLANK}
#define HAVE_LESS_T ${HAVE_LESS_T}
#define HAVE_MKDTEMP ${HAVE_MKDTEMP}
+#define HAVE_MKSTEMPS ${HAVE_MKSTEMPS}
#define HAVE_NTOHL ${HAVE_NTOHL}
#define HAVE_PLEDGE ${HAVE_PLEDGE}
#define HAVE_PROGNAME ${HAVE_PROGNAME}
@@ -499,6 +507,7 @@ cat << __HEREDOC__
#define HAVE_VASPRINTF ${HAVE_VASPRINTF}
#define HAVE_WCHAR ${HAVE_WCHAR}
#define HAVE_OHASH ${HAVE_OHASH}
+#define NEED_XPG4_2 ${NEED_XPG4_2}
#define BINM_APROPOS "${BINM_APROPOS}"
#define BINM_CATMAN "${BINM_CATMAN}"
@@ -506,6 +515,7 @@ cat << __HEREDOC__
#define BINM_MAN "${BINM_MAN}"
#define BINM_SOELIM "${BINM_SOELIM}"
#define BINM_WHATIS "${BINM_WHATIS}"
+#define BINM_PAGER "${BINM_PAGER}"
__HEREDOC__
@@ -514,52 +524,82 @@ if [ ${HAVE_ERR} -eq 0 ]; then
echo "extern void errx(int, const char *, ...);"
echo "extern void warn(const char *, ...);"
echo "extern void warnx(const char *, ...);"
+ MANDOC_COBJS="${MANDOC_COBJS} compat_err.o"
+ SOELIM_COBJS="${SOELIM_COBJS} compat_err.o"
fi
-
-[ ${HAVE_GETLINE} -eq 0 ] && \
+if [ ${HAVE_FTS} -eq 0 ]; then
+ MANDOC_COBJS="${MANDOC_COBJS} compat_fts.o"
+fi
+if [ ${HAVE_GETLINE} -eq 0 ]; then
echo "extern ssize_t getline(char **, size_t *, FILE *);"
-
-[ ${HAVE_GETSUBOPT} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_getline.o"
+ SOELIM_COBJS="${SOELIM_COBJS} compat_getline.o"
+fi
+if [ ${HAVE_GETSUBOPT} -eq 0 ]; then
echo "extern int getsubopt(char **, char * const *, char **);"
-
-[ ${HAVE_ISBLANK} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_getsubopt.o"
+fi
+if [ ${HAVE_ISBLANK} -eq 0 ]; then
echo "extern int isblank(int);"
-
-[ ${HAVE_MKDTEMP} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_isblank.o"
+fi
+if [ ${HAVE_MKDTEMP} -eq 0 ]; then
echo "extern char *mkdtemp(char *);"
-
+ MANDOC_COBJS="${MANDOC_COBJS} compat_mkdtemp.o"
+fi
+if [ ${HAVE_MKSTEMPS} -eq 0 ]; then
+ echo "extern int mkstemps(char *, int);"
+ MANDOC_COBJS="${MANDOC_COBJS} compat_mkstemps.o"
+fi
+if [ ${HAVE_OHASH} -eq 0 ]; then
+ MANDOC_COBJS="${MANDOC_COBJS} compat_ohash.o"
+fi
if [ ${HAVE_PROGNAME} -eq 0 ]; then
echo "extern const char *getprogname(void);"
echo "extern void setprogname(const char *);"
+ MANDOC_COBJS="${MANDOC_COBJS} compat_progname.o"
+ SOELIM_COBJS="${SOELIM_COBJS} compat_progname.o"
fi
-
-[ ${HAVE_REALLOCARRAY} -eq 0 ] && \
+if [ ${HAVE_REALLOCARRAY} -eq 0 ]; then
echo "extern void *reallocarray(void *, size_t, size_t);"
-
-[ ${HAVE_RECALLOCARRAY} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_reallocarray.o"
+ SOELIM_COBJS="${SOELIM_COBJS} compat_reallocarray.o"
+fi
+if [ ${HAVE_RECALLOCARRAY} -eq 0 ]; then
echo "extern void *recallocarray(void *, size_t, size_t, size_t);"
-
-[ ${HAVE_STRCASESTR} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_recallocarray.o"
+fi
+if [ ${HAVE_STRCASESTR} -eq 0 ]; then
echo "extern char *strcasestr(const char *, const char *);"
-
-[ ${HAVE_STRLCAT} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_strcasestr.o"
+fi
+if [ ${HAVE_STRINGLIST} -eq 0 ]; then
+ SOELIM_COBJS="${SOELIM_COBJS} compat_stringlist.o"
+fi
+if [ ${HAVE_STRLCAT} -eq 0 ]; then
echo "extern size_t strlcat(char *, const char *, size_t);"
-
-[ ${HAVE_STRLCPY} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_strlcat.o"
+fi
+if [ ${HAVE_STRLCPY} -eq 0 ]; then
echo "extern size_t strlcpy(char *, const char *, size_t);"
-
-[ ${HAVE_STRNDUP} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_strlcpy.o"
+fi
+if [ ${HAVE_STRNDUP} -eq 0 ]; then
echo "extern char *strndup(const char *, size_t);"
-
-[ ${HAVE_STRSEP} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_strndup.o"
+fi
+if [ ${HAVE_STRSEP} -eq 0 ]; then
echo "extern char *strsep(char **, const char *);"
-
-[ ${HAVE_STRTONUM} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_strsep.o"
+fi
+if [ ${HAVE_STRTONUM} -eq 0 ]; then
echo "extern long long strtonum(const char *, long long, long long, const char **);"
-
-[ ${HAVE_VASPRINTF} -eq 0 ] && \
+ MANDOC_COBJS="${MANDOC_COBJS} compat_strtonum.o"
+fi
+if [ ${HAVE_VASPRINTF} -eq 0 ]; then
echo "extern int vasprintf(char **, const char *, va_list);"
-
+ MANDOC_COBJS="${MANDOC_COBJS} compat_vasprintf.o"
+fi
echo "file config.h: written" 1>&2
echo "file config.h: written" 1>&3
@@ -595,10 +635,13 @@ INSTALL_TARGETS=
cat << __HEREDOC__
BUILD_TARGETS = ${BUILD_TARGETS}
INSTALL_TARGETS = ${INSTALL_TARGETS}
+AR = ${AR}
CC = ${CC}
CFLAGS = ${CFLAGS}
LDADD = ${LDADD}
LDFLAGS = ${LDFLAGS}
+MANDOC_COBJS = ${MANDOC_COBJS}
+SOELIM_COBJS = ${SOELIM_COBJS}
STATIC = ${STATIC}
PREFIX = ${PREFIX}
BINDIR = ${BINDIR}