summaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-08-08 16:45:39 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-08-08 16:45:39 +0000
commit333557180c27f2469b9ec13d004365cde15d667a (patch)
tree25b7c2dc2e92e02284222fc3ba6aa4fbd6aaace8 /INSTALL
parent4969a2c839632e2dfcac7aa3d30388e14639b7ba (diff)
downloadmandoc-333557180c27f2469b9ec13d004365cde15d667a.tar.gz
provide some instructions for manual installation
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL119
1 files changed, 119 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 00000000..49a84641
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,119 @@
+$Id$
+
+Installing mdocml, the portable mandoc distribution
+---------------------------------------------------
+
+The mandoc manpage compiler toolset is a suite of tools compiling
+mdoc(7), the roff(7) macro language of choice for BSD manual pages,
+and man(7), the predominant historical language for UNIX manuals.
+For general information, see: http://mdocml.bsd.lv/
+
+Before manually installing mandoc on your system, please check
+whether the newest version of mandoc is already installed by default
+or available via a binary package or a ports system. A list of the
+latest bundled and ported versions of mandoc for various operating
+systems is maintained at: http://mdocml.bsd.lv/ports.html
+
+If mandoc is installed, you can check the version by typing: mandoc -V
+The version contained in this distribution tarball is listed near
+the beginning of the file "Makefile". Regarding how packages and
+ports are maintained for your operating system, please consult your
+operating system documentation.
+
+
+To install mandoc manually, the following steps are needed:
+
+1. Decide whether you want to build just the basic tools mandoc(1),
+preconv(1) and demandoc(1) or whether you also want to build the
+database tools apropos(1) and makewhatis(8). For the latter, a
+working installation of SQLite is required, see: http://sqlite.org/
+The recommended version of SQLite is 3.8.4.3 or newer. The mandoc
+toolset is known to work with version 3.7.5 or newer. Versions
+older than 3.8.3 may not achieve full performance due to the
+missing SQLITE_DETERMINISTIC optimization flag. Versions older
+than 3.8.0 may not show full error information if opening a database
+fails due to the missing sqlite3_errstr() API. Both are very minor
+problems, apropos(1) is fully usable with SQLite 3.7.5.
+The database tools also require Marc Espie's ohash(3) library;
+if your system does not have it, the bundled compatibility version
+will be used, so you probably need not worry about it.
+
+2. If you choose to build the database tools, too, decide whether
+you also want to build the CGI program, man.cgi(8).
+
+3. Read the beginning of the file "Makefile" from "USER SETTINGS"
+to "END OF USER SETTINGS" and edit it as required. In particular,
+disable "BUILD_TARGETS += db-build" if you do not want database
+support or enable "BUILD_TARGETS += cgi-build" if you do want
+the CGI program.
+
+4. Run the command "make". No separate "./configure" or "make
+depend" steps are needed. The former is run automatically by "make".
+The latter is a maintainer target. If you merely want to build the
+released version as opposed to doing active development, there is
+no need to regenerate the dependency specifications. Any
+POSIX-compatible make, in particular both BSD make and GNU make,
+is supposed to work.
+
+5. Run the command "make -n install" and check whether everything
+will be installed to the intended places. Otherwise, edit the *DIR
+variables in the Makefile until it is.
+
+6. Run "sudo make install". Instead, if you intend to build a binary
+package using some kind of fake root mechanism, you may need a
+command like "make DESTDIR=... install". Read the *-install targets
+in the "Makefile" to understand how DESTDIR is used.
+
+
+If you want to check whether automatic configuration works well
+on your platform, consider the following:
+
+The mandoc package intentionally does not use GNU autoconf because
+we consider that toolset a blatant example of overengineering that
+is obsolete nowadays, since all modern operating systems are now
+reasonably close to POSIX and do not need arcane shell magic any
+longer. If your system does need such magic, consider upgrading
+to reasonably modern POSIX-compliant tools rather than asking for
+autoconf-style workarounds.
+
+As far as mandoc is using any features not mandated by ANSI X3.159-1989
+("ANSI C") or IEEE Std 1003.1-2008 ("POSIX") that some modern systems
+do not have, we intend to provide autoconfiguration tests and
+compat_*.c implementations. Please report any that turn out to be
+missing. Note that while we do strive to produce portable code,
+we do not slavishly restrict ourselves to POSIX-only interfaces.
+For improved security and readability, we do use well-designed,
+modern interfaces like reallocarray(3) even if they are still rather
+uncommon, of course bundling compat_*.c implementations as needed.
+
+Where mandoc is using ANSI C or POSIX features that some systems
+still lack and that compat_*.c implementations can be provided for
+without too much hassle, we will consider adding them, too, so
+please report whatever is missing on your platform.
+
+The following steps can be used to manually check the automatic
+configuration on your platform:
+
+1. Run "make clean".
+
+2. Run "make config.h"
+
+3. Read the file "config.log". It shows the compiler commands used
+to test the libraries installed on your system and the standard
+output and standard error output these commands produce. Watch out
+for unexpected failures. Those are most likely to happen if headers
+or libraries are installed in unusual places or interfaces defined
+in unusual headers. You can also look at the file "config.h" and
+check that no expected "#define HAVE_*" lines are missing. The
+list of tests run can be found in the file "configure".
+
+
+In case you have questions or want to provide feedback, look at:
+http://mdocml.bsd.lv/contact.html
+
+Consider subscribing to the discuss@ mailing list mentioned on that
+page. If you intend to help with the development of mandoc, consider
+subscribing to the tech@ mailing list, too.
+
+Enjoy using the mandoc toolset!
+Ingo Schwarze, Karlsruhe, August 2014