summaryrefslogtreecommitdiffstats
path: root/configure.local.example
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-08-16 19:00:01 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-08-16 19:00:01 +0000
commit2aa53e65cd397640a44a8f3489f93ee15a536c54 (patch)
tree004861e8817a1141dee31b9e1e64ffba81f451f4 /configure.local.example
parentb910bc285b99278f25295489ecd0cef5e7339f23 (diff)
downloadmandoc-2aa53e65cd397640a44a8f3489f93ee15a536c54.tar.gz
Improve build system and autodetection.
* Make ./configure standalone, that's what people expect. * Let people write a ./configure.local from scratch, not edit existing files. * Autodetect wchar, sqlite3, and manpath and act accordingly. * Autodetect the need for -L/usr/local/lib and -lutil. * Get rid of config.h.p{re,ost}, let ./configure only write what's needed. * Let ./configure write a Makefile.local snippet, that's quite flexible.
Diffstat (limited to 'configure.local.example')
-rw-r--r--configure.local.example189
1 files changed, 189 insertions, 0 deletions
diff --git a/configure.local.example b/configure.local.example
new file mode 100644
index 00000000..03e54f97
--- /dev/null
+++ b/configure.local.example
@@ -0,0 +1,189 @@
+# $Id$
+#
+# Copyright (c) 2014 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
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+# For all settings documented in this file, there are reasonable
+# defaults and/or the ./configure script attempts autodetection.
+# Consequently, you only need to create a file ./configure.local
+# 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>.
+
+# We recommend that you write ./configure.local from scratch and
+# only put the lines there you need. This file contains examples.
+# It is not intended as a template to be copied as a whole.
+
+# --- user settings relevant for all builds ----------------------------
+
+# 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,
+# the latter should be tested with the __STDC_ISO_10646__ feature
+# macro. In practice, many <wchar.h> headers do not provide that
+# macro even though they treat wchar_t as UCS-4. So the automatic
+# test only checks that wchar_t is wide enough, that is, at least
+# four bytes.
+
+# The following line forces multi-byte support.
+# If your C library does not treat wchar_t as UCS-4, the UTF-8 output
+# mode will print garbage.
+
+HAVE_WCHAR=1
+
+# The following line disables multi-byte support.
+# The output modes -Tutf8 and -Tlocale will be the same as -Tascii.
+
+HAVE_WCHAR=0
+
+# 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 the .Os macro has no argument and an operation system is specified
+# with the mandoc(1) -Ios= command line option, that is used.
+# Otherwise, the uname(3) library function is called at runtime to find
+# the name of the operating system.
+# 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.5"
+
+# The following installation directories are used.
+# It is possible to set only one or a few of these variables,
+# there is no need to copy the whole block.
+# Even if you set PREFIX to something else, the other variables
+# pick it up without copying them all over.
+
+PREFIX="/usr/local"
+BINDIR="${PREFIX}/bin"
+SBINDIR="${PREFIX}/sbin"
+INCLUDEDIR="${PREFIX}/include/mandoc"
+LIBDIR="${PREFIX}/lib/mandoc"
+MANDIR="${PREFIX}/man"
+EXAMPLEDIR="${PREFIX}/share/examples/mandoc"
+
+# 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"
+
+# --- user settings related to database support ------------------------
+
+# 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.
+
+BUILD_DB=0
+
+# 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.
+
+DBLIB="-lsqlite3"
+DBLIB="-lsqlite3 -lutil"
+DBLIB="-L/usr/local/lib -lsqlite3"
+
+# 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:
+
+CFLAGS="${CFLAGS} -I/usr/local/include"
+
+# 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,
+# makewhatis(8) and apropos(1) will not work properly.
+
+HAVE_MANPATH=1
+
+# Force usage of man.conf(5).
+# If it does not exist or contains no valid configuration,
+# makewhatis(8) and apropos(1) will not work properly.
+
+HAVE_MANPATH=0
+
+# --- user settings related 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:
+
+STATIC=
+
+# Some systems, for example Linux, require -pthread for static linking:
+
+STATIC="-static -pthread"
+
+# Some directories.
+# This works just like PREFIX, see above.
+
+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.
+
+# 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.
+
+CC=cc
+
+# The default compiler flags are:
+
+CFLAGS="-g -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings"
+
+# 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_DIRENT_NAMLEN=0
+HAVE_FGETLN=0
+HAVE_FTS=0
+HAVE_GETSUBOPT=0
+HAVE_MMAP=0
+HAVE_REALLOCARRAY=0
+HAVE_STRCASESTR=0
+HAVE_STRLCAT=0
+HAVE_STRLCPY=0
+HAVE_STRPTIME=0
+HAVE_STRSEP=0
+
+HAVE_SQLITE3=0
+HAVE_SQLITE3_ERRSTR=0
+HAVE_OHASH=0