annotate doc/src/build.md @ 701:2007a37d7e1a

CMake: prefix options with IRCCD_, #closes 800 @2h
author David Demelier <markand@malikania.fr>
date Wed, 16 May 2018 12:25:51 +0200
parents bb9771fb5f44
children ebe561276c33
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
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
42 $ cmake .. -DIRCCD_WITH_JS=Off
607
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
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
51 $ cmake .. -DIRCCD_WITH_SSL=Off
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 ## Disabling libedit
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
54
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
55 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
56 disable it.
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
57
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
58 $ cmake .. -DIRCCD_WITH_LIBEDIT=Off
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 ## Disabling all documentation
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
61
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 You can disable all the documentation.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
64 $ cmake .. -DIRCCD_WITH_DOCS=Off
607
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 See below to disable only specific parts of the documentation.
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 HTML documentation
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 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
71 disable it.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
72
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 $ cmake .. -DWITH_HTML=Off
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 ## Disabling man pages
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 You can disable installation of manuals.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
79 $ cmake .. -DIRCCD_WITH_MAN=Off
607
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 ## Installation path
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 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
84 specify the prefix where to install files.
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 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
87 Windows.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 To change this, use the following:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 $ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/some/directory
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 ## Manual pages path
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 By default, irccd use **${CMAKE_INSTALL_PREFIX}/share/man** for manual pages.
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
96
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 For example, on FreeBSD the typical use would be:
bb9771fb5f44 Docs: rework documentation
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 607
diff changeset
99 $ cmake .. -DIRCCD_WITH_MANDIR=/usr/local/man