=================================================================== RCS file: /cvs/mandoc/configure,v retrieving revision 1.74 retrieving revision 1.82 diff -u -p -r1.74 -r1.82 --- mandoc/configure 2020/06/14 23:40:31 1.74 +++ mandoc/configure 2022/04/14 16:43:43 1.82 @@ -1,8 +1,8 @@ #!/bin/sh # -# $Id: configure,v 1.74 2020/06/14 23:40:31 schwarze Exp $ +# $Id: configure,v 1.82 2022/04/14 16:43:43 schwarze Exp $ # -# Copyright (c) 2014-2020 Ingo Schwarze +# Copyright (c) 2014-2021 Ingo Schwarze # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -37,10 +37,12 @@ SOURCEDIR=`dirname "${0}"` MANPATH_BASE="/usr/share/man:/usr/X11R6/man" MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" +DEBUG_MEMORY=0 OSENUM= OSNAME= UTF8_LOCALE= +AR=ar CC=cc CFLAGS= FATAL=0 @@ -55,6 +57,7 @@ BUILD_CGI=0 BUILD_CATMAN=0 INSTALL_LIBMANDOC=0 +HAVE_ATTRIBUTE= HAVE_CMSG= HAVE_DIRENT_NAMLEN= HAVE_EFTYPE= @@ -67,6 +70,7 @@ HAVE_GETSUBOPT= HAVE_ISBLANK= HAVE_LESS_T= HAVE_MKDTEMP= +HAVE_MKSTEMPS= HAVE_NANOSLEEP= HAVE_NTOHL= HAVE_O_DIRECTORY= @@ -96,6 +100,10 @@ NEED_GNU_SOURCE=0 NEED_OPENBSD_SOURCE=0 NEED_XPG4_2=0 +DEBUG_OBJS= +MANDOC_COBJS= +SOELIM_COBJS= + PREFIX="/usr/local" BINDIR= SBINDIR= @@ -103,7 +111,7 @@ BIN_FROM_SBIN= INCLUDEDIR= LIBDIR= MANDIR= -HOMEBREWDIR= +READ_ALLOWED_PATH= WWWPREFIX="/var/www" HTDOCDIR= @@ -115,6 +123,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" @@ -258,8 +267,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 @@ -291,6 +300,7 @@ 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 @@ -301,6 +311,7 @@ runtest getline GETLINE || 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 @@ -325,6 +336,7 @@ runtest vasprintf VASPRINTF "" -D_GNU_SOURCE || true # --- fts --- if [ "${1}" = "-depend" ]; then + DEBUG_MEMORY=1 HAVE_FTS=0 HAVE_FTS_COMPARE_CONST=0 echo "tested fts: HAVE_FTS=0 (for make depend)" 1>&2 @@ -338,18 +350,34 @@ else runtest fts FTS || true fi +# --- 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 "less -T" LESS_T ${HAVE_LESS_T}; then +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 @@ -419,10 +447,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" @@ -440,10 +464,16 @@ echo echo "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\"" echo "#define MANPATH_BASE \"${MANPATH_BASE}\"" echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\"" +if [ ${DEBUG_MEMORY} -ne 0 ]; then + echo "#define DEBUG_MEMORY ${DEBUG_MEMORY}" + DEBUG_OBJS=mandoc_dbg.o +fi 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" @@ -463,6 +493,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} @@ -491,6 +522,7 @@ cat << __HEREDOC__ #define BINM_MAN "${BINM_MAN}" #define BINM_SOELIM "${BINM_SOELIM}" #define BINM_WHATIS "${BINM_WHATIS}" +#define BINM_PAGER "${BINM_PAGER}" __HEREDOC__ @@ -499,52 +531,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 @@ -580,10 +642,14 @@ INSTALL_TARGETS= cat << __HEREDOC__ BUILD_TARGETS = ${BUILD_TARGETS} INSTALL_TARGETS = ${INSTALL_TARGETS} +AR = ${AR} CC = ${CC} CFLAGS = ${CFLAGS} LDADD = ${LDADD} LDFLAGS = ${LDFLAGS} +DEBUG_OBJS = ${DEBUG_OBJS} +MANDOC_COBJS = ${MANDOC_COBJS} +SOELIM_COBJS = ${SOELIM_COBJS} STATIC = ${STATIC} PREFIX = ${PREFIX} BINDIR = ${BINDIR}