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