annotate doc/src/build.md @ 817:ebe561276c33

doc: start reworking, continue #752 @8h
author David Demelier <markand@malikania.fr>
date Mon, 19 Nov 2018 07:04:42 +0100
parents 2007a37d7e1a
children
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 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
2 irccd is not available, you can build it from sources.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
3
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Requirements
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
5
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 To build from sources, you need the following installed on your system:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
7
817
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
8 - Compiler C++17 support,
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
9 - [Boost](http://boost.org),
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
10 - [CMake](http://www.cmake.org),
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
11 - [OpenSSL](https://www.openssl.org) (Optional) for connecting with SSL,
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
12 - [libedit](https://thrysoee.dk/editline) (Optional) for auto-completion,
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
13 - [doxygen](http://www.doxygen.org) (Optional) for C++ documentation.
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
14
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # Running the build
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 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
18 current version. Go to that directory, then type the following commands:
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 $ mkdir _build_
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 $ cd _build_
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 $ cmake ..
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 $ make
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 $ sudo make install
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 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
27 some options to customize the build. See below.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 # Customizing the build
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 You can configure some features when compiling irccd.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 ## Disabling JavaScript
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 You can disable JavaScript support.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
37 $ cmake .. -DIRCCD_WITH_JS=Off
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 ## Disabling SSL
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 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
42 found.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
817
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
44 Warning: this is not recommended.
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
46 $ cmake .. -DIRCCD_WITH_SSL=Off
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
47
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
48 ## Disabling libedit
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
49
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
50 If for some reasons, you don't want auto-completion in `irccd-test`, you can
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
51 disable it.
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
52
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
53 $ cmake .. -DIRCCD_WITH_LIBEDIT=Off
607
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 ## Disabling HTML 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 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
58 disable it.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
817
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
60 $ cmake .. -DIRCCD_WITH_HTML=Off
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
61
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
62 ## Disable doxygen documentation
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
63
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
64 Doxygen documentation is built for C++ API. It is disabled if doxygen was not
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
65 found.
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
66
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
67 $ cmake .. -DIRCCD_WITH_DOXYGEN=Off
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 ## Disabling man pages
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 You can disable installation of manuals.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
72
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
73 $ cmake .. -DIRCCD_WITH_MAN=Off
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 ## Installation path
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 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
78 specify the prefix where to install files.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
79
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 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
81 Windows.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 To change this, use the following:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
84
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 $ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/some/directory
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
86
817
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
87 You can also control the installation of individual directories through the
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
88 [GNUInstallDirs][] CMake module.
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
817
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
90 Example:
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
91
817
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
92 $ cmake .. -DCMAKE_INSTALL_DOCDIR=doc/irccd
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
93
ebe561276c33 doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
94 GNUInstallDirs: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html