]> git.sesse.net Git - vlc/blobdiff - INSTALL.win32
mkv: Translation fix.
[vlc] / INSTALL.win32
index 506c62d09b8439098f334c99fbe47f65267a26fd..6ad01e51b52930b34a2028189364f3d6623cd5a1 100644 (file)
-INSTALL file for the Windows9x/2k/XP version of vlc, the VideoLAN Client
+INSTALL file for the Windows9x/Me/NT4/2k/XP version of the VLC media player
 
-Running VideoLAN Client
-=======================
 
-If you have already built vlc (see below) or are using a binary release,
+Running VLC
+===========
+
+If you have already built VLC (see below) or are using a binary release,
 just run 'vlc.exe'.
 
-You can also run vlc from a dos command box, in which case you'll be able
+You can also run VLC from a dos command box, in which case you'll be able
 to use the command line arguments. You can obtain a list of these command
-line arguments by typing 'vlc --help'.
-To store a debug log of the current vlc session, you can use
-'vlc -vvvvv --intf=logger nameofyourvideofile', but this will unfortunatly
-disable the GUI. You will end-up with a vlc.log file in your current directory.
+line arguments by typing 'vlc --help' or 'vlc --help --advanced'.
 
-If you want to play a DVD, run vlc and click on the Disc option in the
-interface. You then have to type your drive letter in the 'Device name'
-box (eg. 'D:' if your dvdrom drive is assigned the letter 'D').
-( !WARNING: you have to be in administrator mode (for now) on Win2k/XP or the
-  DVD won't play. )
+To store a debug log of the current VLC session, you can use
+'vlc -vv --extraintf=logger'. You will end-up with a vlc-log.txt file in
+your current directory.
 
-Building VideoLAN Client from the source code
-=============================================
+Additional documentation is available at http://www.videolan.org/doc/
 
-If you want to do the tricky job of building vlc from sources, you can do it
-in two ways:
 
-- natively on Windows, using MSYS+MINGW (www.mingw.org)
-  (MSYS is a minimal build environnement to compile unixish projects under
-   windoze. It provides all the common unix tools like sh, gmake...)
+Building VLC from the source code
+=================================
 
-- or on Linux, using the mingw32 cross-compiler
+If you want to build VLC from sources, you can do it in several ways:
 
-Getting the right tools
-=======================
+- natively on Windows, using cygwin (www.cygwin.com) with or without the
+  POSIX emulation layer. This is the preferred way to compile vlc if you want
+  to do it on Windows.
+  NOTE: This is the PREFERRED way of building VLC natively (the others
+  are not as much tested so expect more difficulties with them).
 
-- cross-compiling with mingw32:
-All the necessary tools you need can be found on the videolan web site:
-http://www.videolan.org/vlc/windows.html
+  Read http://wiki.videolan.org/Win32CompileCygwinNew to have a complete HOWTO
 
-You first need to download a linux cross-compiler version of mingw32.
-(for Debian GNU/Linux users, there is a mingw32 package)
+- On GNU/Linux, using the mingw32 cross-compiler.
+  This method is  preferred over all the others.
 
-You must also not forget to install the extra development packages if you want
-to build the DirectX, GTK and SDL plugins.
+UNSUPPORTED METHODS
+-------------------
+- natively on Windows, using MSYS+MINGW (www.mingw.org)
+  (MSYS is a minimal build environment to compile Unixish projects under
+  windoze. It provides all the common Unix tools like sh, gmake...)
+  Please note that the gettext utilities are not included in the default
+  MSYS/MINGW packages so you won't be able to build VLC with i18n support.
+
+- natively on Windows, using Microsoft Visual C++. Even though we provide some
+  msvc project files with vlc, this method is advised only if you just want to
+  experiment/play with some basic functionality in vlc. The reason for this
+  is that vlc depends on a lot of 3rd party libraries and building them in
+  MSVC is not convenient and sometimes even impossible.
+  ( NOTE: if you want to run vlc under the msvc debugger, you need to run it
+    with the --fast-mutex --win9x-cv-method=1 options because the debugger
+    usually loses signals sent by PulseEvent() )
+
+Getting the right compiler tools
+================================
 
-- compiling natively on Windoze:
-You first need to download and install MSYS-1.0.5 (version 1.0.6 doesn't seem
-to work as well) and MINGW.
-http://prdownloads.sourceforge.net/mingw/msys-1.0.5-i686-bin.tar.gz
-http://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz
+- cross-compiling with mingw32:
+You first need to download a GNU/Linux cross-compiler version of mingw32.
 
-You must also not forget to install the extra development packages if you want
-to build the DirectX, GTK and SDL plugins.
-(http://www.videolan.org/vlc/windows.html)
+For Debian GNU/Linux users, you can use the mingw32, mingw32-binutils and
+mingw32-runtime packages.
 
+- compiling natively on Windoze with cygwin:
+You will need to download and run the setup.exe app from cygwin's web site
+(www.cygwin.com). You will also need to make sure you install at least the
+gcc-g++, gcc-mingw, mingw-runtime and win32-api packages.
 
-NOTE: by default, the GTK package is configured to be installed in
-/usr/local/gtk-win32, if you want to change this path, then you need to edit
-the gtk-win32/bin/gtk-config file and change "gtk_dir=" accordingly.
-The same is true for the SDL package, it is installed in
-/usr/local/SDL-1.2.3-win32 by default and you need to change "prefix=" in 
-SDL-1.2.3-win32/i386-mingw32msvc/bin/sdl-config if you plan to extract the
-archive in a different directory.
+- compiling natively on Windoze with MSYS+MINGW:
+You will need to download and install the latest MSYS, MSYS-DTK and MINGW.
+The installation is really easy. Begin with the MSYS auto-installer and once
+this is done, extract MINGW into c:\msys\1.0\mingw. You also have to remember
+to remove the make utility included with MINGW as it conflicts with the one
+from MSYS (just rename or remove c:\msys\1.0\mingw\bin\make.exe).
 
-Configuring the build
-=====================
+http://www.mingw.org/download.shtml
+http://prdownloads.sf.net/mingw/MSYS-1.0.9.exe
+http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe
+http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe
 
-The best way to configure the build process of vlc is to use the
-`./configure' script.
+Getting the additional libraries
+=================================
 
-See `./configure --help' for more information.
+VLC depends on other libraries to provide some features like ac3 audio decoding
+or mpeg4 video decoding, etc...
 
-If you are cross-compiling from Debian, you can use something
-along those lines:
+Depending on your needs you will have to compile/install some or all of these
+external libraries.
 
-  make distclean ; \
-  ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
-  --with-gtk-config-path=/usr/local/gtk-win32/bin \
-  --with-sdl-config-path=/usr/local/SDL-1.2.3-win32/i386-mingw32msvc/bin \
-  --with-directx=/usr/local/dxheaders
+* They can be found here (source code):
+  http://download.videolan.org/pub/testing/contrib/
 
-If you are cross-compiling using the mingw32 package provided by
-www.videolan.org, you have to use something along those lines:
+* We also provide a package with all the libraries already compiled so it is
+  actually really easy to compile a full-featured version of vlc (these compiled
+  libraries will only work with mingw or cygwin):
+  http://download.videolan.org/pub/testing/win32/contrib-20060330-win32-bin-gcc-3.4.5-only.tar.bz2
+  (Check out for more recent versions at the same location). 
 
-  CC=/usr/local/cross-tools/bin/i586-mingw32msvc-gcc \
-  PATH=/usr/local/cross-tools/bin:$PATH \
-  ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
-  --with-gtk-config-path=/usr/local/gtk-win32/bin \
-  --with-sdl-config-path=/usr/local/SDL-1.2.3-win32/i386-mingw32msvc/bin \
-  --with-directx=/usr/local/dxheaders
+  All you need to do is extract it in your root directory (the include files
+  and libraries will be put in /usr/win32). You can do this with the following
+  command: 
 
-If you are compiling natively on Windoze, then you can use something
-along those lines:
-  MAKE=gmake ./configure \
-  --with-gtk-config-path=/c/dev/gtk-win32/bin \
-  --with-sdl-config-path=/c/dev/SDL-1.2.3-win32/i386-mingw32msvc/bin \
-  --with-directx=/c/dev/dxheaders
+    tar xjvf contrib-20060330-win32-bin-gcc-3.4.5-only.tar.bz2 -C /
 
-Building VideoLAN Client
-========================
+  Please note the "-C /". 
 
-Have a look at the generated Makefile.opts file, you may want to choose
-which modules will be compiled as plugins, and which ones will remain in
-the core application. The configure script tries to guess for you.
+* An automated way of building the contrib libraries is provided in 
+  extra/contrib. It will download, configure and build the libraries.
+  See the extras/contrib/README for more info.
 
-Once configured, to build vlc you have to:
+A complete list of the libraries on which we depend can be found here:
+http://developers.videolan.org/vlc/
 
-If you are cross-compiling from Debian, then just run `make'.
+Configuring the build
+=====================
 
-If you are cross-compiling using the mingw32 package provided by
-www.videolan.org, run `PATH=/usr/local/cross-tools/bin:$PATH make'.
+Once you've got all the files you need in place, you need to configure the
+build with the `./configure' script.
 
-If you are compiling natively on Windoze, run `MAKE=gmake gmake'.
-(note that msys sometimes stops in the middle of the build process and
-complains about not being able to create .dep files. If this happens, just
-re-run the above command another time and it should work)
+I'll assume that you are using the pre-compiled 3rd party libraries we are
+providing and that they are in /usr/win32.
 
-Building Win32 interface with bcc32 (Borland's compiler)
-========================================================
-(This stage is only necessary if you want to use the Win32 native interface.
- If you are happy with the GTK interface, then you can skip this section)
+If you are cross-compiling from Debian, you can use something
+along those lines:
+
+  ./bootstrap && \
+  PATH=/usr/win32/bin:$PATH \
+  PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \
+  CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \
+  LDFLAGS=-L/usr/win32/lib \
+  CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ \
+  ./configure --host=i586-mingw32msvc --build=i386-linux \
+      --disable-gtk \
+      --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
+      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
+      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
+      --with-wx-config-path=/usr/win32/bin \
+      --with-freetype-config-path=/usr/win32/bin \
+      --with-fribidi-config-path=/usr/win32/bin \
+      --enable-live555 --with-live555-tree=/usr/win32/live.com \
+      --enable-caca --with-caca-config-path=/usr/win32/bin \
+      --with-xml2-config-path=/usr/win32/bin \
+      --with-dvdnav-config-path=/usr/win32/bin \
+      --disable-cddax --disable-vcdx --enable-goom \
+      --enable-twolame --enable-dvdread \
+      --enable-debug
+
+If you are using cygwin, you can build VLC with or without the POSIX
+emulation layer. Without is usually better and with POSIX emulation
+hasn't been tested in about a year or so. So to build without the
+emulation layer, use something like this:
+
+  ./bootstrap && \
+  PATH=/usr/win32/bin:$PATH \
+  PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig \
+  CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \
+  LDFLAGS=-L/usr/win32/lib \
+  CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" \
+  ./configure \
+      --disable-gtk \
+      --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
+      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
+      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
+      --with-wx-config-path=/usr/win32/bin \
+      --with-freetype-config-path=/usr/win32/bin \
+      --with-fribidi-config-path=/usr/win32/bin \
+      --enable-live555 --with-live555-tree=/usr/win32/live.com \
+      --enable-caca --with-caca-config-path=/usr/win32/bin \
+      --with-xml2-config-path=/usr/win32/bin \
+      --with-dvdnav-config-path=/usr/win32/bin \
+      --disable-cddax --disable-vcdx --enable-goom \
+      --enable-twolame --enable-dvdread \
+      --enable-debug
+
+If you want to use the emulation layer, then just omit the CC="gcc -mno-cygwin"
+CXX="g++ -mno-cygwin" line. You're on your own though.
+
+If you are compiling with MSYS/MINGW, then you can use something along those
+lines:
+  ./bootstrap && \
+  PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig \
+  PATH=/usr/win32/bin:$PATH \
+  CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \
+  LDFLAGS=-L/usr/win32/lib \
+  ./configure \
+      --disable-gtk \
+      --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
+      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
+      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
+      --with-wx-config-path=/usr/win32/bin \
+      --with-freetype-config-path=/usr/win32/bin \
+      --with-fribidi-config-path=/usr/win32/bin \
+      --enable-caca --with-caca-config-path=/usr/win32/bin \
+      --with-xml2-config-path=/usr/win32/bin \
+      --with-dvdnav-config-path=/usr/win32/bin \
+      --disable-cddax --disable-vcdx --enable-goom \
+      --enable-twolame --enable-dvdread \
+      --disable-mkv \
+      --enable-debug
+
+If you have used the "extras/contrib" way, you don't need to precise 
+the CFLAGS, LDFLAGS and --with-foo-config-path=.
+ ./bootstrap && \
+  ./configure \
+      --disable-gtk \
+      --enable-nls --enable-sdl \
+      --enable-ffmpeg --enable-faad --enable-flac --enable-theora \
+      --disable-cddax --disable-vcdx --enable-goom \
+      --enable-twolame --enable-dvdread \
+      --enable-mkv --enable-caca --enable-live555\
+      --enable-debug
 
-[Steps 2 and 3 are temporary]
 
-1) Compile vlc as usual.
-include\defs.h should be generated.
+See `./configure --help' for more information.
+
+Actually Compiling the VLC source
+=================================
 
-2) Edit include\defs.h, and add the following lines if necessary:
-#define WIN32
-#define MODULE_NAME win32
-#define MODULE_NAME_IS win32
-#define PLUGIN
-#define HAVE_DYNAMIC_PLUGINS
+Once configured, to build VLC, just run `make'.
 
-3) Still in defs.h, comment the following line to avoid compilation warnings:
-#define PACKAGE "vlc"
+Once the compilation is done, you can either run VLC directly from the source
+tree or you can build self-contained VLC packages with the following
+'make' rules:
 
-4) From the plugin\win32 directory, use Borland C++ command-line tools
-as follows:
-bpr2mak intfwin.bpr    // Create a makefile from intfwin.bpr
-make -fintfwin                 // It's Borland's make utility !
+  make package-win32-base
+   will create a subdirectory named vlc-x.x.x with all the binaries
+   'stripped' (ie. without any debugging symbols).
 
-5) This should create a intfwin.so
-You can remove any other generated file.
+  make package-win32-zip
+   Same as above but will package the directory in a zip file.
 
+  make package-win32
+   Same as above but will also create an auto-installer package. You will need
+   to have NSIS installed in its default location for this to work.
 
-Well done, now you're ready to use vlc!
-=======================================
\ No newline at end of file
+Well done, now you're ready to use VLC!
+=======================================