version 1.65, 2018/02/27 11:16:23 |
version 1.71, 2019/07/01 22:56:24 |
|
|
# |
# |
# $Id$ |
# $Id$ |
# |
# |
# Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@openbsd.org> |
# Copyright (c) 2014-2019 Ingo Schwarze <schwarze@openbsd.org> |
# |
# |
# Permission to use, copy, modify, and distribute this software for any |
# Permission to use, copy, modify, and distribute this software for any |
# purpose with or without fee is hereby granted, provided that the above |
# purpose with or without fee is hereby granted, provided that the above |
|
|
# 3: config.log |
# 3: config.log |
|
|
exec 3> config.log |
exec 3> config.log |
echo "config.log: writing..." |
echo "file config.log: writing..." |
|
|
# --- default settings ------------------------------------------------- |
# --- default settings ------------------------------------------------- |
# Initialize all variables here, |
# Initialize all variables here, |
Line 37 SOURCEDIR=`dirname "$0"` |
|
Line 37 SOURCEDIR=`dirname "$0"` |
|
|
|
MANPATH_BASE="/usr/share/man:/usr/X11R6/man" |
MANPATH_BASE="/usr/share/man:/usr/X11R6/man" |
MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" |
MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" |
|
OSENUM= |
OSNAME= |
OSNAME= |
UTF8_LOCALE= |
UTF8_LOCALE= |
|
|
CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -` |
CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -` |
CFLAGS="-g -W -Wall -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings" |
CFLAGS= |
CFLAGS="${CFLAGS} -Wno-unused-parameter" |
|
LDADD= |
LDADD= |
LDFLAGS= |
LDFLAGS= |
LD_NANOSLEEP= |
LD_NANOSLEEP= |
LD_OHASH= |
LD_OHASH= |
LD_RECVMSG= |
LD_RECVMSG= |
STATIC="-static" |
STATIC= |
|
|
BUILD_CGI=0 |
BUILD_CGI=0 |
BUILD_CATMAN=0 |
BUILD_CATMAN=0 |
Line 65 HAVE_FTS_COMPARE_CONST= |
|
Line 65 HAVE_FTS_COMPARE_CONST= |
|
HAVE_GETLINE= |
HAVE_GETLINE= |
HAVE_GETSUBOPT= |
HAVE_GETSUBOPT= |
HAVE_ISBLANK= |
HAVE_ISBLANK= |
|
HAVE_LESS_T= |
HAVE_MKDTEMP= |
HAVE_MKDTEMP= |
HAVE_NANOSLEEP= |
HAVE_NANOSLEEP= |
HAVE_NTOHL= |
HAVE_NTOHL= |
|
|
HAVE_VASPRINTF= |
HAVE_VASPRINTF= |
HAVE_WCHAR= |
HAVE_WCHAR= |
|
|
|
NEED_GNU_SOURCE=0 |
|
NEED_OPENBSD_SOURCE=0 |
|
|
PREFIX="/usr/local" |
PREFIX="/usr/local" |
BINDIR= |
BINDIR= |
SBINDIR= |
SBINDIR= |
|
|
# --- manual settings from configure.local ----------------------------- |
# --- manual settings from configure.local ----------------------------- |
|
|
if [ -r ./configure.local ]; then |
if [ -r ./configure.local ]; then |
echo "configure.local: reading..." 1>&2 |
echo "file configure.local: reading..." 1>&2 |
echo "configure.local: reading..." 1>&3 |
echo "file configure.local: reading..." 1>&3 |
cat ./configure.local 1>&3 |
cat ./configure.local 1>&3 |
. ./configure.local |
. ./configure.local |
else |
else |
echo "configure.local: no (fully automatic configuration)" 1>&2 |
echo "file configure.local: no (fully automatic configuration)" 1>&2 |
echo "configure.local: no (fully automatic configuration)" 1>&3 |
echo "file configure.local: no (fully automatic configuration)" 1>&3 |
fi |
fi |
echo 1>&3 |
echo 1>&3 |
|
|
# --- tests for config.h ---------------------------------------------- |
# --- tests functions -------------------------------------------------- |
|
|
COMP="${CC} ${CFLAGS} -Wno-unused -Werror" |
|
|
|
# Check whether this HAVE_ setting is manually overridden. |
# Check whether this HAVE_ setting is manually overridden. |
# If yes, use the override, if no, do not decide anything yet. |
# If yes, use the override, if no, do not decide anything yet. |
# Arguments: lower-case test name, manual value |
# Arguments: test file name, test var name, manual value |
ismanual() { |
ismanual() { |
[ -z "${3}" ] && return 1 |
[ -z "${3}" ] && return 1 |
echo "${1}: manual (HAVE_${2}=${3})" 1>&2 |
echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&2 |
echo "${1}: manual (HAVE_${2}=${3})" 1>&3 |
echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&3 |
echo 1>&3 |
echo 1>&3 |
return 0 |
return 0 |
} |
} |
|
|
# Run a single autoconfiguration test. |
# Run a single autoconfiguration test. |
# In case of success, enable the feature. |
# In case of success, enable the feature. |
# In case of failure, do not decide anything yet. |
# In case of failure, do not decide anything yet. |
# Arguments: lower-case test name, upper-case test name, additional CFLAGS |
# Arguments: test file name, test var name, additional CFLAGS |
singletest() { |
singletest() { |
|
n=${1}${3}${4} |
cat 1>&3 << __HEREDOC__ |
cat 1>&3 << __HEREDOC__ |
${1}${3}: testing... |
testing ${n} ... |
${COMP} -o test-${1} test-${1}.c ${3} |
${COMP} -o test-${1} test-${1}.c ${3} ${4} |
__HEREDOC__ |
__HEREDOC__ |
|
|
if ${COMP} -o "test-${1}" "${SOURCEDIR}/test-${1}.c" ${3} 1>&3 2>&3 |
if ${COMP} -o "test-${1}" "${SOURCEDIR}/test-${1}.c" ${3} ${4} 1>&3 2>&3 |
then |
then |
echo "${1}${3}: ${CC} succeeded" 1>&3 |
echo "partial result of ${n}: ${CC} succeeded" 1>&3 |
else |
else |
echo "${1}${3}: ${CC} failed with $?" 1>&3 |
echo "result of ${n}: ${CC} failed with exit status $?" 1>&3 |
|
echo "result of compiling ${n}: no" 1>&3 |
echo 1>&3 |
echo 1>&3 |
return 1 |
return 1 |
fi |
fi |
|
|
if ./test-${1} 1>&3 2>&3; then |
if ./test-${1} 1>&3 2>&3; then |
echo "${1}${3}: yes" 1>&2 |
echo "tested ${n}: yes" 1>&2 |
echo "${1}${3}: yes" 1>&3 |
echo "result of running ${n}: yes" 1>&3 |
echo 1>&3 |
echo 1>&3 |
eval HAVE_${2}=1 |
eval HAVE_${2}=1 |
|
[ "X$3" = "X-D_GNU_SOURCE" ] && NEED_GNU_SOURCE=1 |
|
[ "X$3" = "X-D_OPENBSD_SOURCE" ] && NEED_OPENBSD_SOURCE=1 |
rm "test-${1}" |
rm "test-${1}" |
return 0 |
return 0 |
else |
else |
echo "${1}${3}: execution failed with $?" 1>&3 |
echo "result of ${n}: execution failed with exit status $?" 1>&3 |
|
echo "result of running ${n}: no" 1>&3 |
echo 1>&3 |
echo 1>&3 |
rm "test-${1}" |
rm "test-${1}" |
return 1 |
return 1 |
|
|
|
|
# Run a complete autoconfiguration test, including the check for |
# Run a complete autoconfiguration test, including the check for |
# a manual override and disabling the feature on failure. |
# a manual override and disabling the feature on failure. |
# Arguments: lower case name, upper case name, additional CFLAGS |
# Arguments: test file name, test var name, additional CFLAGS |
runtest() { |
runtest() { |
eval _manual=\${HAVE_${2}} |
eval _manual=\${HAVE_${2}} |
ismanual "${1}" "${2}" "${_manual}" && return 0 |
ismanual "${1}" "${2}" "${_manual}" && return 0 |
singletest "${1}" "${2}" "${3}" && return 0 |
singletest "${1}" "${2}" "${3}" "${4}" && return 0 |
echo "${1}${3}: no" 1>&2 |
echo "tested ${1}${3}${4}: no" 1>&2 |
eval HAVE_${2}=0 |
eval HAVE_${2}=0 |
return 1 |
return 1 |
} |
} |
|
|
get_locale() { |
get_locale() { |
[ -n "${HAVE_WCHAR}" ] && [ "${HAVE_WCHAR}" -eq 0 ] && return 0 |
[ -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 "UTF8_LOCALE: testing..." 1>&3 |
echo "testing UTF8_LOCALE ..." 1>&3 |
UTF8_LOCALE=`locale -a | grep -i '^en_US\.UTF-*8$' | head -n 1` |
UTF8_LOCALE=`locale -a | grep -i '^en_US\.UTF-*8$' | head -n 1` |
if [ -z "${UTF8_LOCALE}" ]; then |
if [ -z "${UTF8_LOCALE}" ]; then |
UTF8_LOCALE=`locale -a | grep -i '\.UTF-*8' | head -n 1` |
UTF8_LOCALE=`locale -a | grep -i '\.UTF-*8' | head -n 1` |
[ -n "${UTF8_LOCALE}" ] || return 1 |
[ -n "${UTF8_LOCALE}" ] || return 1 |
fi |
fi |
echo "UTF8_LOCALE=${UTF8_LOCALE}" 1>&2 |
echo "selected UTF8_LOCALE=${UTF8_LOCALE}" 1>&2 |
echo "UTF8_LOCALE=${UTF8_LOCALE}" 1>&3 |
echo "selected UTF8_LOCALE=${UTF8_LOCALE}" 1>&3 |
echo 1>&3 |
echo 1>&3 |
return 0; |
return 0; |
} |
} |
|
|
|
# --- operating system ------------------------------------------------- |
|
|
|
if [ -n "${OSENUM}" ]; then |
|
echo "OSENUM specified manually: ${OSENUM}" 1>&2 |
|
echo "OSENUM specified manually: ${OSENUM}" 1>&3 |
|
else |
|
OSDETECT=`uname` |
|
if [ "X${OSDETECT}" = "XNetBSD" ]; then |
|
OSENUM=MANDOC_OS_NETBSD |
|
elif [ "X${OSDETECT}" = "XOpenBSD" ]; then |
|
OSENUM=MANDOC_OS_OPENBSD |
|
else |
|
OSENUM=MANDOC_OS_OTHER |
|
fi |
|
echo "tested operating system: ${OSDETECT} -> OSENUM=${OSENUM}" 1>&2 |
|
echo "tested operating system: ${OSDETECT} -> OSENUM=${OSENUM}" 1>&3 |
|
unset OSDETECT |
|
fi |
|
echo 1>&3 |
|
|
|
# --- compiler options ------------------------------------------------- |
|
|
|
DEFCFLAGS="-g -W -Wall -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wno-unused-parameter" |
|
|
|
if [ -n "${CFLAGS}" ]; then |
|
COMP="${CC} ${CFLAGS} -Wno-unused -Werror" |
|
else |
|
COMP="${CC} ${DEFCFLAGS} -Wno-unused -Werror" |
|
fi |
|
echo -n "tested ${CC} -W: " 1>&2 |
|
echo -n "testing ${CC} -W: " 1>&3 |
|
runtest noop WFLAG || true |
|
|
|
if [ -n "${CFLAGS}" ]; then |
|
echo "CFLAGS specified manually:" 1>&3 |
|
elif [ ${HAVE_WFLAG} -eq 0 ]; then |
|
CFLAGS="-g" |
|
else |
|
CFLAGS="${DEFCFLAGS}" |
|
fi |
|
echo "selected CFLAGS=\"${CFLAGS}\"" 1>&2 |
|
echo "selected CFLAGS=\"${CFLAGS}\"" 1>&3 |
|
echo 1>&3 |
|
|
|
COMP="${CC} ${CFLAGS}" |
|
[ ${HAVE_WFLAG} -eq 0 ] || COMP="${COMP} -Wno-unused -Werror" |
|
|
|
if [ -n "${STATIC}" ]; then |
|
echo "selected STATIC=\"${STATIC}\" (manual)" 1>&2 |
|
echo "selected STATIC=\"${STATIC}\" (manual)" 1>&3 |
|
echo 1>&3 |
|
else |
|
runtest noop STATIC -static || true |
|
[ ${HAVE_STATIC} -eq 0 ] || STATIC="-static" |
|
echo "selected STATIC=\"${STATIC}\"" 1>&2 |
|
echo "selected STATIC=\"${STATIC}\"" 1>&3 |
|
echo 1>&3 |
|
fi |
|
|
|
# --- tests for config.h ---------------------------------------------- |
|
|
# --- library functions --- |
# --- library functions --- |
runtest dirent-namlen DIRENT_NAMLEN || true |
runtest dirent-namlen DIRENT_NAMLEN || true |
runtest be32toh ENDIAN || true |
runtest be32toh ENDIAN || true |
Line 222 runtest be32toh SYS_ENDIAN -DSYS_ENDIAN || true |
|
Line 289 runtest be32toh SYS_ENDIAN -DSYS_ENDIAN || true |
|
runtest EFTYPE EFTYPE || true |
runtest EFTYPE EFTYPE || true |
runtest err ERR || true |
runtest err ERR || true |
runtest getline GETLINE || true |
runtest getline GETLINE || true |
runtest getsubopt GETSUBOPT || true |
singletest getsubopt GETSUBOPT || \ |
|
runtest getsubopt GETSUBOPT -D_GNU_SOURCE || true |
runtest isblank ISBLANK || true |
runtest isblank ISBLANK || true |
runtest mkdtemp MKDTEMP || true |
runtest mkdtemp MKDTEMP || true |
runtest ntohl NTOHL || true |
runtest ntohl NTOHL || true |
Line 231 runtest PATH_MAX PATH_MAX || true |
|
Line 299 runtest PATH_MAX PATH_MAX || true |
|
runtest pledge PLEDGE || true |
runtest pledge PLEDGE || true |
runtest sandbox_init SANDBOX_INIT || true |
runtest sandbox_init SANDBOX_INIT || true |
runtest progname PROGNAME || true |
runtest progname PROGNAME || true |
runtest reallocarray REALLOCARRAY || true |
singletest reallocarray REALLOCARRAY || \ |
runtest recallocarray RECALLOCARRAY || true |
runtest reallocarray REALLOCARRAY -D_OPENBSD_SOURCE || true |
|
singletest recallocarray RECALLOCARRAY || \ |
|
runtest recallocarray RECALLOCARRAY -D_OPENBSD_SOURCE || true |
runtest rewb-bsd REWB_BSD || true |
runtest rewb-bsd REWB_BSD || true |
runtest rewb-sysv REWB_SYSV || true |
runtest rewb-sysv REWB_SYSV || true |
runtest strcasestr STRCASESTR || true |
singletest strcasestr STRCASESTR || \ |
|
runtest strcasestr STRCASESTR -D_GNU_SOURCE || true |
runtest stringlist STRINGLIST || true |
runtest stringlist STRINGLIST || true |
runtest strlcat STRLCAT || true |
runtest strlcat STRLCAT || true |
runtest strlcpy STRLCPY || true |
runtest strlcpy STRLCPY || true |
runtest strndup STRNDUP || true |
runtest strndup STRNDUP || true |
runtest strptime STRPTIME || true |
singletest strptime STRPTIME || \ |
|
runtest strptime STRPTIME -D_GNU_SOURCE || true |
runtest strsep STRSEP || true |
runtest strsep STRSEP || true |
runtest strtonum STRTONUM || true |
singletest strtonum STRTONUM || \ |
runtest vasprintf VASPRINTF || true |
runtest strtonum STRTONUM -D_OPENBSD_SOURCE || true |
|
singletest vasprintf VASPRINTF || \ |
|
runtest vasprintf VASPRINTF -D_GNU_SOURCE || true |
|
|
if [ ${HAVE_ENDIAN} -eq 0 -a \ |
if [ ${HAVE_ENDIAN} -eq 0 -a \ |
${HAVE_SYS_ENDIAN} -eq 0 -a \ |
${HAVE_SYS_ENDIAN} -eq 0 -a \ |
|
|
runtest fts FTS || true |
runtest fts FTS || true |
fi |
fi |
|
|
|
if ismanual "less -T" LESS_T ${HAVE_LESS_T}; then |
|
: |
|
elif less -ET /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 1>&3 |
|
else |
|
HAVE_LESS_T=0 |
|
echo "tested less -T: no" 1>&2 |
|
echo "tested less -T: no" 1>&3 |
|
echo 1>&3 |
|
fi |
|
|
# --- wide character and locale support --- |
# --- wide character and locale support --- |
if get_locale; then |
if get_locale; then |
runtest wchar WCHAR -DUTF8_LOCALE=\"${UTF8_LOCALE}\" || true |
singletest wchar WCHAR -DUTF8_LOCALE=\"${UTF8_LOCALE}\" || \ |
|
runtest wchar WCHAR -D_GNU_SOURCE \ |
|
-DUTF8_LOCALE=\"${UTF8_LOCALE}\" || true |
else |
else |
HAVE_WCHAR=0 |
HAVE_WCHAR=0 |
echo "wchar: no (no UTF8_LOCALE)" 1>&2 |
echo "tested wchar: no (no UTF8_LOCALE)" 1>&2 |
echo "wchar: no (no UTF8_LOCALE)" 1>&3 |
echo "tested wchar: no (no UTF8_LOCALE)" 1>&3 |
|
echo 1>&3 |
fi |
fi |
|
|
# --- nanosleep --- |
# --- nanosleep --- |
|
|
|
|
# --- LDADD --- |
# --- LDADD --- |
LDADD="${LDADD} ${LD_NANOSLEEP} ${LD_RECVMSG} ${LD_OHASH} -lz" |
LDADD="${LDADD} ${LD_NANOSLEEP} ${LD_RECVMSG} ${LD_OHASH} -lz" |
echo "LDADD=\"${LDADD}\"" 1>&2 |
echo "selected LDADD=\"${LDADD}\"" 1>&2 |
echo "LDADD=\"${LDADD}\"" 1>&3 |
echo "selected LDADD=\"${LDADD}\"" 1>&3 |
echo 1>&3 |
echo 1>&3 |
|
|
# --- write config.h --- |
# --- write config.h --- |
Line 347 cat << __HEREDOC__ |
|
Line 438 cat << __HEREDOC__ |
|
#define __attribute__(x) |
#define __attribute__(x) |
#endif |
#endif |
|
|
#if defined(__linux__) || defined(__MINT__) |
|
#define _GNU_SOURCE /* See test-*.c what needs this. */ |
|
#endif |
|
|
|
__HEREDOC__ |
__HEREDOC__ |
|
|
|
[ ${NEED_GNU_SOURCE} -eq 0 ] || echo "#define _GNU_SOURCE" |
|
[ ${NEED_OPENBSD_SOURCE} -eq 0 ] || echo "#define _OPENBSD_SOURCE" |
|
|
[ ${HAVE_GETLINE} -eq 0 -o \ |
[ ${HAVE_GETLINE} -eq 0 -o \ |
${HAVE_REALLOCARRAY} -eq 0 -o ${HAVE_RECALLOCARRAY} -eq 0 -o \ |
${HAVE_REALLOCARRAY} -eq 0 -o ${HAVE_RECALLOCARRAY} -eq 0 -o \ |
${HAVE_STRLCAT} -eq 0 -o ${HAVE_STRLCPY} -eq 0 -o \ |
${HAVE_STRLCAT} -eq 0 -o ${HAVE_STRLCPY} -eq 0 -o \ |
|
|
echo "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\"" |
echo "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\"" |
echo "#define MANPATH_BASE \"${MANPATH_BASE}\"" |
echo "#define MANPATH_BASE \"${MANPATH_BASE}\"" |
echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\"" |
echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\"" |
|
echo "#define OSENUM ${OSENUM}" |
[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\"" |
[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\"" |
[ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\"" |
[ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\"" |
[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\"" |
[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\"" |
Line 386 cat << __HEREDOC__ |
|
Line 477 cat << __HEREDOC__ |
|
#define HAVE_GETLINE ${HAVE_GETLINE} |
#define HAVE_GETLINE ${HAVE_GETLINE} |
#define HAVE_GETSUBOPT ${HAVE_GETSUBOPT} |
#define HAVE_GETSUBOPT ${HAVE_GETSUBOPT} |
#define HAVE_ISBLANK ${HAVE_ISBLANK} |
#define HAVE_ISBLANK ${HAVE_ISBLANK} |
|
#define HAVE_LESS_T ${HAVE_LESS_T} |
#define HAVE_MKDTEMP ${HAVE_MKDTEMP} |
#define HAVE_MKDTEMP ${HAVE_MKDTEMP} |
#define HAVE_NTOHL ${HAVE_NTOHL} |
#define HAVE_NTOHL ${HAVE_NTOHL} |
#define HAVE_PLEDGE ${HAVE_PLEDGE} |
#define HAVE_PLEDGE ${HAVE_PLEDGE} |
|
|
echo "extern char *mkdtemp(char *);" |
echo "extern char *mkdtemp(char *);" |
|
|
if [ ${HAVE_PROGNAME} -eq 0 ]; then |
if [ ${HAVE_PROGNAME} -eq 0 ]; then |
echo "extern const char *getprogname(void);" |
echo "extern const char *getprogname(void);" |
echo "extern void setprogname(const char *);" |
echo "extern void setprogname(const char *);" |
fi |
fi |
|
|
|
|
[ ${HAVE_VASPRINTF} -eq 0 ] && \ |
[ ${HAVE_VASPRINTF} -eq 0 ] && \ |
echo "extern int vasprintf(char **, const char *, va_list);" |
echo "extern int vasprintf(char **, const char *, va_list);" |
|
|
echo "config.h: written" 1>&2 |
echo "file config.h: written" 1>&2 |
echo "config.h: written" 1>&3 |
echo "file config.h: written" 1>&3 |
|
|
# --- tests for Makefile.local ----------------------------------------- |
# --- tests for Makefile.local ----------------------------------------- |
|
|
Line 538 INSTALL_DATA = ${INSTALL_DATA} |
|
Line 630 INSTALL_DATA = ${INSTALL_DATA} |
|
LN = ${LN} |
LN = ${LN} |
__HEREDOC__ |
__HEREDOC__ |
|
|
echo "Makefile.local: written" 1>&2 |
echo "file Makefile.local: written" 1>&2 |
echo "Makefile.local: written" 1>&3 |
echo "file Makefile.local: written" 1>&3 |
|
|
exit 0 |
exit 0 |