More documentation fixes, formatting, cosmetic, wording
[nobug.git] / doc / buildinstall.txt
blob755351e19c2c9e886678469d3b2740cf2c45d130
1 HEAD- Building and Installing;;
3 HEAD++ Supported Platforms;;
5 NoBug has been developed on Linux, using GCC. It should be possible to port
6 it to any other POSIX compliant operating system. Platform/compiler
7 specific things are kept optional. Currently Linux with a GCC that conforms to
8 C99 is supported for both 32 and 64 bit architectures. For non-GCC compilers,
9 some features are not available or degraded.
11 [frame="topbot",options="header", cols="<,<,<,<"]
12 |=================================================================================
13 |CPU    |OS          |Compiler    |State
14 |x86_64 |Debian      |gcc4        |supported footnote:[Reference Platform]
15 |x86    |other Linux |gcc4        |supported footnote:[Please report distro specific problems]
16 |armel  |maemo5      |gcc4        |supported footnote:[check fails in SDK (emulator bug)]
17 |x86*   |Mac OS X    |gcc4        |supported
18 |x86    |OpenSolaris |gcc4        |supported
19 |x86    |OpenSolaris |suncc       |mostly    footnote:[some features are not
20 available, needs more testing]
21 |       |*BSD        |            |planned   footnote:[Need volunteer for testing]
22 |=================================================================================
24 NoBug has few mandatory dependencies on other software and libraries,
25 some things such as valgrind support are optional and should be automatially
26 detected by `./configure`. Nevertheless it
27 requires 'pkg-config' to be installed or you'll get some weird errors at
28 bootstrapping (`autoreconf`) already.
31 HEAD== Release Tarballs;;
33 Releases are available at:
34  http://www.pipapo.org/nobug-releases/[]
36 Gpg signed tarballs are being used for distribution. The first step involves
37 checking the signature:
39  $ gpg nobug-VERSION.tar.gz.gpg
41 This will produce a nobug-VERSION.tar.gz and report if the signature could be
42 validated.
44 Since they are built with GNU Autotools, the usual build and install procedure
45 will work:
47  $ tar xzvf nobug-VERSION.tar.gz
48  $ cd nobug-VERSION
49  $ mkdir -p build
50  $ cd build
51  $ ../configure
52  $ make
53  $ make check           # optional, runs the testsuite
54  $ make install         # to be done as root,
55                         # depending on distribution and setup
58 HEAD== Development Version via Git;;
60 You can obtain a development version using Git.  The Git repository can be
61 cloned from `git://git.pipapo.org/nobug`.
63 Clone the Git repository with:
65  $ git clone git://git.pipapo.org/nobug
67 After cloning the repository, then bootstrap the Autotools:
69  $ cd nobug
70  $ autoreconf -i                # creates the configure file
72 Then the usual
74  $ cd build && ../configure && make && make install
76 (as above) will work. Careful users may run
78  $ make check
80 to run a testsuite before installing.
83 HEAD++ Keeping Git Up To Date;;
85 To update to any new revision, just enter the nobug dir and
87  $ git pull
89 After that you can build as above
91  $ cd build && ../configure && make && make install
93 This default pull will update from the 'master' branch which is meant to be an on-going
94 stable version (latest release and bugfixes).
96 HEAD-- What Is Installed;;
98 Currently, NoBug installs the following:
100   * A single nobug.h headerfile. Include this in your code.
101   * Static libraries. Statically link these to your application:
102     - `libnobug.a` for singlethreaded programs.
103     - `libnobugmt.a` for multithreaded programs.
104   * Dynamic Libraries. Dynamically link these to your application:
105     - `libnobug.so` for singlethreaded programs.
106     - `libnobugmt.so` for multithreaded programs.
107     - associated libtool descriptors (`libnobug*.la`)
108   * Pkgconfig control files:
109     - `nobug.pc` for singlethreaded programs.
110     - `nobugmt.pc` for multithreaded programs.
111   * The `nobug_rbdump` utility to inspect NoBug ringbuffers.
114 HEAD== Generating This Documentation;;
116 There are Makefile targets for generating the documentation, either one of the
117 following does what you might expect:
119  $ make nobug_manual.txt nobug_manual.html nobug_manual.pdf
121 Alternatively, you can generate all the documentation in one go as follows:
123   $ make doc
125 Building the documentation has quite some more dependencies than building
126 NoBug itself. Unless you are a packager you may prefer to refer to the online
127 documentation or the shipped 'README' which is the complete NoBug reference
128 manual in text form. Generating the documentation requires: gawk, asciidoc,
129 graphviz and LaTeX. Check the `[header]` section of doc/latex.conf for required
130 packages.