Merge pull request #3111 from janbar/epg_timeslot
[vuplus_xbmc] / docs / README.linux
1 TOC
2 1. Introduction
3 2. Getting the source code
4 3. Installing the required libraries and headers
5 4. How to compile
6 5. How to run
7 6. Uninstalling
8
9 -----------------------------------------------------------------------------
10 1. Introduction
11 -----------------------------------------------------------------------------
12
13 A gfx-adapter with OpenGL acceleration is highly recommended and 24/32 bitdepth
14 is required with OpenGL.
15
16 NOTE TO NEW LINUX USERS: All lines that are prefixed with the '$'
17 character are commands that need to be typed into a terminal window /
18 console (similar to the command prompt for Windows). Note that the '$'
19 character itself should NOT be typed as part of the command.
20
21
22 -----------------------------------------------------------------------------
23 2. Getting the source code
24 -----------------------------------------------------------------------------
25
26 You will have to grab the source code of course. First install the git
27 package provided by your distribution. Then from a terminal, type:
28
29    $ cd $HOME
30    $ git clone git://github.com/xbmc/xbmc.git xbmc
31
32 -----------------------------------------------------------------------------
33 3. Installing the required libraries and headers
34 -----------------------------------------------------------------------------
35
36 You will then need the required libraries. The following is the list of packages
37 that are used to build XBMC packages on Debian/Ubuntu (with all supported
38 external libraries enabled).
39
40 Build-Depends: autoconf, automake, autopoint, autotools-dev, cmake, curl,
41   debhelper (>= 7.0.50~), default-jre, gawk, gperf, libao-dev, libasound2-dev,
42   libass-dev (>= 0.9.8), libavahi-client-dev, libavahi-common-dev, libavcodec-dev,
43   libavfilter-dev, libavformat-dev, libavutil-dev, libbluetooth-dev, libbluray-dev,
44   libboost-dev, libboost-thread-dev, libbz2-dev, libcap-dev, libcdio-dev, libcec-dev,
45   libcrystalhd-dev, libcurl4-gnutls-dev | libcurl-dev, libcwiid-dev, libdbus-1-dev,
46   libenca-dev, libflac-dev, libfontconfig-dev, libfreetype6-dev, libfribidi-dev,
47   libgl1-mesa-dev | libgl-dev, libglew-dev, libglu1-mesa-dev | libglu-dev, libhal-dev,
48   libhal-storage-dev, libiso9660-dev, libjasper-dev, libjpeg-dev, libltdl-dev, liblzo2-dev,
49   libmad0-dev, libmicrohttpd-dev, libmodplug-dev, libmpcdec-dev, libmpeg2-4-dev, libmysqlclient-dev,
50   libnfs-dev, libogg-dev, libpcre3-dev, libplist-dev, libpng12-dev | libpng-dev, libpostproc-dev,
51   libpulse-dev, librtmp-dev, libsamplerate-dev, libsdl-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev,
52   libshairplay-dev, libsmbclient-dev, libsqlite3-dev, libssh-dev, libssl-dev, libswscale-dev,
53   libtag1-dev (>= 1.8), libtiff-dev, libtinyxml-dev, libtool, libudev-dev, libusb-dev, libva-dev,
54   libvdpau-dev, libvorbis-dev, libxinerama-dev, libxmu-dev, libxrandr-dev, libxt-dev, libyajl-dev,
55   lsb-release, nasm [!amd64], python-dev, python-imaging, python-support, swig, unzip, yasm, zip, zlib1g-dev
56
57 *** For developers and anyone else who compiles frequently it is recommended to
58 use ccache
59
60 --------------------------------------------------------------
61 3.1. Using the XBMC PPA to get all build dependencies (Debian/Ubuntu only)
62 --------------------------------------------------------------
63
64 For this, you need to specify the PPA in your apt sources. Please find them on
65 the forum.
66
67 http://forum.xbmc.org/showthread.php?t=33327
68
69 Update apt:
70    $ sudo apt-get update
71
72 Here is the magic command to get the build dependencies (used to compile the
73 version on the PPA).
74    $ sudo apt-get build-dep xbmc
75
76 -----------------------------------------------------------------------------
77 4. How to compile
78 -----------------------------------------------------------------------------
79
80 To create the XBMC executable manually perform these steps:
81
82 .0  $ ./bootstrap
83
84 .1  $ ./configure <option1> <option2> ... (See --help for available options)
85
86 A full listing of supported options can be viewed by typing
87 './configure --help'.
88
89 .2  $ make
90
91 Tip: by adding -j<number> to the make command, you describe how many
92      concurrent jobs will be used. So for dualcore the command is: 
93
94     $ make -j2
95
96 .3  $ make install
97
98 This will install XBMC in the prefix provided in 4.1 as well as a launcher script.
99
100 NOTE: You may need to run this with sudo (sudo make install) if your user
101 doesn't have write permissions to the prefix you have provided (as in the
102 default case, /usr/local).
103
104 Tip: To override the location that XBMC is installed, use PREFIX=<path>.
105 For example.
106
107     $ make install DESTDIR=$HOME/xbmc
108
109 -----------------------------------------------------------------------------
110 4.1. Test Suite
111 -----------------------------------------------------------------------------
112 XBMC has a test suite which uses the Google C++ Testing Framework. The
113 framework is provided directly in XBMC's source tree and has very little
114 requirements in order to build and run. See the README file for the framework
115 at 'lib/gtest/README' for specific requirements.
116
117 To compile and run XBMC's test suite, the configure option '--enable-gtest'
118 has to be explicitely set during the configure stage. Once configured, to
119 build the testsuite, type the following.
120
121     $ make check
122
123 To compile the test suite without running it, type the following.
124
125     $ make testsuite
126
127 The test suite program can be run manually as well. The name of the test suite
128 program is 'xbmc-test' and will build in the XBMC source tree. To bring up the
129 'help' notes for the program, type the following.
130
131     $ ./xbmc-test --gtest_help
132
133 The most useful options are,
134
135   --gtest_list_tests
136       List the names of all tests instead of running them. The name of
137       TEST(Foo, Bar) is "Foo.Bar".
138   --gtest_filter=POSTIVE_PATTERNS[-NEGATIVE_PATTERNS]
139       Run only the tests whose name matches one of the positive patterns but
140       none of the negative patterns. '?' matches any single character; '*'
141       matches any substring; ':' separates two patterns.
142
143 NOTE: If the '--enable-gtest' option is not set during the configure
144 stage, the make targets 'check,' 'testsuite,' and 'testframework' will
145 simply show a message saying the framework has not been configured, and then
146 silently succeed (i.e. it will not return an error).
147
148 -----------------------------------------------------------------------------
149 5. How to run
150 -----------------------------------------------------------------------------
151 How to run xbmc depends on the type of installation you have done. It is
152 possible to run XBMC without the requirement to install xbmc anywhere else. In
153 this case, type the following from the top source directory.
154
155     $ ./xbmc.bin
156
157 If you chose to install XBMC using '/usr' or '/usr/local' as the PREFIX, you
158 can just issue 'xbmc' in a teminal session.
159
160 If you overridden PREFIX to install XBMC into some non-standard location, you
161 will have to run xbmc by directly running 'xbmc.bin'. For example.
162
163     $ $HOME/xbmc/usr/share/xbmc.bin
164
165 If you wish to use VDPAU decoding you will now have to change the Render Method
166 in Settings->Videos->Player from "Auto Detect" to "VDPAU".
167
168 -----------------------------------------------------------------------------
169 6. Uninstalling
170 -----------------------------------------------------------------------------
171 Issue "make uninstall"  ("sudo make uninstall" if you user doesn't have write
172 permission to the install directory) from your source tree. If you would like
173 to also remove any settings and 3rd party addons (skins, scripts, etc) you
174 should also run "rm -rf ~/.xbmc".
175
176 NOTE: If you have rerun configure with a different prefix, you will either need
177 to rerun configure with the correct prefix for this step to work correctly.
178
179 EOF
180