summaryrefslogtreecommitdiffstats
path: root/doc/texi/Building.linux.texi
blob: ef9fdbc0de5a5dcfc6a5ae49c3e32b8da68c6e8d (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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
\input texinfo @c -*- Texinfo -*-
@c %**start of header
@setfilename Building.linux.info
@include base/article.texi
@include building/command.texi
@paragraphindent none

@set BG-platform @value{OS-linux}
@c %**end of header

@majorheading Guide to Building @value{HB-title} on @value{BG-platform}
@contents
@sp 1
@include building/chapter.introduction.texi

@c %**-------------------------------------------------------------------------
@anchor{prerequisites}
@chapter Prerequisites
The following are the recommended specifications for building on @value{OS-linux}; but is not necessarily the only configuration that is possible:

@itemize @bullet
@item Intel 32-bit or 64-bit kernel
@item Ubuntu 14.04, gcc 4.8, yasm 1.3.x
@item Ubuntu 16.04, gcc 5.3, yasm 1.3.x
@item Fedora 20, gcc 4.8, yasm 1.3.x
@item gcc 4.7 or higher is reported to work
@end itemize

@include building/prerequisites.bundled.texi

@include building/prerequisites.common.texi

The @b{GTK UI} introduces some significant extra build requirements. GTK version 3.10+ is required to build the GTK UI. If you intend to disable building the GUI with @command{configure --disable-gtk} you will not need many of these packages installed:

Ubuntu 14.04, 16.04 packages:
@itemize @bullet
@item git (cli/gui)
@item cmake (cli/gui)
@item yasm (cli/gui)
@item build-essential (cli/gui)
@item autoconf (cli/gui)
@item libtool (cli/gui)
@item zlib1g-dev (cli/gui)
@item libbz2-dev (cli/gui)
@item libxml2-dev (cli/gui)
@item libogg-dev (cli/gui)
@item libtheora-dev (cli/gui)
@item libvorbis-dev (cli/gui)
@item libopus-dev (cli/gui)
@item libsamplerate-dev (cli/gui)
@item libfribidi-dev (cli/gui)
@item libfreetype6-dev (cli/gui)
@item libfontconfig1-dev (cli/gui)
@item libharfbuzz-dev (cli/gui)
@item libass-dev (cli/gui)
@item libmp3lame-dev (cli/gui)
@item libx264-dev (cli/gui)
@item libjansson-dev (cli/gui)
@item intltool (gui)
@item libglib2.0-dev (gui)
@item libdbus-glib-1-dev (gui)
@item libgtk-3-dev (gui)
@item libgudev-1.0-dev (gui)
@item libwebkitgtk-3.0-dev (gui)
@item libnotify-dev (gui)
@item libgstreamer1.0-dev (gui)
@item libgstreamer-plugins-base1.0-dev (gui)
@item libappindicator-dev (gui)
@end itemize

To install these packages:
@example
sudo apt-get install git cmake yasm build-essential autoconf libtool \
zlib1g-dev libbz2-dev libogg-dev libtheora-dev libvorbis-dev libopus-dev \
libsamplerate-dev libxml2-dev libfribidi-dev libfreetype6-dev \
libfontconfig1-dev libass-dev libmp3lame-dev libx264-dev libjansson-dev \
intltool libglib2.0-dev libdbus-glib-1-dev libgtk-3-dev libgudev-1.0-dev \
libwebkitgtk-3.0-dev libnotify-dev libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev libappindicator-dev
@end example

Additional Ubuntu 16.04 packages:
@itemize @bullet
@item libtool-bin (cli/gui)
@end itemize

To install these packages:
@example
sudo apt-get install libtool-bin
@end example

Fedora 20 package groups:
@itemize @bullet
@item Development Tools
@item Development Libraries
@item X Software Development (gui)
@item GNOME Software Development (gui)
@end itemize

To install these package groups:
@example
sudo yum groupinstall "Development Tools" "Development Libraries" \
"X Software Development" "GNOME Software Development"
@end example

Additional Fedora packages:
@itemize @bullet
@item patch (cli/gui)
@item intltool (cli/gui)
@item libtool (cli/gui)
@item cmake (cli/gui)
@item gcc-c++ (cli/gui)
@item yasm (cli/gui)
@item zlib-devel (cli/gui)
@item bzip2-devel (cli/gui)
@item libogg-devel (cli/gui)
@item libtheora-devel (cli/gui)
@item libvorbis-devel (cli/gui)
@item opus-devel (cli/gui)
@item libsamplerate-devel (cli/gui)
@item libxml2-devel (cli/gui)
@item fribidi-devel (cli/gui)
@item freetype-devel (cli/gui)
@item fontconfig-devel (cli/gui)
@item harfbuzz-devel (cli/gui)
@item libass-devel (cli/gui)
@item lame-devel (cli/gui)
@item x264-devel (cli/gui)
@item jansson-devel (cli/gui)
@item dbus-glib-devel (gui)
@item libgudev1-devel (gui)
@item webkitgtk3-devel (gui)
@item libnotify-devel (gui)
@item gstreamer1-devel (gui)
@item gstreamer1-plugins-base-devel (gui)
@end itemize

To install these packages:
@example
sudo yum install patch intltool libtool cmake gcc-c++ yasm zlib-devel \
bzip2-devel libogg-devel libtheora-devel libvorbis-devel opus-devel \
libsamplerate-devel libxml2-devel fribidi-devel freetype-devel \
fontconfig-devel libass-devel lame-devel x264-devel jansson-devel \
dbus-glib-devel libgudev1-devel webkitgtk3-devel libnotify-devel \
gstreamer1-devel gstreamer1-plugins-base-devel
@end example

@c %**-------------------------------------------------------------------------
@include building/chapter.quickstart.texi

@anchor{overview}
@chapter Overview
@value{OS-linux} builds are performed from a @b{terminal}. There is no support for building from any IDEs.

@c %**-------------------------------------------------------------------------
@include building/chapter.via.terminal.texi
@include building/chapter.troubleshooting.texi
@include building/appendix.repo.texi