annotate doc/src/build.md @ 683:d30793525261

CMake: global cleanup, remove useless definitions and libraries
author David Demelier <markand@malikania.fr>
date Thu, 12 Apr 2018 19:30:43 +0200
parents bb9771fb5f44
children 2007a37d7e1a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 % building from sources
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 % David Demelier
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 % 2017-12-08
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
4
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 You should use the irccd version provided by your package manger if possible. If
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 irccd is not available, you can build it from sources.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
7
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # Requirements
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
9
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 To build from sources, you need the following installed on your system:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
11
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 - [CMake](http://www.cmake.org),
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 - [OpenSSL](https://www.openssl.org) (Optional) for connecting with SSL,
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 - [Pandoc](http://pandoc.org) (Optional) for building the documentation,
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 - At least **GCC 5.1** or **clang 3.4**
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
16
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 **Warning**: don't even try to compile with GCC 4.x, it will not work due to
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 missing C++14 features.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 # Running the build
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 When you're ready, extract the **irccd-x.y.z.tar.gz** where **x.y.z** is the
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 current version. Go to that directory, then type the following commands:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 $ mkdir _build_
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 $ cd _build_
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 $ cmake ..
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 $ make
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 $ sudo make install
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 This is the quick way of compiling and installing. It's also possible to set
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 some options to customize the build. See below.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 # Customizing the build
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 You can configure some features when compiling irccd.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 ## Disabling JavaScript
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 You can disable JavaScript support.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 $ cmake .. -DWITH_JS=Off
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 ## Disabling SSL
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 You can disable OpenSSL support, it is automatically unset if OpenSSL is not
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 found.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 **Warning**: this is not recommended.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
50
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 $ cmake .. -DWITH_SSL=Off
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 ## Disabling all documentation
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 You can disable all the documentation.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 $ cmake .. -DWITH_DOCS=Off
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 See below to disable only specific parts of the documentation.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 ## Disabling HTML documentation
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 By default if Pandoc is available, the HTML documentation is built, you can
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 disable it.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 $ cmake .. -DWITH_HTML=Off
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 ## Disabling man pages
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 You can disable installation of manuals.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 $ cmake .. -DWITH_MAN=Off
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
73
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 ## Installation path
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 Sometimes, you may need to install irccd over other place, for that, you can
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 specify the prefix where to install files.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 On Unix systems, it's usually **/usr/local** and **C:/Program Files/Irccd** on
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 Windows.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
81
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 To change this, use the following:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 $ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/some/directory
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
85
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 ## Manual pages path
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 By default, irccd use **${CMAKE_INSTALL_PREFIX}/share/man** for manual pages.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 For example, on FreeBSD the typical use would be:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
91
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 $ cmake .. -DWITH_MANDIR=/usr/local/man