Difference between revisions of "Win32Compile"
(cross compiled 1.1.8 today. added some notes that might be helpful) |
|||
Line 1: | Line 1: | ||
− | How to compile VLC for Windows | + | How to compile VLC for Windows |
== Before you start == | == Before you start == | ||
Line 49: | Line 49: | ||
| Cross-compile with mingw32 on GNU/Linux | | Cross-compile with mingw32 on GNU/Linux | ||
| | | | ||
− | *Debian/Ubuntu users can <code>apt-get install gcc-mingw32 mingw32-binutils</code>, however building FFmpeg now requires mingw32-runtime >= 3.17 and w32api >= 3.13 so these | + | *Debian/Ubuntu users can <code>apt-get install gcc-mingw32 mingw32-binutils</code>. <code>apt-get build-dep vlc</code> should download most of the needed libraries (according to the vlc version in the repositories), however building FFmpeg now requires mingw32-runtime >= 3.17 and w32api >= 3.13 so these might have to be updated manually. Install the lua compiler with <code>apt-get install lua5.1</code>. |
*Gentoo users can <code>emerge crossdev && crossdev mingw32</code> | *Gentoo users can <code>emerge crossdev && crossdev mingw32</code> | ||
*Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW | *Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW | ||
− | |||
|- | |- | ||
| Native-compile with [http://www.mingw.org MSYS+MINGW] | | Native-compile with [http://www.mingw.org MSYS+MINGW] | ||
Line 76: | Line 75: | ||
== Configuring the build == | == Configuring the build == | ||
− | Once you've got all the files you need in place, you need to configure the build with the <code>configure</code> script. | + | First of all, <code>./bootstrap</code>. |
+ | |||
+ | Once you've got all the files you need in place, you need to configure the build with the <code>./configure</code> script. | ||
− | Good examples can be found in some files: | + | Good examples can be found in some files (in [http://git.videolan.org/gitweb.cgi?p=vlc.git;a=tree git]). From the vlc source base directory run:<br> |
− | |||
− | extras/package/win32/configure-msys.sh | + | *<code>extras/package/win32/configure-mingw.sh</code> for cross compiling with mingw32 |
+ | *<code>extras/package/win32/configure-msys.sh</code> for compiling with msys | ||
+ | *<code>extras/package/win32/configure-common.sh</code> | ||
− | |||
See <code>'./configure --help'</code> for more information. | See <code>'./configure --help'</code> for more information. | ||
Revision as of 14:21, 24 March 2011
How to compile VLC for Windows
Contents
Before you start
One common desire that leads people to want to rebuild VLC is to "rebuild a debug version" or "add printf()s", but this is not strictly necessary, as VLC includes a debug logging feature by default. If you are using a binary release (or have already built VLC), just run 'vlc.exe'
and select "Messages..." from the "Tools" menu.
You can also run VLC from the Windows command-line interpreter, cmd.exe
(a.k.a. "DOS window"), 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'
or 'vlc --help --advanced'
.
To store a debug log of the current VLC session, you can use 'vlc -vvv --extraintf=logger'
. You will end-up with a vlc-log.txt
file in your current directory.
Building VLC from source
If you want to build VLC from source, you have several choices:
Method | Documentation | Notes |
---|---|---|
Cross-compile with Mingw32 on Linux | None: read this page | Preferred method (uses cross compilation) Note: read Win32CompileFedora13 if building on Fedora 13 |
Native-compile with MSYS+MINGW | Win32CompileMSYSNew | Preferred native compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth). |
Native-compile with Cygwin | Win32CompileCygwinNew | OUTDATED native compilation method |
Native-compile with Microsoft Visual C++ | None | Not advised.
Even though VLC includes some MSVC project files, this method is advised only if you just want to experiment/play with some basic functionality in VLC. VLC depends on a lot of third-party libraries and building them in MSVC is inconvenient (and in some cases, impossible). |
Obtaining the build tools
Each build method requires its own toolchain:
Method | Notes |
---|---|
Cross-compile with mingw32 on GNU/Linux |
|
Native-compile with MSYS+MINGW | Read the documentation |
Native-compile with Cygwin | Read the documentation |
3rd party libraries.
VLC modules requires numerous open source projects to work (like AC3 audio decoding or MPEG-4 video decoding).
If you feel you must build these libraries from source, go to extras/contrib and read the README.
If you want to save yourself a lot of time and energy, use the pre-built versions of these libraries. You may download them from http://people.videolan.org/~jb/Contribs/, named in fashion of contrib-yyyymmdd-win32-version-bin-gcc-gccversion-only.tar.bz2.
Install the pre-built libraries into the standard directories (/usr/win32/*) by using
tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /
(Note the "-C /"
!)
Configuring the build
First of all, ./bootstrap
.
Once you've got all the files you need in place, you need to configure the build with the ./configure
script.
Good examples can be found in some files (in git). From the vlc source base directory run:
extras/package/win32/configure-mingw.sh
for cross compiling with mingw32extras/package/win32/configure-msys.sh
for compiling with msysextras/package/win32/configure-common.sh
See './configure --help'
for more information.
Building VLC
Once configured, to build VLC, just run 'make'
.
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:
Command | Description |
---|---|
make package-win32-base
|
Creates a subdirectory named vlc-x.x.x with all the binaries 'stripped' (that is, smallest size, unusable with a debugger)
|
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 must have NSIS installed in its default location for this to work. |
Well done—you're ready to use VLC!