bc0d03d8f94e7c2efbec6bdd554fed900a6759fd
[vlc.git] / INSTALL.win32
1 INSTALL file for the Windows9x/Me/NT4/2k/XP version of the VLC media player
2
3
4 Running VLC
5 ===========
6
7 If you have already built VLC (see below) or are using a binary release,
8 just run 'vlc.exe'.
9
10 You can also run VLC from a dos command box, in which case you'll be able
11 to use the command line arguments. You can obtain a list of these command
12 line arguments by typing 'vlc --help' or 'vlc --help --advanced'.
13
14 To store a debug log of the current VLC session, you can use
15 'vlc -vv --extraintf=logger'. You will end-up with a vlc-log.txt file in
16 your current directory.
17
18 Additional documentation is available at http://www.videolan.org/doc/
19
20
21 Building VLC from the source code
22 =================================
23
24 If you want to build VLC from sources, you can do it in several ways:
25
26 - natively on Windows, using cygwin (www.cygwin.com) with or without the
27   POSIX emulation layer. This is the preferred way to compile vlc if you want
28   to do it on Windows.
29   NOTE: This is the PREFERRED way of building VLC natively (the others
30   are not as much tested so expect more difficulties with them).
31
32   Read http://wiki.videolan.org/Win32CompileCygwinNew to have a complete HOWTO
33
34 - On GNU/Linux, using the mingw32 cross-compiler.
35   This method is preferred over all the others.
36
37 UNSUPPORTED METHODS
38 -------------------
39 - natively on Windows, using MSYS+MINGW (www.mingw.org)
40   (MSYS is a minimal build environment to compile Unixish projects under
41   windoze. It provides all the common Unix tools like sh, gmake...)
42   Please note that the gettext utilities are not included in the default
43   MSYS/MINGW packages so you won't be able to build VLC with i18n support.
44
45 - natively on Windows, using Microsoft Visual Studio. This will not work.
46
47 Getting the right compiler tools
48 ================================
49
50 - cross-compiling with mingw32:
51 You first need to download a GNU/Linux cross-compiler version of mingw32.
52
53 For Debian GNU/Linux users, you can use the mingw32, mingw32-binutils and
54 mingw32-runtime packages.
55
56 - compiling natively on Windows with cygwin:
57 You will need to download and run the setup.exe app from cygwin's web site
58 (www.cygwin.com). You will also need to make sure you install at least the
59 gcc-g++, gcc-mingw, mingw-runtime and win32-api packages.
60
61 - compiling natively on Windows with MSYS+MINGW:
62 You will need to download and install the latest MSYS, MSYS-DTK and MINGW.
63 The installation is really easy. Begin with the MSYS auto-installer and once
64 this is done, extract MINGW into c:\msys\1.0\mingw. You also have to remember
65 to remove the make utility included with MINGW as it conflicts with the one
66 from MSYS (just rename or remove c:\msys\1.0\mingw\bin\make.exe).
67
68 http://www.mingw.org/download.shtml
69 http://prdownloads.sf.net/mingw/MSYS-1.0.9.exe
70 http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe
71 http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe
72
73 Getting the additional libraries
74 =================================
75
76 VLC depends on other libraries to provide some features like ac3 audio decoding
77 or mpeg4 video decoding, etc...
78
79 Depending on your needs you will have to compile/install some or all of these
80 external libraries.
81
82 * They can be found here (source code):
83   http://download.videolan.org/pub/testing/contrib/
84
85 * We also provide a package with all the libraries already compiled so it is
86   actually really easy to compile a full-featured version of vlc (these compiled
87   libraries will only work with mingw or cygwin):
88   http://download.videolan.org/pub/testing/win32/contrib-20060330-win32-bin-gcc-3.4.5-only.tar.bz2
89   (Check out for more recent versions at the same location). 
90
91   All you need to do is extract it in your root directory (the include files
92   and libraries will be put in /usr/win32). You can do this with the following
93   command: 
94
95     tar xjvf contrib-20060330-win32-bin-gcc-3.4.5-only.tar.bz2 -C /
96
97   Please note the "-C /". 
98
99 * An automated way of building the contrib libraries is provided in 
100   extra/contrib. It will download, configure and build the libraries.
101   See the extras/contrib/README for more info.
102
103 A complete list of the libraries on which we depend can be found here:
104 http://developers.videolan.org/vlc/
105
106 Configuring the build
107 =====================
108
109 Once you've got all the files you need in place, you need to configure the
110 build with the `./configure' script.
111
112 I'll assume that you are using the pre-compiled 3rd party libraries we are
113 providing and that they are in /usr/win32.
114
115 If you are cross-compiling from Debian, you can use something
116 along those lines:
117
118   ./bootstrap && \
119   PATH=/usr/win32/bin:$PATH \
120   PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \
121   CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \
122   LDFLAGS=-L/usr/win32/lib \
123   CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ \
124   ./configure --host=i586-mingw32msvc --build=i386-linux \
125       --disable-gtk \
126       --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
127       --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
128       --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
129       --with-wx-config-path=/usr/win32/bin \
130       --with-freetype-config-path=/usr/win32/bin \
131       --with-fribidi-config-path=/usr/win32/bin \
132       --enable-live555 --with-live555-tree=/usr/win32/live.com \
133       --enable-caca --with-caca-config-path=/usr/win32/bin \
134       --with-xml2-config-path=/usr/win32/bin \
135       --with-dvdnav-config-path=/usr/win32/bin \
136       --disable-cddax --disable-vcdx --enable-goom \
137       --enable-twolame --enable-dvdread \
138       --enable-debug
139
140 If you are using cygwin, you can build VLC with or without the POSIX
141 emulation layer. Without is usually better and with POSIX emulation
142 hasn't been tested in about a year or so. So to build without the
143 emulation layer, use something like this:
144
145   ./bootstrap && \
146   PATH=/usr/win32/bin:$PATH \
147   PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig \
148   CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \
149   LDFLAGS=-L/usr/win32/lib \
150   CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" \
151   ./configure \
152       --disable-gtk \
153       --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
154       --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
155       --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
156       --with-wx-config-path=/usr/win32/bin \
157       --with-freetype-config-path=/usr/win32/bin \
158       --with-fribidi-config-path=/usr/win32/bin \
159       --enable-live555 --with-live555-tree=/usr/win32/live.com \
160       --enable-caca --with-caca-config-path=/usr/win32/bin \
161       --with-xml2-config-path=/usr/win32/bin \
162       --with-dvdnav-config-path=/usr/win32/bin \
163       --disable-cddax --disable-vcdx --enable-goom \
164       --enable-twolame --enable-dvdread \
165       --enable-debug
166
167 If you want to use the emulation layer, then just omit the CC="gcc -mno-cygwin"
168 CXX="g++ -mno-cygwin" line. You're on your own though.
169
170 If you are compiling with MSYS/MINGW, then you can use something along those
171 lines:
172   ./bootstrap && \
173   PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig \
174   PATH=/usr/win32/bin:$PATH \
175   CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \
176   LDFLAGS=-L/usr/win32/lib \
177   ./configure \
178       --disable-gtk \
179       --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
180       --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
181       --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
182       --with-wx-config-path=/usr/win32/bin \
183       --with-freetype-config-path=/usr/win32/bin \
184       --with-fribidi-config-path=/usr/win32/bin \
185       --enable-caca --with-caca-config-path=/usr/win32/bin \
186       --with-xml2-config-path=/usr/win32/bin \
187       --with-dvdnav-config-path=/usr/win32/bin \
188       --disable-cddax --disable-vcdx --enable-goom \
189       --enable-twolame --enable-dvdread \
190       --disable-mkv \
191       --enable-debug
192
193 If you have used the "extras/contrib" way, you don't need to precise 
194 the CFLAGS, LDFLAGS and --with-foo-config-path=.
195  ./bootstrap && \
196   ./configure \
197       --disable-gtk \
198       --enable-nls --enable-sdl \
199       --enable-ffmpeg --enable-faad --enable-flac --enable-theora \
200       --disable-cddax --disable-vcdx --enable-goom \
201       --enable-twolame --enable-dvdread \
202       --enable-mkv --enable-caca --enable-live555\
203       --enable-debug
204
205
206 See `./configure --help' for more information.
207
208 Actually Compiling the VLC source
209 =================================
210
211 Once configured, to build VLC, just run `make'.
212
213 Once the compilation is done, you can either run VLC directly from the source
214 tree or you can build self-contained VLC packages with the following
215 'make' rules:
216
217   make package-win32-base
218    will create a subdirectory named vlc-x.x.x with all the binaries
219    'stripped' (ie. without any debugging symbols).
220
221   make package-win32-zip
222    Same as above but will package the directory in a zip file.
223
224   make package-win32
225    Same as above but will also create an auto-installer package. You will need
226    to have NSIS installed in its default location for this to work.
227
228 Well done, now you're ready to use VLC!
229 =======================================