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