]> git.sesse.net Git - vlc/blobdiff - INSTALL.win32
* ./modules/video_output/sdl.c: mouse coordinates support for SDL.
[vlc] / INSTALL.win32
index 117952b8fcafd7fd41898113bf90b3c425f75e16..b159be953412d04197a5eee88b34c10bef1ba1ef 100644 (file)
@@ -15,20 +15,21 @@ disable the GUI. You will end-up with a vlc.log file in your current directory.
 
 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. )
+box (eg. 'D' if this is the letter for your dvdrom drive).
 
 Building VideoLAN Client from the source code
 =============================================
 
 If you want to do the tricky job of building vlc from sources, you can do it
-in two ways:
+in several 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...)
 
+- natively on Windows, using cygwin (www.cygwin.com) with or without the
+  unix emulation layer.
+
 - or on Linux, using the mingw32 cross-compiler
 
 Getting the right tools
@@ -44,16 +45,35 @@ You first need to download a 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.
 
-- 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
+- compiling natively on Windoze with MSYS+MINGW:
+You will need to download and install the latest MSYS (version 1.0.7 as
+of now) 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).
+
+http://www.mingw.org/download.shtml
+http://prdownloads.sourceforge.net/mingw/MSYS-1.0.7-i686-2.exe
 http://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz
 
 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)
 
+- 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).
+I'm personnaly running the experimental distribution (and gcc-3.2) with the
+exception of the autoconf tool for which I'm using the autoconf-devel-2.52-4
+package (I had problems with 2.53a-1). You will need to make sure you install
+at least the gcc-mingw, mingw-runtime and w32api packages.
+
+Also note that currently, even when using the -mno-cygwin option, the final
+executable requires cygwin1.dll even if none of the objects linked to form the
+executable does depend on cygwin1.dll itself. I don't know yet why the linker
+plays this trick...
+
 
 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
@@ -63,6 +83,13 @@ The same is true for the SDL package, it is installed 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 cygwin:
+You will need to download and install cygwin (www.cygwin.com).
+
+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)
+
 Configuring the build
 =====================
 
@@ -74,30 +101,50 @@ See `./configure --help' for more information.
 If you are cross-compiling from Debian, you can use something
 along those lines:
 
-  make distclean ; \
-  ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
-  --build=i386-linux \
+  ./bootstrap; \
+  CC=i586-mingw32msvc-gcc \
+  ./configure --host=i586-mingw32msvc --build=i386-linux \
   --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
+  --with-directx=/usr/local/dxheaders \
+  --with-dvdcss-tree=../libdvdcss-win
 
 If you are cross-compiling using the mingw32 package provided by
 www.videolan.org, you have to use something along those lines:
 
-  CC=/usr/local/cross-tools/bin/i586-mingw32msvc-gcc \
+  ./bootstrap; \
+  CC=i586-mingw32msvc-gcc \
   PATH=/usr/local/cross-tools/bin:$PATH \
-  ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
-  --build=i386-linux \
+  ./configure --host=i586-mingw32msvc --build=i386-linux \
   --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
+  --with-directx=/usr/local/dxheaders \
+  --with-dvdcss-tree=../libdvdcss-win
 
 If you are compiling natively on Windoze, then you can use something
 along those lines:
-  MAKE=gmake ./configure \
+  ./bootstrap; \
+  ./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
+  --with-directx=/c/dev/dxheaders \
+  --with-dvdcss-tree=../libdvdcss-win
+
+If you are using cygwin, you can build vlc with or without the unix emulation
+layer (without is usually better). To build without the emulaion layer, use
+something like this:
+  ./bootstrap; \
+  CC="gcc -mno-cygwin" \
+  ./configure \
+  --with-gtk-config-path=/cygdrive/c/dev/gtk-win32/bin \
+  --with-sdl-config-path=/cygdrive/c/dev/SDL-1.2.3-win32/i386-mingw32msvc/bin \
+  --with-directx=/cygdrive/c/dev/dxheaders \
+  --with-dvdcss-tree=../libdvdcss-win
+If you want to use the emulation layer, then just omit the CC="gcc -mno-cygwin"
+line.
+
+Note: when using the --with-dvdcss-tree you need to compile the libdvdcss tree
+beforehand.
 
 Building VideoLAN Client
 ========================
@@ -108,16 +155,12 @@ the core application. The configure script tries to guess for you.
 
 Once configured, to build vlc you have to:
 
-If you are cross-compiling from Debian, then just run `make'.
+If you are cross-compiling from Debian or compiling natively on Windoze,
+then just run `make'.
 
 If you are cross-compiling using the mingw32 package provided by
 www.videolan.org, run `PATH=/usr/local/cross-tools/bin:$PATH make'.
 
-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)
-
 Building Win32 interface with bcc32 (Borland's compiler)
 ========================================================
 (This stage is only necessary if you want to use the Win32 native interface.
@@ -128,7 +171,7 @@ Building Win32 interface with bcc32 (Borland's compiler)
 2) From the plugin\win32 directory, use Borland C++ command-line tools
 as follows:
 bpr2mak intfwin.bpr -s \
-  | sed 's#^LIBPATH = .*#&;$$(RELEASELIBPATH)# ; s#^USERDEFINES = .*#& -DWIN32 -DPLUGIN -DMODULE_NAME_IS_intfwin -DMODULE_NAME=intfwin#' \
+  | sed 's#^LIBPATH = .*#&;$$(RELEASELIBPATH)# ; s#^USERDEFINES = .*#& -DWIN32 -D__PLUGIN__ -DMODULE_NAME_IS_intfwin -DMODULE_NAME=intfwin#' \
   > intfwin.mak                // Create a makefile from intfwin.bpr
 make -fintfwin                 // It's Borland's make utility !