-# $Id: configure.local.example,v 1.10 2015/11/07 13:14:21 schwarze Exp $
+# $Id: configure.local.example,v 1.39 2020/07/20 16:57:30 schwarze Exp $
#
-# Copyright (c) 2014, 2015 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
# purpose with or without fee is hereby granted, provided that the above
# and put any of these settings into it if ./configure autodetection
# fails or if you want to make different choices for other reasons.
-# If autodetection fails, please tell <tech@mdocml.bsd.lv>.
+# If autodetection fails, please tell <tech@mandoc.bsd.lv>.
# We recommend that you write ./configure.local from scratch and
# only put the lines there you need. This file contains examples.
# --- user settings relevant for all builds ----------------------------
+# By default, "cc" is used as the C compiler, but it can be overridden.
+# For example, the system compiler in SunOS 5.9 may not provide <stdint.h>,
+# which may require this line:
+CC=gcc
+
+# IBM AIX may need:
+CC=xlc
+
# For -Tutf8 and -Tlocale operation, mandoc(1) requires <locale.h>
# providing setlocale(3) and <wchar.h> providing wcwidth(3) and
# putwchar(3) with a wchar_t storing UCS-4 values. Theoretically,
HAVE_WCHAR=0
+# For -Tutf8 mode, mandoc needs to set an arbitrary locale having
+# a UTF-8 character set. If autodetection of a suitable locale
+# fails or selects an undesirable locale, you can manually choose
+# the locale for -Tutf8 mode:
+
+UTF8_LOCALE=en_US.UTF-8
+
# When man(1) or apropos(1) is called without -m and -M options,
-# MANPATH is not set in the environment, man.conf(5) is not available
-# and manpath(1) not used, manuals are searched for in the following
-# directory trees by default.
+# MANPATH is not set in the environment, and man.conf(5) is not
+# available, manuals are searched for in the following directory
+# trees by default.
MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man"
+# Validation of cross references with mandoc -Tlint only looks
+# for manual pages in the following directories:
+
+MANPATH_BASE="/usr/share/man:/usr/X11R6/man"
+
+# When man(1) is called with the -S option and no manual page is
+# found matching the requested name and the requested architecture,
+# it tries to figure out whether the requested architecture is valid
+# for the present operating system. Normally, ./configure detects
+# the operating system using uname(1). If that fails or is not
+# desired, either of the following lines can be used:
+
+OSENUM=MANDOC_OS_NETBSD
+OSENUM=MANDOC_OS_OPENBSD
+OSENUM=MANDOC_OS_OTHER
+
# In manual pages written in the mdoc(7) language, the operating system
# version is displayed in the page footer line. If an operating system
# is specified as an argument to the .Os macro, that is always used.
# If you do not want uname(3) to be called but instead want a fixed
# string to be used, use the following line:
-OSNAME="OpenBSD 5.6"
+OSNAME="OpenBSD 6.5"
# The following installation directories are used.
# It is possible to set only one or a few of these variables,
PREFIX="/usr/local"
BINDIR="${PREFIX}/bin"
SBINDIR="${PREFIX}/sbin"
-INCLUDEDIR="${PREFIX}/include/mandoc"
-LIBDIR="${PREFIX}/lib/mandoc"
MANDIR="${PREFIX}/man"
-# The man(1) utility needs to know where the manuals reside.
-# We know of two ways to tell it: via manpath(1) or man.conf(5).
-# The latter is used by OpenBSD and NetBSD, the former by most
-# other systems.
-
-# Force usage of manpath(1).
-# If it is not installed or not operational,
-# man(1), makewhatis(8), and apropos(1) will not work properly.
-HAVE_MANPATH=1
+# If BINDIR and SBINDIR are not subdirectories of the same parent
+# directory or if the basename(1) of BINDIR differs from "bin",
+# the relative path from SBINDIR to BINDIR is also needed.
+# The default is:
-# Force usage of man.conf(5).
-# If it does not exist or contains no valid configuration,
-# man(1), makewhatis(8), and apropos(1) will not work properly.
-HAVE_MANPATH=0
+BIN_FROM_SBIN="../bin"
# Some distributions may want to avoid naming conflicts
# with the configuration files of other man(1) implementations.
# This changes the name of the installed section 5 manual page as well.
+
MANM_MANCONF="mandoc.conf" # default is "man.conf"
# Some distributions may want to avoid naming conflicts among manuals.
MANM_EQN="mandoc_eqn" # default is "eqn"
MANM_TBL="mandoc_tbl" # default is "tbl"
-# Some distributions may want to avoid naming conflicts
-# with other man(1) and soelim(1) utilities.
+# Some distributions may want to avoid naming conflicts with
+# other man(1), apropos(1), makewhatis(8), or soelim(1) utilities.
# If you want to change the names of binary programs,
# the following alternative names are suggested.
# Using different names is possible as well.
-# This changes the names of the installed section 1 manual pages as well.
+# This changes the names of the installed section 1 and section 8
+# manual pages as well.
+# It is possible to set only one or two of these variables,
+# there is no need to copy the whole block.
BINM_MAN=mman # default is "man"
+BINM_APROPOS=mapropos # default is "apropos"
+BINM_WHATIS=mwhatis # default is "whatis"
+BINM_MAKEWHATIS=mandocdb # default is "makewhatis"
BINM_SOELIM=msoelim # default is "soelim"
-# It is possible to change the utility program used for installation
-# and the modes files are installed with. The defaults are:
+# If less(1) is available, it is used as the default manual pager.
+# Otherwise, more(1) is used: its existence is required by POSIX.
+# It is possible to force using a different default pager, either
+# by giving the name of a program found in the PATH, or by giving
+# an absolute path.
-INSTALL="install"
-INSTALL_PROGRAM="${INSTALL} -m 0555"
-INSTALL_LIB="${INSTALL} -m 0444"
-INSTALL_MAN="${INSTALL} -m 0444"
-INSTALL_DATA="${INSTALL} -m 0444"
+BINM_PAGER=pg # default is "less" or "more"
-# --- user settings related to database support ------------------------
+# Some distributions do not want hardlinks
+# between installed binary programs.
+# Set the following variable to use symbolic links instead.
+# It is also used for links between manual pages.
+# It is only used by the install* targets.
+# When using this, DESTDIR must be empty or an absolute path.
-# By default, building makewhatis(8) and apropos(1) is enabled.
-# To disable it, for example to avoid the dependency on SQLite3,
-# use the following line. It that case, the remaining settings
-# in this section are irrelevant.
+LN="ln -sf" # default is "ln -f"
-BUILD_DB=0
+# Before falling back to the bundled version of the ohash(3) hashing
+# library, autoconfiguration tries the following linker flag to
+# link against your system version. If you do have ohash(3) on
+# your system but it needs different linker flags, set the following
+# variable to specify the required linker flags.
-# Two libraries are needed: SQLite3 and ohash(3).
-# Autoconfiguration tries the following linker flags to find them.
-# If none of these work, add a working DBLIB line to configure.local,
-# disabling autodetection for library directories.
+LD_OHASH="-lutil"
-DBLIB="-lsqlite3"
-DBLIB="-lsqlite3 -lutil"
-DBLIB="-L/usr/local/lib -lsqlite3"
+# Some platforms may need an additional linker flag for nanosleep(2).
+# If none is needed or it is -lrt, it is autodetected.
+# Otherwise, set the following variable.
-# When library autodetection decides to use -L/usr/local/lib,
-# -I/usr/local/include is automatically added to CFLAGS.
-# If you manually set DBLIB to something including -L/usr/local/lib,
-# chances are you will also need the following line:
+LD_NANOSLEEP="-lrt"
-CFLAGS="${CFLAGS} -I/usr/local/include"
+# Some platforms may need an additional linker flag for recvmsg(2).
+# If none is needed or it is -lsocket, it is autodetected.
+# Otherwise, set the following variable.
-# Some distributions may want to avoid naming conflicts
-# with another implementation of apropos(1) and makewhatis(8).
-# If you want to change the names of the binary programs,
-# the following alternative names are suggested.
-# Using other names is possible as well.
-# This changes the names of the installed section 1 and section 8
-# manual pages as well.
-# It is possible to set only one or two of these variables,
-# there is no need to copy the whole block.
+LD_RECVMSG="-lsocket"
-BINM_APROPOS=mapropos # default is "apropos"
-BINM_WHATIS=mwhatis # default is "whatis"
-BINM_MAKEWHATIS=mandocdb # default is "makewhatis"
+# Some platforms might need additional linker flags to link against
+# libmandoc that are not autodetected, though no such cases are
+# currently known.
+
+LDADD="-lm"
+
+# Some systems may want to set additional linker flags for all the
+# binaries, not only for those using libmandoc, for example for
+# hardening options.
+
+LDFLAGS="-Wl,-z,relro"
+
+# It is possible to change the utility program used for installation
+# and the modes files are installed with. The defaults are:
+
+INSTALL="install"
+INSTALL_PROGRAM="${INSTALL} -m 0555"
+INSTALL_LIB="${INSTALL} -m 0444"
+INSTALL_MAN="${INSTALL} -m 0444"
+INSTALL_DATA="${INSTALL} -m 0444"
# When using the "homebrew" package manager on Mac OS X, the actual
# manuals are located in a so-called "cellar" and only symlinked
PREFIX="/usr/local"
HOMEBREWDIR="${PREFIX}/Cellar"
-# --- user settings related man.cgi ------------------------------------
+# --- user settings for the mandoc(3) library --------------------------
+
+# By default, libmandoc.a is not installed. It is almost never needed
+# because there is almost no non-mandoc software out there using this
+# library. The one notable exception is NetBSD apropos(1).
+# So, when building for the NetBSD base system - but not for NetBSD
+# ports nor for pkgsrc! - you may want the following:
+
+INSTALL_LIBMANDOC=1
+
+# The following settings are only used when INSTALL_LIBMANDOC is set.
+
+INCLUDEDIR="${PREFIX}/include/mandoc"
+LIBDIR="${PREFIX}/lib/mandoc"
+
+# --- user settings related to man.cgi ---------------------------------
# By default, building man.cgi(8) is disabled. To enable it, copy
# cgi.h.example to cgi.h, edit it, and use the following line.
-# Obviously, this requires that BUILD_DB is enabled, too.
BUILD_CGI=1
# The remaining settings in this section are only relevant if BUILD_CGI
# is enabled. Otherwise, they have no effect either way.
-# By default, man.cgi(8) is linked statically.
-# Some systems do not support static linking, for example Mac OS X.
-# In that case, use the following line:
+# By default, man.cgi(8) is linked statically if the compiler supports
+# the -static option. If automatic detection fails, you can force
+# static linking of man.cgi(8).
-STATIC=
+STATIC="-static"
-# Some systems, for example Linux, require -pthread for static linking:
+# Some systems may require -pthread for static linking:
STATIC="-static -pthread"
+# If static linking works in general but not with additional libraries
+# like -lrt or -lz, you can force dynamic linking. This may for
+# example be required on SunOS 5.9.
+
+STATIC=" "
+
# Some directories.
# This works just like PREFIX, see above.
HTDOCDIR="${WWWPREFIX}/htdocs"
CGIBINDIR="${WWWPREFIX}/cgi-bin"
-# --- settings that rarely need to be touched --------------------------
+# --- user settings related to catman ----------------------------------
-# Do not set these variables unless you really need to.
+# By default, building mandocd(8) and catman(8) is disabled.
+# To enable it, use the following line.
+# It does not work on SunOS 5.10 because there is no mkdirat(2)
+# nor on SunOS 5.9 which also lacks CMSG_LEN(3) and CMSG_SPACE(3).
-# You can manually override the compiler to be used.
-# But that's rarely useful because ./configure asks your make(1)
-# which compiler to use, and that answer will hardly be wrong.
+BUILD_CATMAN=1
-CC=cc
+# Install catman(8) with a different name.
+# See BINM_MAN above for details of how this works.
-# The default compiler flags are:
+BINM_CATMAN=mcatman # default is "catman"
-CFLAGS="-g -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings"
+# --- settings that rarely need to be touched --------------------------
+
+# Do not set these variables unless you really need to.
+
+# Normally, leave CFLAGS unset. In that case, -g will automatically
+# be used, and various -W options will be added if the compiler
+# supports them. If you define CFLAGS manually, it will be used
+# unchanged, and nothing will be added.
+
+CFLAGS="-g"
# In rare cases, it may be required to skip individual automatic tests.
# Each of the following variables can be set to 0 (test will not be run
# and will be regarded as failed) or 1 (test will not be run and will
# be regarded as successful).
+HAVE_ATTRIBUTE=0
HAVE_DIRENT_NAMLEN=0
-HAVE_FGETLN=0
-HAVE_FTS=0
+HAVE_ENDIAN=0
+HAVE_EFTYPE=0
+HAVE_ERR=0
+HAVE_FTS=0 # Setting this implies HAVE_FTS_COMPARE_CONST=0.
+HAVE_FTS_COMPARE_CONST=0 # Setting this implies HAVE_FTS=1.
+HAVE_GETLINE=0
HAVE_GETSUBOPT=0
-HAVE_MMAP=0
+HAVE_ISBLANK=0
+HAVE_LESS_T=0
+HAVE_MKDTEMP=0
+HAVE_NTOHL=0
+HAVE_O_DIRECTORY=0
+HAVE_OHASH=0
+HAVE_PATH_MAX=0
+HAVE_PLEDGE=0
+HAVE_PROGNAME=0
HAVE_REALLOCARRAY=0
+HAVE_RECALLOCARRAY=0
+HAVE_REWB_BSD=0
+HAVE_REWB_SYSV=0
HAVE_STRCASESTR=0
+HAVE_STRINGLIST=0
HAVE_STRLCAT=0
HAVE_STRLCPY=0
HAVE_STRPTIME=0
HAVE_STRSEP=0
HAVE_STRTONUM=0
-
-HAVE_SQLITE3=0
-HAVE_SQLITE3_ERRSTR=0
-HAVE_OHASH=0
+HAVE_SYS_ENDIAN=0
+HAVE_VASPRINTF=0
+HAVE_WCHAR=0