1# $Id: configure.local.example,v 1.43 2021/09/20 13:25:42 schwarze Exp $ 2# 3# Copyright (c) 2014-2021 Ingo Schwarze <schwarze@openbsd.org> 4# 5# Permission to use, copy, modify, and distribute this software for any 6# purpose with or without fee is hereby granted, provided that the above 7# copyright notice and this permission notice appear in all copies. 8# 9# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 17# For all settings documented in this file, there are reasonable 18# defaults and/or the ./configure script attempts autodetection. 19# Consequently, you only need to create a file ./configure.local 20# and put any of these settings into it if ./configure autodetection 21# fails or if you want to make different choices for other reasons. 22 23# If autodetection fails, please tell <tech@mandoc.bsd.lv>. 24 25# We recommend that you write ./configure.local from scratch and 26# only put the lines there you need. This file contains examples. 27# It is not intended as a template to be copied as a whole. 28 29# --- user settings relevant for all builds ---------------------------- 30 31# By default, "cc" is used as the C compiler, but it can be overridden. 32# For example, the system compiler in SunOS 5.9 may not provide <stdint.h>, 33# which may require this line: 34CC=gcc 35 36# IBM AIX may need: 37CC=xlc 38 39# By default, "ar" is used as the library archive builder, but it 40# can be overridden. For example, NixOS may not have ar(1) in the 41# PATH, but may want to specify an absolute path instead. 42AR=ar 43 44# For -Tutf8 and -Tlocale operation, mandoc(1) requires <locale.h> 45# providing setlocale(3) and <wchar.h> providing wcwidth(3) and 46# putwchar(3) with a wchar_t storing UCS-4 values. Theoretically, 47# the latter should be tested with the __STDC_ISO_10646__ feature 48# macro. In practice, many <wchar.h> headers do not provide that 49# macro even though they treat wchar_t as UCS-4. So the automatic 50# test only checks that wchar_t is wide enough, that is, at least 51# four bytes. 52 53# The following line forces multi-byte support. 54# If your C library does not treat wchar_t as UCS-4, the UTF-8 output 55# mode will print garbage. 56 57HAVE_WCHAR=1 58 59# The following line disables multi-byte support. 60# The output modes -Tutf8 and -Tlocale will be the same as -Tascii. 61 62HAVE_WCHAR=0 63 64# For -Tutf8 mode, mandoc needs to set an arbitrary locale having 65# a UTF-8 character set. If autodetection of a suitable locale 66# fails or selects an undesirable locale, you can manually choose 67# the locale for -Tutf8 mode: 68 69UTF8_LOCALE=en_US.UTF-8 70 71# When man(1) or apropos(1) is called without -m and -M options, 72# MANPATH is not set in the environment, and man.conf(5) is not 73# available, manuals are searched for in the following directory 74# trees by default. 75 76MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" 77 78# Validation of cross references with mandoc -Tlint only looks 79# for manual pages in the following directories: 80 81MANPATH_BASE="/usr/share/man:/usr/X11R6/man" 82 83# When man(1) is called with the -S option and no manual page is 84# found matching the requested name and the requested architecture, 85# it tries to figure out whether the requested architecture is valid 86# for the present operating system. Normally, ./configure detects 87# the operating system using uname(1). If that fails or is not 88# desired, either of the following lines can be used: 89 90OSENUM=MANDOC_OS_NETBSD 91OSENUM=MANDOC_OS_OPENBSD 92OSENUM=MANDOC_OS_OTHER 93 94# In manual pages written in the mdoc(7) language, the operating system 95# version is displayed in the page footer line. If an operating system 96# is specified as an argument to the .Os macro, that is always used. 97# If the .Os macro has no argument and an operation system is specified 98# with the mandoc(1) -Ios= command line option, that is used. 99# Otherwise, the uname(3) library function is called at runtime to find 100# the name of the operating system. 101# If you do not want uname(3) to be called but instead want a fixed 102# string to be used, use the following line: 103 104OSNAME="OpenBSD 7.0" 105 106# The following installation directories are used. 107# It is possible to set only one or a few of these variables, 108# there is no need to copy the whole block. 109# Even if you set PREFIX to something else, the other variables 110# pick it up without copying them all over. 111 112PREFIX="/usr/local" 113BINDIR="${PREFIX}/bin" 114SBINDIR="${PREFIX}/sbin" 115MANDIR="${PREFIX}/man" 116 117# If BINDIR and SBINDIR are not subdirectories of the same parent 118# directory or if the basename(1) of BINDIR differs from "bin", 119# the relative path from SBINDIR to BINDIR is also needed. 120# The default is: 121 122BIN_FROM_SBIN="../bin" 123 124# Some distributions may want to avoid naming conflicts 125# with the configuration files of other man(1) implementations. 126# This changes the name of the installed section 5 manual page as well. 127 128MANM_MANCONF="mandoc.conf" # default is "man.conf" 129 130# Some distributions may want to avoid naming conflicts among manuals. 131# If you want to change the names of installed section 7 manual pages, 132# the following alternative names are suggested. 133# The suffix ".7" will automatically be appended. 134# It is possible to set only one or a few of these variables, 135# there is no need to copy the whole block. 136 137MANM_MAN="mandoc_man" # default is "man" 138MANM_MDOC="mandoc_mdoc" # default is "mdoc" 139MANM_ROFF="mandoc_roff" # default is "roff" 140MANM_EQN="mandoc_eqn" # default is "eqn" 141MANM_TBL="mandoc_tbl" # default is "tbl" 142 143# Some distributions may want to avoid naming conflicts with 144# other man(1), apropos(1), makewhatis(8), or soelim(1) utilities. 145# If you want to change the names of binary programs, 146# the following alternative names are suggested. 147# Using different names is possible as well. 148# This changes the names of the installed section 1 and section 8 149# manual pages as well. 150# It is possible to set only one or two of these variables, 151# there is no need to copy the whole block. 152 153BINM_MAN=mman # default is "man" 154BINM_APROPOS=mapropos # default is "apropos" 155BINM_WHATIS=mwhatis # default is "whatis" 156BINM_MAKEWHATIS=mandocdb # default is "makewhatis" 157BINM_SOELIM=msoelim # default is "soelim" 158 159# If less(1) is available, it is used as the default manual pager. 160# Otherwise, more(1) is used: its existence is required by POSIX. 161# It is possible to force using a different default pager, either 162# by giving the name of a program found in the PATH, or by giving 163# an absolute path. 164 165BINM_PAGER=pg # default is "less" or "more" 166 167# Some distributions do not want hardlinks 168# between installed binary programs. 169# Set the following variable to use symbolic links instead. 170# It is also used for links between manual pages. 171# It is only used by the install* targets. 172# When using this, DESTDIR must be empty or an absolute path. 173 174LN="ln -sf" # default is "ln -f" 175 176# Before falling back to the bundled version of the ohash(3) hashing 177# library, autoconfiguration tries the following linker flag to 178# link against your system version. If you do have ohash(3) on 179# your system but it needs different linker flags, set the following 180# variable to specify the required linker flags. 181 182LD_OHASH="-lutil" 183 184# Some platforms may need an additional linker flag for nanosleep(2). 185# If none is needed or it is -lrt, it is autodetected. 186# Otherwise, set the following variable. 187 188LD_NANOSLEEP="-lrt" 189 190# Some platforms may need an additional linker flag for recvmsg(2). 191# If none is needed or it is -lsocket, it is autodetected. 192# Otherwise, set the following variable. 193 194LD_RECVMSG="-lsocket" 195 196# Some platforms might need additional linker flags to link against 197# libmandoc that are not autodetected, though no such cases are 198# currently known. 199 200LDADD="-lm" 201 202# Some systems may want to set additional linker flags for all the 203# binaries, not only for those using libmandoc, for example for 204# hardening options. 205 206LDFLAGS="-Wl,-z,relro" 207 208# It is possible to change the utility program used for installation 209# and the modes files are installed with. The defaults are: 210 211INSTALL="install" 212INSTALL_PROGRAM="${INSTALL} -m 0555" 213INSTALL_LIB="${INSTALL} -m 0444" 214INSTALL_MAN="${INSTALL} -m 0444" 215INSTALL_DATA="${INSTALL} -m 0444" 216 217# By default, makewhatis(8) can only read from the paths passed on the 218# command line or configured in man.conf(5). 219# But some package managers on some operating systems store manual pages 220# in separate "cellar" or "store" directories and only symlink them 221# into the manual trees. 222# To support one or more such package managers, give makewhatis(8) 223# read access to the cellars and stores on your system, in the form 224# of a colon-separated path: 225 226# Homebrow package manager on Mac OS X: 227PREFIX="/usr/local" 228READ_ALLOWED_PATH="${PREFIX}/Cellar" 229 230# Nix package manager and/or NixOS Linux distribution: 231READ_ALLOWED_PATH="/nix/store" 232 233# GNU Guix package manager and/or GNU Guix Linux distribution: 234READ_ALLOWED_PATH="/gnu/store" 235 236# If multiple package managers are used concurrently: 237PREFIX="/usr/local" 238READ_ALLOWED_PATH="/nix/store:${PREFIX}/Cellar" 239 240# --- user settings for the mandoc(3) library -------------------------- 241 242# By default, libmandoc.a is not installed. It is almost never needed 243# because there is almost no non-mandoc software out there using this 244# library. The one notable exception is NetBSD apropos(1). 245# So, when building for the NetBSD base system - but not for NetBSD 246# ports nor for pkgsrc! - you may want the following: 247 248INSTALL_LIBMANDOC=1 249 250# The following settings are only used when INSTALL_LIBMANDOC is set. 251 252INCLUDEDIR="${PREFIX}/include/mandoc" 253LIBDIR="${PREFIX}/lib/mandoc" 254 255# --- user settings related to man.cgi --------------------------------- 256 257# By default, building man.cgi(8) is disabled. To enable it, copy 258# cgi.h.example to cgi.h, edit it, and use the following line. 259 260BUILD_CGI=1 261 262# The remaining settings in this section are only relevant if BUILD_CGI 263# is enabled. Otherwise, they have no effect either way. 264 265# By default, man.cgi(8) is linked statically if the compiler supports 266# the -static option. If automatic detection fails, you can force 267# static linking of man.cgi(8). 268 269STATIC="-static" 270 271# Some systems may require -pthread for static linking: 272 273STATIC="-static -pthread" 274 275# If static linking works in general but not with additional libraries 276# like -lrt or -lz, you can force dynamic linking. This may for 277# example be required on SunOS 5.9. 278 279STATIC=" " 280 281# Some directories. 282# This works just like PREFIX, see above. 283 284WWWPREFIX="/var/www" 285HTDOCDIR="${WWWPREFIX}/htdocs" 286CGIBINDIR="${WWWPREFIX}/cgi-bin" 287 288# --- user settings related to catman ---------------------------------- 289 290# By default, building mandocd(8) and catman(8) is disabled. 291# To enable it, use the following line. 292# It does not work on SunOS 5.10 because there is no mkdirat(2) 293# nor on SunOS 5.9 which also lacks CMSG_LEN(3) and CMSG_SPACE(3). 294# It may not work on old releases of Mac OS X either. For example, 295# Mac OS X 10.4 Tiger provides neither mkdirat(2) nor openat(2). 296 297BUILD_CATMAN=1 298 299# Install catman(8) with a different name. 300# See BINM_MAN above for details of how this works. 301 302BINM_CATMAN=mcatman # default is "catman" 303 304# --- settings that rarely need to be touched -------------------------- 305 306# Do not set these variables unless you really need to. 307 308# Normally, leave CFLAGS unset. In that case, -g will automatically 309# be used, and various -W options will be added if the compiler 310# supports them. If you define CFLAGS manually, it will be used 311# unchanged, and nothing will be added. 312 313CFLAGS="-g" 314 315# In rare cases, it may be required to skip individual automatic tests. 316# Each of the following variables can be set to 0 (test will not be run 317# and will be regarded as failed) or 1 (test will not be run and will 318# be regarded as successful). 319 320HAVE_ATTRIBUTE=0 321HAVE_DIRENT_NAMLEN=0 322HAVE_ENDIAN=0 323HAVE_EFTYPE=0 324HAVE_ERR=0 325HAVE_FTS=0 # Setting this implies HAVE_FTS_COMPARE_CONST=0. 326HAVE_FTS_COMPARE_CONST=0 # Setting this implies HAVE_FTS=1. 327HAVE_GETLINE=0 328HAVE_GETSUBOPT=0 329HAVE_ISBLANK=0 330HAVE_LESS_T=0 331HAVE_MKDTEMP=0 332HAVE_NTOHL=0 333HAVE_O_DIRECTORY=0 334HAVE_OHASH=0 335HAVE_PATH_MAX=0 336HAVE_PLEDGE=0 337HAVE_PROGNAME=0 338HAVE_REALLOCARRAY=0 339HAVE_RECALLOCARRAY=0 340HAVE_REWB_BSD=0 341HAVE_REWB_SYSV=0 342HAVE_STRCASESTR=0 343HAVE_STRINGLIST=0 344HAVE_STRLCAT=0 345HAVE_STRLCPY=0 346HAVE_STRPTIME=0 347HAVE_STRSEP=0 348HAVE_STRTONUM=0 349HAVE_SYS_ENDIAN=0 350HAVE_VASPRINTF=0 351HAVE_WCHAR=0 352