[WIN32] fixed some _WIN32PC leftovers.
[xbmc:xbmc.git] / 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 8. Endword
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 subversion
28 package provided by your distribution. Then from a terminal, type:
29
30    $ cd $HOME
31    $ svn checkout https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk
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: debhelper (>= 7.0.50), quilt, python-support, cmake,
42  autotools-dev, autoconf, automake, unzip, libboost-dev,
43  libgl1-mesa-dev | libgl-dev, libglu-dev, libglew-dev, libmad0-dev, libjpeg-dev,
44  libsamplerate-dev, libogg-dev, libvorbis-dev, libfreetype6-dev,
45  libfontconfig-dev, libbz2-dev, libfribidi-dev, libsqlite3-dev,
46  libmysqlclient-dev, libasound-dev, libpng-dev, libpcre3-dev, liblzo2-dev,
47  libcdio-dev, libsdl-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, libenca-dev,
48  libjasper-dev, libxt-dev, libxtst-dev, libxmu-dev, libxinerama-dev,
49  libcurl4-gnutls-dev | libcurl-dev, libdbus-1-dev, libhal-storage-dev,
50  libhal-dev, libpulse-dev, libavahi-common-dev, libavahi-client-dev,
51  libxrandr-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libpostproc-dev,
52  libswscale-dev, liba52-dev, libdts-dev, libfaad-dev, libmp4ff-dev,
53  libmpeg2-4-dev, libass-dev, libmpcdec-dev, libflac-dev, libwavpack-dev,
54  python-dev, gawk, gperf, nasm [!amd64], libcwiid1-dev, libbluetooth-dev,
55  zlib1g-dev, libmms-dev, libsmbclient-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://xbmc.org/forum/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> ...
85
86 These configure options exist (among others):
87   --disable-option-checking  ignore unrecognized --enable/--with options
88   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
89   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
90   --enable-debug          enable debugging information (default is yes)
91   --enable-optimizations  enable optimization (default is yes)
92   --enable-gl             enable OpenGL rendering (default is yes)
93   --enable-vdpau          enable VDPAU decoding (default is yes)
94   --enable-profiling      enable gprof profiling (default is no)
95   --enable-joystick       enable SDL joystick support (default is yes)
96   --enable-xrandr         enable XRandR support (default is yes)
97   --enable-ccache         enable building with ccache feature (default is yes
98                           if ccache is installed)
99   --enable-pulse          enable PulseAudio support (default is yes)
100   --enable-faac           enable FAAC support (default is yes)
101   --enable-dvdcss         enable DVDCSS support (default is yes)
102   --enable-mid            enable MID support (default is no)
103   --disable-avahi         disable Avahi support (default is enabled if
104                           libavahi-common and libavahi-client is found)
105   --enable-external-libraries
106                           enable use of all supported external libraries
107                           (default is no) 'Linux only'
108   --enable-external-ffmpeg
109                           enable use of external ffmpeg libraries (default is
110                           no) 'Linux only'
111   --enable-external-libmad
112                           enable use of external libmad library (default is
113                           no) 'Linux only'
114   --enable-external-liba52
115                           enable use of external liba52 library (default is
116                           no) 'Linux only'
117   --enable-external-libdts
118                           enable use of external libdts library (default is
119                           no) 'Linux only'
120   --enable-external-libfaad
121                           enable use of external libfaad library (default is
122                           no) 'Linux only'
123   --enable-external-libmpeg2
124                           enable use of external libmpeg2 library (default is
125                           no) 'Linux only'
126   --enable-external-libass
127                           enable use of external libass library (default is
128                           no) 'Linux only'
129   --enable-external-libvorbis
130                           enable use of external libvorbis library (default is
131                           no) 'Linux only'
132   --enable-external-libogg
133                           enable use of external libogg library (default is
134                           no) 'Linux only'
135   --enable-external-libmpcdec
136                           enable use of external libmpcdec library (default is
137                           no) 'Linux only'
138   --enable-external-libflac
139                           enable use of external libflac library (default is
140                           no) 'Linux only'
141   --enable-external-libwavpack
142                           enable use of external libwavpack library (default
143                           is no) 'Linux only'
144   --enable-external-python
145                           enable use of external python library (default is
146                           no) 'Linux only'
147
148 A full listing of supported options can be viewed by typing
149 './configure --help'.
150
151 .2  $ make
152
153 Tip: by adding -j<number> to the make command, you describe how many
154      concurrent jobs will be used. So for dualcore the command is: 
155
156     $ make -j2
157
158 .3  $ make install
159
160 This will install XBMC in the prefix provided in 4.1 as well as a launcher script.
161
162 NOTE: You may need to run this with sudo (sudo make install) if your user
163 doesn't have write permissions to the prefix you have provided (as in the
164 default case, /usr/local).
165
166 Tip: To override the location that XBMC is installed, use PREFIX=<path>.
167 For example.
168
169     $ make install PREFIX=$HOME/xbmc
170
171 -----------------------------------------------------------------------------
172 5. How to run
173 -----------------------------------------------------------------------------
174 How to run xbmc depends on the type of installation you have done. It is
175 possible to run XBMC without the requirement to install xbmc anywhere else. In
176 this case, type the following from the top source directory.
177
178     $ ./xbmc.bin
179
180 If you chose to install XBMC using '/usr' or '/usr/local' as the PREFIX, you
181 can just issue 'xbmc' in a teminal session.
182
183 If you overridden PREFIX to install XBMC into some non-standard location, you
184 will have to run xbmc by directly running 'xbmc.bin'. For example.
185
186     $ $HOME/xbmc/usr/share/xbmc.bin
187
188 If you wish to use VDPAU decoding you will now have to change the Render Method
189 in Settings->Videos->Player from "Auto Detect" to "VDPAU".
190
191 -----------------------------------------------------------------------------
192 6. Uninstalling
193 -----------------------------------------------------------------------------
194 Issue "make uninstall"  ("sudo make uninstall" if you user doesn't have write
195 permission to the install directory) from your source tree. If you would like
196 to also remove any settings and 3rd party addons (skins, scripts, etc) you
197 should also run "rm -rf ~/.xbmc".
198
199 NOTE: If you have rerun configure with a different prefix, you will either need
200 to rerun configure with the correct prefix for this step to work correctly.
201
202 -----------------------------------------------------------------------------
203 7. Endword
204 -----------------------------------------------------------------------------
205
206 Have fun!
207
208 EOF
209