FIX: NOBUG_LOG env parsing error
[nobug.git] / doc / buildinstall.txt
blobb2c57e525afcb7276b591ba45136bea72fc7e385
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 automatically
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
94 on-going stable version (latest release and bugfixes).
96 Major new releases are assembled in the 'devel' branch, generally this is not
97 considered production ready.
99 All other branches are volatile and may be deleted or rebased anytime without
100 further notice.
103 HEAD-- What Is Installed;;
105 Currently, NoBug installs the following:
107   * A single nobug.h headerfile. Include this in your code.
108   * Static libraries. Statically link these to your application:
109     - `libnobug.a` for singlethreaded programs.
110     - `libnobugmt.a` for multithreaded programs.
111   * Dynamic Libraries. Dynamically link these to your application:
112     - `libnobug.so` for singlethreaded programs.
113     - `libnobugmt.so` for multithreaded programs.
114     - associated libtool descriptors (`libnobug*.la`)
115   * Pkgconfig control files:
116     - `nobug.pc` for singlethreaded programs.
117     - `nobugmt.pc` for multithreaded programs.
118   * The `nobug_rbdump` utility to inspect NoBug ringbuffers.
121 HEAD== Generating This Documentation;;
123 There are Makefile targets for generating the documentation, either one of the
124 following does what you might expect:
126  $ make nobug_manual.txt nobug_manual.html nobug_manual.pdf
128 Alternatively, you can generate all the documentation in one go as follows:
130   $ make doc
132 Building the documentation has quite some more dependencies than building
133 NoBug itself. Unless you are a packager you may prefer to refer to the online
134 documentation or the shipped 'README' which is the complete NoBug reference
135 manual in text form. Generating the documentation requires: gawk, asciidoc,
136 graphviz and LaTeX. Check the `[header]` section of doc/latex.conf for required
137 packages.