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