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