]> git.cameronkatri.com Git - mandoc.git/blobdiff - configure.local.example
In man(1) mode, properly clean up the resn[] result array
[mandoc.git] / configure.local.example
index 98f5f1ff677cb9f001c950956774dd4eeec86348..1050f4a1d9ab8cf80b766c34ece7e685928b4998 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: configure.local.example,v 1.19 2016/08/02 11:09:46 schwarze Exp $
+# $Id: configure.local.example,v 1.43 2021/09/20 13:25:42 schwarze Exp $
 #
-# Copyright (c) 2014, 2015, 2016 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
@@ -20,7 +20,7 @@
 # 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
+
+# By default, "ar" is used as the library archive builder, but it
+# can be overridden.  For example, NixOS may not have ar(1) in the
+# PATH, but may want to specify an absolute path instead.
+AR=ar
+
 # 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,
@@ -62,6 +75,22 @@ UTF8_LOCALE=en_US.UTF-8
 
 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.
@@ -72,7 +101,7 @@ MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man"
 # 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 6.0"
+OSNAME="OpenBSD 7.0"
 
 # The following installation directories are used.
 # It is possible to set only one or a few of these variables,
@@ -83,13 +112,19 @@ OSNAME="OpenBSD 6.0"
 PREFIX="/usr/local"
 BINDIR="${PREFIX}/bin"
 SBINDIR="${PREFIX}/sbin"
-INCLUDEDIR="${PREFIX}/include/mandoc"
-LIBDIR="${PREFIX}/lib/mandoc"
 MANDIR="${PREFIX}/man"
 
+# 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:
+
+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.
@@ -121,6 +156,23 @@ BINM_WHATIS=mwhatis                # default is "whatis"
 BINM_MAKEWHATIS=mandocdb       # default is "makewhatis"
 BINM_SOELIM=msoelim            # default is "soelim"
 
+# 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.
+
+BINM_PAGER=pg                  # default is "less" or "more"
+
+# 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.
+
+LN="ln -sf"                    # default is "ln -f"
+
 # 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
@@ -129,19 +181,18 @@ BINM_SOELIM=msoelim               # default is "soelim"
 
 LD_OHASH="-lutil"
 
-# When library autodetection decides to use -L/usr/local/lib,
-# -I/usr/local/include is automatically added to CFLAGS.
-# If you manually set LD_OHASH to something including -L/usr/local/lib,
-# chances are you will also need the following line:
-
-CFLAGS="${CFLAGS} -I/usr/local/include"
-
 # 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.
 
 LD_NANOSLEEP="-lrt"
 
+# 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.
+
+LD_RECVMSG="-lsocket"
+
 # Some platforms might need additional linker flags to link against
 # libmandoc that are not autodetected, though no such cases are
 # currently known.
@@ -163,14 +214,43 @@ 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
-# into the manual trees.  To allow mandoc to follow such symlinks,
-# you have to specify the physical location of the cellar as returned
-# by realpath(3), for example:
+# By default, makewhatis(8) can only read from the paths passed on the
+# command line or configured in man.conf(5).
+# But some package managers on some operating systems store manual pages
+# in separate "cellar" or "store" directories and only symlink them
+# into the manual trees.
+# To support one or more such package managers, give makewhatis(8)
+# read access to the cellars and stores on your system, in the form
+# of a colon-separated path:
+
+# Homebrow package manager on Mac OS X:
+PREFIX="/usr/local"
+READ_ALLOWED_PATH="${PREFIX}/Cellar"
+
+# Nix package manager and/or NixOS Linux distribution:
+READ_ALLOWED_PATH="/nix/store"
+
+# GNU Guix package manager and/or GNU Guix Linux distribution:
+READ_ALLOWED_PATH="/gnu/store"
 
+# If multiple package managers are used concurrently:
 PREFIX="/usr/local"
-HOMEBREWDIR="${PREFIX}/Cellar"
+READ_ALLOWED_PATH="/nix/store:${PREFIX}/Cellar"
+
+# --- 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 ---------------------------------
 
@@ -182,16 +262,22 @@ 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.
 
@@ -199,25 +285,30 @@ WWWPREFIX="/var/www"
 HTDOCDIR="${WWWPREFIX}/htdocs"
 CGIBINDIR="${WWWPREFIX}/cgi-bin"
 
-# --- settings that rarely need to be touched --------------------------
-
-# Do not set these variables unless you really need to.
+# --- user settings related to catman ----------------------------------
 
-# 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.
+# 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).
+# It may not work on old releases of Mac OS X either.  For example,
+# Mac OS X 10.4 Tiger provides neither mkdirat(2) nor openat(2).
 
-CC=cc
+BUILD_CATMAN=1
 
-# IBM AIX may need:
+# Install catman(8) with a different name.
+# See BINM_MAN above for details of how this works.
 
-CC=xlc
+BINM_CATMAN=mcatman            # default is "catman"
 
-# The default compiler flags are:
+# --- settings that rarely need to be touched --------------------------
 
-CFLAGS="-g -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings"
+# Do not set these variables unless you really need to.
 
-# IBM AIX xlc does not support -W; in that case, please use:
+# 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"
 
@@ -226,19 +317,26 @@ CFLAGS="-g"
 # 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_ENDIAN=0
 HAVE_EFTYPE=0
 HAVE_ERR=0
-HAVE_FTS=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_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
@@ -248,5 +346,6 @@ HAVE_STRLCPY=0
 HAVE_STRPTIME=0
 HAVE_STRSEP=0
 HAVE_STRTONUM=0
+HAVE_SYS_ENDIAN=0
 HAVE_VASPRINTF=0
 HAVE_WCHAR=0