version 1.39, 2016/07/10 18:24:23 |
version 1.51, 2016/08/10 12:50:24 |
|
|
#!/bin/sh |
#!/bin/sh |
# |
# |
|
# $Id$ |
|
# |
# Copyright (c) 2014, 2015, 2016 Ingo Schwarze <schwarze@openbsd.org> |
# Copyright (c) 2014, 2015, 2016 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 |
Line 33 echo "config.log: writing..." |
|
Line 35 echo "config.log: writing..." |
|
|
|
MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" |
MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" |
OSNAME= |
OSNAME= |
|
UTF8_LOCALE= |
|
|
CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | make -f -` |
CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -` |
CFLAGS="-g -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings" |
CFLAGS="-g -W -Wall -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings" |
|
CFLAGS="${CFLAGS} -Wno-unused-parameter" |
LDADD= |
LDADD= |
LDFLAGS= |
LDFLAGS= |
|
LD_NANOSLEEP= |
LD_OHASH= |
LD_OHASH= |
LD_SQLITE3= |
|
STATIC="-static" |
STATIC="-static" |
|
|
BUILD_DB=1 |
|
BUILD_CGI=0 |
BUILD_CGI=0 |
|
|
HAVE_DIRENT_NAMLEN= |
HAVE_DIRENT_NAMLEN= |
|
HAVE_EFTYPE= |
|
HAVE_ENDIAN= |
HAVE_ERR= |
HAVE_ERR= |
HAVE_FTS= |
HAVE_FTS= |
HAVE_GETLINE= |
HAVE_GETLINE= |
HAVE_GETSUBOPT= |
HAVE_GETSUBOPT= |
HAVE_ISBLANK= |
HAVE_ISBLANK= |
HAVE_MKDTEMP= |
HAVE_MKDTEMP= |
HAVE_MMAP= |
HAVE_NANOSLEEP= |
|
HAVE_NTOHL= |
|
HAVE_OHASH= |
|
HAVE_PATH_MAX= |
HAVE_PLEDGE= |
HAVE_PLEDGE= |
HAVE_PROGNAME= |
HAVE_PROGNAME= |
HAVE_REALLOCARRAY= |
HAVE_REALLOCARRAY= |
HAVE_REWB_BSD= |
HAVE_REWB_BSD= |
HAVE_REWB_SYSV= |
HAVE_REWB_SYSV= |
|
HAVE_SANDBOX_INIT= |
HAVE_STRCASESTR= |
HAVE_STRCASESTR= |
HAVE_STRINGLIST= |
HAVE_STRINGLIST= |
HAVE_STRLCAT= |
HAVE_STRLCAT= |
|
|
HAVE_STRPTIME= |
HAVE_STRPTIME= |
HAVE_STRSEP= |
HAVE_STRSEP= |
HAVE_STRTONUM= |
HAVE_STRTONUM= |
|
HAVE_SYS_ENDIAN= |
HAVE_VASPRINTF= |
HAVE_VASPRINTF= |
HAVE_WCHAR= |
HAVE_WCHAR= |
|
|
HAVE_SQLITE3= |
|
HAVE_SQLITE3_ERRSTR= |
|
HAVE_OHASH= |
|
HAVE_MANPATH= |
|
|
|
PREFIX="/usr/local" |
PREFIX="/usr/local" |
BINDIR= |
BINDIR= |
SBINDIR= |
SBINDIR= |
|
|
return 1 |
return 1 |
} |
} |
|
|
|
# Select a UTF-8 locale. |
|
get_locale() { |
|
[ -n "${HAVE_WCHAR}" ] && [ "${HAVE_WCHAR}" -eq 0 ] && return 0 |
|
ismanual UTF8_LOCALE "$UTF8_LOCALE" && return 0 |
|
echo "UTF8_LOCALE: testing..." 1>&3 |
|
UTF8_LOCALE=`locale -a | grep -i '^en_US\.UTF-*8$' | head -n 1` |
|
if [ -z "${UTF8_LOCALE}" ]; then |
|
UTF8_LOCALE=`locale -a | grep -i '\.UTF-*8' | head -n 1` |
|
[ -n "${UTF8_LOCALE}" ] || return 1 |
|
fi |
|
echo "UTF8_LOCALE=${UTF8_LOCALE}" 1>&2 |
|
echo "UTF8_LOCALE=${UTF8_LOCALE}" 1>&3 |
|
echo 1>&3 |
|
return 0; |
|
} |
|
|
|
|
# --- library functions --- |
# --- library functions --- |
runtest dirent-namlen DIRENT_NAMLEN || 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 err ERR || true |
runtest fts FTS || true |
runtest fts FTS || true |
runtest getline GETLINE || true |
runtest getline GETLINE || true |
runtest getsubopt GETSUBOPT || true |
runtest getsubopt GETSUBOPT || true |
runtest isblank ISBLANK || true |
runtest isblank ISBLANK || true |
runtest mkdtemp MKDTEMP || true |
runtest mkdtemp MKDTEMP || true |
runtest mmap MMAP || true |
runtest ntohl NTOHL || true |
|
runtest PATH_MAX PATH_MAX || true |
runtest pledge PLEDGE || true |
runtest pledge PLEDGE || true |
|
runtest sandbox_init SANDBOX_INIT || true |
runtest progname PROGNAME || true |
runtest progname PROGNAME || true |
runtest reallocarray REALLOCARRAY || true |
runtest reallocarray REALLOCARRAY || true |
runtest rewb-bsd REWB_BSD || true |
runtest rewb-bsd REWB_BSD || true |
Line 198 runtest strptime STRPTIME || true |
|
Line 225 runtest strptime STRPTIME || true |
|
runtest strsep STRSEP || true |
runtest strsep STRSEP || true |
runtest strtonum STRTONUM || true |
runtest strtonum STRTONUM || true |
runtest vasprintf VASPRINTF || true |
runtest vasprintf VASPRINTF || true |
runtest wchar WCHAR || true |
|
|
|
# --- sqlite3 --- |
if [ ${HAVE_ENDIAN} -eq 0 -a \ |
if [ ${BUILD_DB} -eq 0 ]; then |
${HAVE_SYS_ENDIAN} -eq 0 -a \ |
echo "BUILD_DB=0 (manual)" 1>&2 |
${HAVE_NTOHL} -eq 0 ]; then |
echo "BUILD_DB=0 (manual)" 1>&3 |
echo "FATAL: no endian conversion functions found" 1>&2 |
echo 1>&3 |
echo "FATAL: no endian conversion functions found" 1>&3 |
HAVE_SQLITE3=0 |
exit 1 |
elif ismanual sqlite3 "${HAVE_SQLITE3}"; then |
|
if [ -z "${LD_SQLITE3}" ]; then |
|
LD_SQLITE3="-lsqlite3" |
|
fi |
|
elif [ -n "${LD_SQLITE3}" ]; then |
|
runtest sqlite3 SQLITE3 "${LD_SQLITE3}" || true |
|
elif singletest sqlite3 SQLITE3 "-lsqlite3"; then |
|
LD_SQLITE3="-lsqlite3" |
|
elif runtest sqlite3 SQLITE3 \ |
|
"-I/usr/local/include -L/usr/local/lib -lsqlite3"; then |
|
LD_SQLITE3="-L/usr/local/lib -lsqlite3" |
|
CFLAGS="${CFLAGS} -I/usr/local/include" |
|
fi |
fi |
if [ ${HAVE_SQLITE3} -eq 0 ]; then |
|
LD_SQLITE3= |
# --- wide character and locale support --- |
if [ ${BUILD_DB} -gt 0 ]; then |
if get_locale; then |
echo "BUILD_DB=0 (no sqlite3)" 1>&2 |
runtest wchar WCHAR -DUTF8_LOCALE=\"${UTF8_LOCALE}\" || true |
echo "BUILD_DB=0 (no sqlite3)" 1>&3 |
else |
echo 1>&3 |
HAVE_WCHAR=0 |
BUILD_DB=0 |
echo "wchar: no (no UTF8_LOCALE)" 1>&2 |
fi |
echo "wchar: no (no UTF8_LOCALE)" 1>&3 |
fi |
fi |
|
|
# --- sqlite3_errstr --- |
# --- nanosleep --- |
if [ ${BUILD_DB} -eq 0 ]; then |
if [ -n "${LD_NANOSLEEP}" ]; then |
HAVE_SQLITE3_ERRSTR=1 |
runtest nanosleep NANOSLEEP "${LD_NANOSLEEP}" || true |
elif ismanual sqlite3_errstr "${HAVE_SQLITE3_ERRSTR}"; then |
elif singletest nanosleep NANOSLEEP; then |
: |
: |
else |
elif runtest nanosleep NANOSLEEP "-lrt"; then |
runtest sqlite3_errstr SQLITE3_ERRSTR "${LD_SQLITE3}" || true |
LD_NANOSLEEP="-lrt" |
fi |
fi |
|
if [ "${HAVE_NANOSLEEP}" -eq 0 ]; then |
|
echo "FATAL: nanosleep: no" 1>&2 |
|
echo "FATAL: nanosleep: no" 1>&3 |
|
exit 1 |
|
fi |
|
|
# --- ohash --- |
# --- ohash --- |
if ismanual ohash "${HAVE_OHASH}"; then |
if ismanual ohash "${HAVE_OHASH}"; then |
Line 253 if [ "${HAVE_OHASH}" -eq 0 ]; then |
|
Line 272 if [ "${HAVE_OHASH}" -eq 0 ]; then |
|
fi |
fi |
|
|
# --- LDADD --- |
# --- LDADD --- |
LDADD="${LDADD} ${LD_SQLITE3} ${LD_OHASH} -lz" |
LDADD="${LDADD} ${LD_NANOSLEEP} ${LD_OHASH} -lz" |
echo "LDADD=\"${LDADD}\"" 1>&2 |
echo "LDADD=\"${LDADD}\"" 1>&2 |
echo "LDADD=\"${LDADD}\"" 1>&3 |
echo "LDADD=\"${LDADD}\"" 1>&3 |
echo 1>&3 |
echo 1>&3 |
|
|
# --- manpath --- |
|
if ismanual manpath "${HAVE_MANPATH}"; then |
|
: |
|
elif manpath 1>&3 2>&3; then |
|
echo "manpath: yes" 1>&2 |
|
echo "manpath: yes" 1>&3 |
|
echo 1>&3 |
|
HAVE_MANPATH=1 |
|
else |
|
echo "manpath: no" 1>&2 |
|
echo "manpath: no" 1>&3 |
|
echo 1>&3 |
|
HAVE_MANPATH=0 |
|
fi |
|
|
|
# --- write config.h --- |
# --- write config.h --- |
|
|
exec > config.h |
exec > config.h |
Line 282 cat << __HEREDOC__ |
|
Line 286 cat << __HEREDOC__ |
|
#error "Do not use C++. See the INSTALL file." |
#error "Do not use C++. See the INSTALL file." |
#endif |
#endif |
|
|
#ifndef MANDOC_CONFIG_H |
#if !defined(__GNUC__) || (__GNUC__ < 4) |
#define MANDOC_CONFIG_H |
#define __attribute__(x) |
|
#endif |
|
|
#if defined(__linux__) || defined(__MINT__) |
#if defined(__linux__) || defined(__MINT__) |
#define _GNU_SOURCE /* See test-*.c what needs this. */ |
#define _GNU_SOURCE /* See test-*.c what needs this. */ |
|
|
echo "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\"" |
echo "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\"" |
echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\"" |
echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\"" |
[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\"" |
[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\"" |
|
[ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\"" |
[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\"" |
[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\"" |
|
[ ${HAVE_EFTYPE} -eq 0 ] && echo "#define EFTYPE EINVAL" |
|
[ ${HAVE_PATH_MAX} -eq 0 ] && echo "#define PATH_MAX 4096" |
|
if [ ${HAVE_ENDIAN} -eq 0 -a ${HAVE_SYS_ENDIAN} -eq 0 ]; then |
|
echo "#define be32toh ntohl" |
|
echo "#define htobe32 htonl" |
|
fi |
|
|
cat << __HEREDOC__ |
cat << __HEREDOC__ |
#define HAVE_DIRENT_NAMLEN ${HAVE_DIRENT_NAMLEN} |
#define HAVE_DIRENT_NAMLEN ${HAVE_DIRENT_NAMLEN} |
|
#define HAVE_ENDIAN ${HAVE_ENDIAN} |
#define HAVE_ERR ${HAVE_ERR} |
#define HAVE_ERR ${HAVE_ERR} |
#define HAVE_FTS ${HAVE_FTS} |
#define HAVE_FTS ${HAVE_FTS} |
#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_MKDTEMP ${HAVE_MKDTEMP} |
#define HAVE_MKDTEMP ${HAVE_MKDTEMP} |
#define HAVE_MMAP ${HAVE_MMAP} |
#define HAVE_NTOHL ${HAVE_NTOHL} |
#define HAVE_PLEDGE ${HAVE_PLEDGE} |
#define HAVE_PLEDGE ${HAVE_PLEDGE} |
#define HAVE_PROGNAME ${HAVE_PROGNAME} |
#define HAVE_PROGNAME ${HAVE_PROGNAME} |
#define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY} |
#define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY} |
#define HAVE_REWB_BSD ${HAVE_REWB_BSD} |
#define HAVE_REWB_BSD ${HAVE_REWB_BSD} |
#define HAVE_REWB_SYSV ${HAVE_REWB_SYSV} |
#define HAVE_REWB_SYSV ${HAVE_REWB_SYSV} |
|
#define HAVE_SANDBOX_INIT ${HAVE_SANDBOX_INIT} |
#define HAVE_STRCASESTR ${HAVE_STRCASESTR} |
#define HAVE_STRCASESTR ${HAVE_STRCASESTR} |
#define HAVE_STRINGLIST ${HAVE_STRINGLIST} |
#define HAVE_STRINGLIST ${HAVE_STRINGLIST} |
#define HAVE_STRLCAT ${HAVE_STRLCAT} |
#define HAVE_STRLCAT ${HAVE_STRLCAT} |
Line 324 cat << __HEREDOC__ |
|
Line 338 cat << __HEREDOC__ |
|
#define HAVE_STRPTIME ${HAVE_STRPTIME} |
#define HAVE_STRPTIME ${HAVE_STRPTIME} |
#define HAVE_STRSEP ${HAVE_STRSEP} |
#define HAVE_STRSEP ${HAVE_STRSEP} |
#define HAVE_STRTONUM ${HAVE_STRTONUM} |
#define HAVE_STRTONUM ${HAVE_STRTONUM} |
|
#define HAVE_SYS_ENDIAN ${HAVE_SYS_ENDIAN} |
#define HAVE_VASPRINTF ${HAVE_VASPRINTF} |
#define HAVE_VASPRINTF ${HAVE_VASPRINTF} |
#define HAVE_WCHAR ${HAVE_WCHAR} |
#define HAVE_WCHAR ${HAVE_WCHAR} |
#define HAVE_SQLITE3 ${HAVE_SQLITE3} |
|
#define HAVE_SQLITE3_ERRSTR ${HAVE_SQLITE3_ERRSTR} |
|
#define HAVE_OHASH ${HAVE_OHASH} |
#define HAVE_OHASH ${HAVE_OHASH} |
#define HAVE_MANPATH ${HAVE_MANPATH} |
|
|
|
#define BINM_APROPOS "${BINM_APROPOS}" |
#define BINM_APROPOS "${BINM_APROPOS}" |
#define BINM_MAKEWHATIS "${BINM_MAKEWHATIS}" |
#define BINM_MAKEWHATIS "${BINM_MAKEWHATIS}" |
|
|
[ ${HAVE_REALLOCARRAY} -eq 0 ] && \ |
[ ${HAVE_REALLOCARRAY} -eq 0 ] && \ |
echo "extern void *reallocarray(void *, size_t, size_t);" |
echo "extern void *reallocarray(void *, size_t, size_t);" |
|
|
[ ${BUILD_DB} -gt 0 -a ${HAVE_SQLITE3_ERRSTR} -eq 0 ] && |
|
echo "extern const char *sqlite3_errstr(int);" |
|
|
|
[ ${HAVE_STRCASESTR} -eq 0 ] && \ |
[ ${HAVE_STRCASESTR} -eq 0 ] && \ |
echo "extern char *strcasestr(const char *, const char *);" |
echo "extern char *strcasestr(const char *, const char *);" |
|
|
|
|
[ ${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 |
|
echo "#endif /* MANDOC_CONFIG_H */" |
|
|
|
echo "config.h: written" 1>&2 |
echo "config.h: written" 1>&2 |
echo "config.h: written" 1>&3 |
echo "config.h: written" 1>&3 |
|
|
Line 411 exec > Makefile.local |
|
Line 417 exec > Makefile.local |
|
[ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444" |
[ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444" |
[ -z "${INSTALL_DATA}" ] && INSTALL_DATA="${INSTALL} -m 0444" |
[ -z "${INSTALL_DATA}" ] && INSTALL_DATA="${INSTALL} -m 0444" |
|
|
if [ ${BUILD_DB} -eq 0 -a ${BUILD_CGI} -gt 0 ]; then |
BUILD_TARGETS= |
echo "BUILD_CGI=0 (no BUILD_DB)" 1>&2 |
[ ${BUILD_CGI} -gt 0 ] && BUILD_TARGETS="cgi-build" |
echo "BUILD_CGI=0 (no BUILD_DB)" 1>&3 |
INSTALL_TARGETS= |
BUILD_CGI=0 |
[ ${BUILD_CGI} -gt 0 ] && INSTALL_TARGETS="cgi-install" |
fi |
|
|
|
BUILD_TARGETS="base-build" |
|
[ ${BUILD_CGI} -gt 0 ] && BUILD_TARGETS="${BUILD_TARGETS} cgi-build" |
|
INSTALL_TARGETS="base-install" |
|
[ ${BUILD_DB} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} db-install" |
|
[ ${BUILD_CGI} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} cgi-install" |
|
|
|
cat << __HEREDOC__ |
cat << __HEREDOC__ |
BUILD_TARGETS = ${BUILD_TARGETS} |
BUILD_TARGETS = ${BUILD_TARGETS} |
INSTALL_TARGETS = ${INSTALL_TARGETS} |
INSTALL_TARGETS = ${INSTALL_TARGETS} |
Line 457 INSTALL_LIB = ${INSTALL_LIB} |
|
Line 456 INSTALL_LIB = ${INSTALL_LIB} |
|
INSTALL_MAN = ${INSTALL_MAN} |
INSTALL_MAN = ${INSTALL_MAN} |
INSTALL_DATA = ${INSTALL_DATA} |
INSTALL_DATA = ${INSTALL_DATA} |
__HEREDOC__ |
__HEREDOC__ |
|
|
[ ${BUILD_DB} -gt 0 ] && \ |
|
echo "MAIN_OBJS = \$(BASE_OBJS) \$(DB_OBJS)" |
|
|
|
echo "Makefile.local: written" 1>&2 |
echo "Makefile.local: written" 1>&2 |
echo "Makefile.local: written" 1>&3 |
echo "Makefile.local: written" 1>&3 |