da431e004f758f385de75c99ec869ddf5331a385
[nobug] / doc / buildinstall.txt
1 HEAD- Building and Installing;;
2
3 HEAD++ Supported Platforms;;
4
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.
9
10 [frame="topbot",options="header"]
11 |=================================================================================
12 |CPU     |OS              |State           |Notes
13 |x86_64  |Debian          |supported       |Reference Platform
14 |x86     |other Linux     |supported       |Please report distro specific problems
15 |armel   |maemo5          |supported       |check fails in SDK (emulator bug)
16 |x86*    |Mac OS X        |supported       |
17 |x86     |OpenSolaris     |mostly          |Builds, but target check fails
18 |        |*BSD            |planned         |Need volunteer for testing
19 |=================================================================================
20
21 NoBug has few mandatory dependencies on other software and libraries,
22 some things such as valgrind support are optional and should be automatially
23 detected during the build, i.e., when `./configure` is called. Nevertheless it
24 requires 'pkg-config' to be installed, you get some weird errors already at
25 bootstrapping (autoreconf) when this is not available.
26
27
28 HEAD== Release Tarballs;;
29
30 Releases are available at:
31  http://www.pipapo.org/nobug-releases/[]
32
33 Gpg signed tarballs are being used for distribution. The first step involves
34 checking the signature:
35
36  $ gpg nobug-VERSION.tar.gz.gpg
37
38 This will produce a nobug-VERSION.tar.gz and report if the signature could be
39 validated.
40
41 Since they are built with gnu autotools, the usual build and install procedure
42 will work:
43
44  $ tar xzvf nobug-VERSION.tar.gz
45  $ cd nobug-VERSION
46  $ mkdir -p build
47  $ cd build
48  $ ../configure
49  $ make
50  $ make check           # optional, run the testsuite
51  $ make install         # to be done as root,
52                         # depending on distribution and setup
53
54
55 HEAD== Development Version via git;;
56
57 You can obtain a development version by using git.  The git repository can be
58 cloned from `git://git.pipapo.org/nobug`.
59
60 Clone the git repository by:
61
62  $ git clone git://git.pipapo.org/nobug
63
64 After cloning the repository, then bootstrap the autotools:
65
66  $ cd nobug
67  $ autoreconf -i                # creates the configure file
68
69 Then the usual
70
71  $ cd build && ../configure && make && make install
72
73 (as above) will work. Careful users may run
74
75  $ make check
76
77 to run a testsuite before installing.
78
79
80 HEAD++ Keeping Git Up To Date;;
81
82 To update to any new revision, just enter the nobug dir and
83
84  $ git pull
85
86 After that you can build as above
87
88  $ cd build && ../configure && make && make install
89
90 This default pull will update from the 'master' branch which is meant to be an on-going
91 stable version (latest release and bugfixes).
92
93 HEAD-- What Is Installed;;
94
95 Currently, NoBug installs the following:
96
97   * A single nobug.h headerfile. Include this in your code.
98   * Static libraries. Statically link these to your application:
99     - `libnobug.a` for singlethreaded programs.
100     - `libnobugmt.a` for multithreaded programs.
101   * Dynamic Libraries. Dynamically link these to your application:
102     - `libnobug.so` for singlethreaded programs.
103     - `libnobugmt.so` for multithreaded programs.
104     - associated libtool descriptors (`libnobug*.la`)
105   * Pkgconfig control files:
106     - `nobug.pc` for singlethreaded programs.
107     - `nobugmt.pc` for multithreaded programs.
108   * The `nobug_rbdump` utility to inspect NoBug ringbuffers.
109
110
111 HEAD== Generating This Documentation;;
112
113 There are Makefile targets for generating the documentation, either one of the
114 following does what you might expect:
115
116  $ make nobug_manual.txt nobug_manual.html nobug_manual.pdf
117
118 Alternatively, you can generate all the documentation in one go as follows:
119
120   $ make doc
121
122 Building the documentation has quite some more dependencies than building
123 NoBug itself. Unless you are a packager you may prefer to refer to the online
124 documentation or the shipped 'README' which is the complete nobug reference
125 manual in text form. Generating the documentation requires: gawk, asciidoc,
126 graphviz and some tool chains to further process docbook and latex.
127