summaryrefslogtreecommitdiff
path: root/INSTALL
blob: d77ef59354705459fe7068df8297e20fa6360094 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
==============
 Dependencies
==============

Build and runtime dependencies:

Tools:

- A C++14 compiler (clang >= 3.4 or gcc >= 4.9 for example)
- CMake
- ronn (optional) to build the man page

Libraries:

- expat
 Used to parse XML from the XMPP server.
 http://expat.sourceforge.net/

- libiconv
 Encoding from anything into UTF-8
 http://www.gnu.org/software/libiconv/

- libuuid
 Generate unique IDs
 http://sourceforge.net/projects/libuuid/

- libidn (optional, but recommended)
 Provides the stringprep functionality. Without it, JIDs for IRC users are
 not provided.
 http://www.gnu.org/software/libidn/

- libbotan 1.11 (optional)
 Provides TLS support. Without it, IRC connections are all made in
 plain-text mode.
 Other branches than the 1.11 are not supported.
 http://botan.randombit.net/

- systemd-daemon (optional)
 Provides the support for a systemd service of Type=notify. This is useful only
 if you are packaging biboumi in a distribution with Systemd.


==============
  Configure
==============

Configure the build system using cmake, there are many solutions to do that,
the simplest is to just run

% cmake .

in the current directory.

The default build type is "Debug", if you want to build a release version,
set the CMAKE_BUILD_TYPE variable to "release", by running this command
instead:

% cmake . -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr

You can also configure many parameters of the build (like customize CFLAGS,
the install path, choose the compiler, or enabling some options like the
POLLER to use), using the ncurses interface of ccmake:

% ccmake .

In ccmake, first use 'c' to configure the build system, edit the values you
need and finaly use 'g' to generate the Makefiles to build the system and
quit ccmake.

or you can also use an interactive mode with:

% cmake -i .

and respond to the questions when you are prompted to.

You can, for example, select the poller used by biboumi, at compile-time,
using the POLLER cmake option.  Available values are:
 EPOLL: use the Linux-specific epoll(7). This is the default on Linux.
 POLL: use the standard poll(2). This is the default value on all non-Linux platforms.

Examples, configure the poller with cmake:

% cmake . -DPOLLER=EPOLL

You can also decide not to use two of the optional dependencies, even if they are present on your system, for example if Botan is available but you do not want to use it, you can set the value of WITHOUT_BOTAN to 1, like this:

% cmake . -DWITHOUT_BOTAN=1

This way, the binary will not be linked with libotan at all (and all
connection will then be made in clear text).
You can also decide not to link with systemd, like this:

% cmake . -DWITHOUT_SYSTEMD=1


==============
    Build
==============

- Once you’ve configured everything using cmake, build the project

% make


=============
   Install
=============

- And then, optionaly, Install the software system-wide

# make install


=============
     Run
=============

Run the software using the `biboumi` binary.  Read the documentation (the
man page biboumi(1) or the “biboumi.1.md” file) for more information on how
to use biboumi.