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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
TOC
1. Introduction
2. Getting the source code
3. Installing the required libraries and headers
4. How to compile
5. How to run
6. Uninstalling
8. Endword
-----------------------------------------------------------------------------
1. Introduction
-----------------------------------------------------------------------------
A gfx-adapter with OpenGL acceleration is highly recommended and 24/32 bitdepth
is required with OpenGL.
NOTE TO NEW LINUX USERS: All lines that are prefixed with the '$'
character are commands that need to be typed into a terminal window /
console (similar to the command prompt for Windows). Note that the '$'
character itself should NOT be typed as part of the command.
-----------------------------------------------------------------------------
2. Getting the source code
-----------------------------------------------------------------------------
You will have to grab the source code of course. First install the subversion
package provided by your distribution. Then from a terminal, type:
$ cd $HOME
$ svn checkout https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk xbmc
-----------------------------------------------------------------------------
3. Installing the required libraries and headers
-----------------------------------------------------------------------------
You will then need the required libraries. The following is the list of packages
that are used to build XBMC packages on Debian/Ubuntu (with all supported
external libraries enabled).
Build-Depends: debhelper (>= 7.0.50), quilt, python-support, cmake,
autotools-dev, autoconf, automake, unzip, libboost-dev,
libgl1-mesa-dev | libgl-dev, libglu-dev, libglew-dev, libmad0-dev, libjpeg-dev,
libsamplerate-dev, libogg-dev, libvorbis-dev, libfreetype6-dev,
libfontconfig-dev, libbz2-dev, libfribidi-dev, libsqlite3-dev,
libmysqlclient-dev, libasound-dev, libpng-dev, libpcre3-dev, liblzo2-dev,
libcdio-dev, libsdl-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, libenca-dev,
libjasper-dev, libxt-dev, libxtst-dev, libxmu-dev, libxinerama-dev,
libcurl4-gnutls-dev | libcurl-dev, libdbus-1-dev, libhal-storage-dev,
libhal-dev, libpulse-dev, libavahi-common-dev, libavahi-client-dev,
libxrandr-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libpostproc-dev,
libswscale-dev, liba52-dev, libdts-dev, libfaad-dev, libmp4ff-dev,
libmpeg2-4-dev, libass-dev, libmpcdec-dev, libflac-dev, libwavpack-dev,
python-dev, gawk, gperf, nasm [!amd64], libcwiid1-dev, libbluetooth-dev,
zlib1g-dev, libmms-dev, libsmbclient-dev,
*** For developers and anyone else who compiles frequently it is recommended to
use ccache
--------------------------------------------------------------
3.1. Using the XBMC PPA to get all build dependencies (Debian/Ubuntu only)
--------------------------------------------------------------
For this, you need to specify the PPA in your apt sources. Please find them on
the forum.
http://xbmc.org/forum/showthread.php?t=33327
Update apt:
$ sudo apt-get update
Here is the magic command to get the build dependencies (used to compile the
version on the PPA).
$ sudo apt-get build-dep xbmc
-----------------------------------------------------------------------------
4. How to compile
-----------------------------------------------------------------------------
To create the XBMC executable manually perform these steps:
.0 $ ./bootstrap
.1 $ ./configure <option1> <option2> ...
These configure options exist (among others):
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-debug enable debugging information (default is yes)
--enable-optimizations enable optimization (default is yes)
--enable-gl enable OpenGL rendering (default is yes)
--enable-vdpau enable VDPAU decoding (default is yes)
--enable-profiling enable gprof profiling (default is no)
--enable-joystick enable SDL joystick support (default is yes)
--enable-xrandr enable XRandR support (default is yes)
--enable-ccache enable building with ccache feature (default is yes
if ccache is installed)
--enable-pulse enable PulseAudio support (default is yes)
--enable-faac enable FAAC support (default is yes)
--enable-dvdcss enable DVDCSS support (default is yes)
--enable-mid enable MID support (default is no)
--disable-avahi disable Avahi support (default is enabled if
libavahi-common and libavahi-client is found)
--enable-external-libraries
enable use of all supported external libraries
(default is no) 'Linux only'
--enable-external-ffmpeg
enable use of external ffmpeg libraries (default is
no) 'Linux only'
--enable-external-libmad
enable use of external libmad library (default is
no) 'Linux only'
--enable-external-liba52
enable use of external liba52 library (default is
no) 'Linux only'
--enable-external-libdts
enable use of external libdts library (default is
no) 'Linux only'
--enable-external-libfaad
enable use of external libfaad library (default is
no) 'Linux only'
--enable-external-libmpeg2
enable use of external libmpeg2 library (default is
no) 'Linux only'
--enable-external-libass
enable use of external libass library (default is
no) 'Linux only'
--enable-external-libvorbis
enable use of external libvorbis library (default is
no) 'Linux only'
--enable-external-libogg
enable use of external libogg library (default is
no) 'Linux only'
--enable-external-libmpcdec
enable use of external libmpcdec library (default is
no) 'Linux only'
--enable-external-libflac
enable use of external libflac library (default is
no) 'Linux only'
--enable-external-libwavpack
enable use of external libwavpack library (default
is no) 'Linux only'
--enable-external-python
enable use of external python library (default is
no) 'Linux only'
A full listing of supported options can be viewed by typing
'./configure --help'.
.2 $ make
Tip: by adding -j<number> to the make command, you describe how many
concurrent jobs will be used. So for dualcore the command is:
$ make -j2
.3 $ make install
This will install XBMC in the prefix provided in 4.1 as well as a launcher script.
NOTE: You may need to run this with sudo (sudo make install) if your user
doesn't have write permissions to the prefix you have provided (as in the
default case, /usr/local).
Tip: To override the location that XBMC is installed, use PREFIX=<path>.
For example.
$ make install PREFIX=$HOME/xbmc
-----------------------------------------------------------------------------
5. How to run
-----------------------------------------------------------------------------
How to run xbmc depends on the type of installation you have done. It is
possible to run XBMC without the requirement to install xbmc anywhere else. In
this case, type the following from the top source directory.
$ ./xbmc.bin
If you chose to install XBMC using '/usr' or '/usr/local' as the PREFIX, you
can just issue 'xbmc' in a teminal session.
If you overridden PREFIX to install XBMC into some non-standard location, you
will have to run xbmc by directly running 'xbmc.bin'. For example.
$ $HOME/xbmc/usr/share/xbmc.bin
If you wish to use VDPAU decoding you will now have to change the Render Method
in Settings->Videos->Player from "Auto Detect" to "VDPAU".
-----------------------------------------------------------------------------
6. Uninstalling
-----------------------------------------------------------------------------
Issue "make uninstall" ("sudo make uninstall" if you user doesn't have write
permission to the install directory) from your source tree. If you would like
to also remove any settings and 3rd party addons (skins, scripts, etc) you
should also run "rm -rf ~/.xbmc".
NOTE: If you have rerun configure with a different prefix, you will either need
to rerun configure with the correct prefix for this step to work correctly.
-----------------------------------------------------------------------------
7. Endword
-----------------------------------------------------------------------------
Have fun!
EOF
|