add a table for supported platforms to the manual
[nobug.git] / doc / buildinstall.txt
blob46fa296a22215b948d64600bbff9c30df8591232
1 HEAD- Building and Installing;;
3 HEAD++ Supported Platforms;;
5 NoBug is developed on linux, using gcc. It should be possible to port
6 it to any other POSIX conforming operating system. Most platform
7 specific things are kept optional, but some things need to be
8 rewritten for the target platform. Currently Linux with a C99
9 conforming gcc is supported, for both, 32 and 64 bit architectures.
10 One gcc extentsion is used (token pasting of varadic macros) which
11 prevents portability to other compilers which don't support this. When
12 this is a problem, contact the NoBug author for implementing a workaround.
15 [grid="all"]
16 `---------------`---------------`---------------`--------------------------
17 Platform        Compiler        State           Notes
18 ---------------------------------------------------------------------------
19 Linux x86_64    gcc 4.3.2       supported       Reference Platform
20 Linux x86       gcc             supported
21 MacOS X         gcc             works           Valgrind problems
22 OpenSolaris     gcc             mostly          waiting for a patch
23 FreeBSD                         planned
24 ---------------------------------------------------------------------------
26 NoBug has no mandatory dependencies on other software and libraries,
27 some things like valgrind support are optional and automatially
28 detected.
31 HEAD== Release Tarballs;;
33 Releases are available on:
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, run the testsuite
54  $ make install         # depending on distribution and setup, do this as root
57 HEAD== Development Version via git;;
59 The development version is available via git from
60 `git://git.pipapo.org/nobug` or mirrored at repo.or.cz
61 `git://repo.or.cz/nobug.git`.
63 You clone the git repository by:
65  $ git clone git://git.pipapo.org/nobug
67 After you have cloned the repository, you'll then have to bootstrap the
68 autotools first:
70  $ cd nobug
71  $ autoreconf -i                # creates the configure file
73 Then the usual `cd build && ../configure && make && make install` (as above) will work.
74 Careful users may run `make check` to run a testsuite before installing.
77 HEAD++ Keeping Git Up To Date;;
79 To update to any new revision you just go into the nobug dir and
81  $ git pull
83 After that you can build as above (cd build && ../configure && make && make install).
84 This default pull will update from the 'master' branch which is meant to be a ongoing
85 stable version (latest release + bugfixes).
87 HEAD-- What Is Installed;;
89 Currently, NoBug installs the following:
91   * A single nobug.h headerfile which your code will use
92   * Libraries that are used by statically linking:
93     - `libnobug.a` for singlethreaded programs.
94     - `libnobugmt.a` for multithreaded programs.
95   * Libraries for dynamic linking:
96     - `libnobug.so` for singlethreaded programs.
97     - `libnobugmt.so` for multithreaded programs.
98     - associated libtool descriptors (`libnobug*.la`)
99   * Pkgconfig control files:
100     - `nobug.pc` for singlethreaded programs.
101     - `nobugmt.pc` for multithreaded programs.
102   * The `nobug_rbdump` utility to inspect NoBug ringbuffers