mirror of https://code.videolan.org/videolan/vlc
165 lines
4.6 KiB
Plaintext
165 lines
4.6 KiB
Plaintext
2002/03/05
|
|
|
|
VLC for Windows Cross-Compile HOWTO - 0.1
|
|
|
|
*EASY* VLC cross-compilation using Linux for a Windows client
|
|
|
|
Bill Eldridge & Gildas Bazin
|
|
|
|
0) MSYS & mingw
|
|
1) Download software packages
|
|
2) Unpack sources
|
|
3) Configure vlc
|
|
4) Make
|
|
5) Package for Windows
|
|
6) Further resources
|
|
|
|
0) MSYS & mingw
|
|
|
|
As of version 1.0.5, the MSYS part of MingW has
|
|
released an environment that will let you configure
|
|
and compile packages for mingw directly on Windows.
|
|
|
|
http://mingw.sourceforge.net
|
|
|
|
Combined with the SDL & GTK development packages,
|
|
this is enough to compile vlc without cross-compiling
|
|
on Linux. However, for those of us who like Linux
|
|
and want to cross-compile (say to automate nightly
|
|
builds), read on.
|
|
|
|
1) Download software packages
|
|
|
|
Download all the software needed to /usr/local/src/VLC -
|
|
including pre-compiled mingw32 cross-compiler for linux,
|
|
SDL, gtk, directx, and of course vlc. You will also need
|
|
various run-time DLLs on your Windows machine when you go
|
|
to run the program.
|
|
|
|
Go to http://www.videolan.org/vlc/windows.html and download:
|
|
- mingw32 cross-compiler for linux: linux-cross-mingw32-10022002.tar.bz2
|
|
- SDL-devel-1.2.3-mingw32.tar.gz (you can also go to www.libsdl.org)
|
|
- gtk-win32-10022002.tar.bz2 development files.
|
|
- the directx 7 headers. (Instead of downloading the whole directx SDK
|
|
form Microsoft)
|
|
|
|
Get vlc from:
|
|
|
|
http://www.videolan.org/pub/videolan/vlc/snapshots/
|
|
|
|
(who needs a release version? you're compiling, after all :)
|
|
or grab the cvs at:
|
|
|
|
http://www.videolan.org/cvs.html
|
|
|
|
using the command:
|
|
|
|
cvs -d :pserver:anonymous@anoncvs.videolan.org:/var/cvs/videolan -z3 co
|
|
vlc
|
|
|
|
(and no, you don't need to log in, that's why it's "anonymous")
|
|
|
|
2) Unpack sources
|
|
|
|
Unpack all your sources to the right place:
|
|
|
|
[Note that you can put SDL & gtk in a different place,
|
|
but then you'll have to edit the sdl-config & gtk-config.
|
|
directx can go anywhere - you'll just set that path when
|
|
you do vlc's configure]
|
|
|
|
cd to your Source directory
|
|
|
|
SRCDIR=`pwd` # /usr/local/src/VLC seems good, no?
|
|
|
|
tar -jxvf linux-cross-mingw32-10022002.tar.bz2 -C /usr/local
|
|
|
|
tar -zxf SDL-devel-1.2.3-mingw32.tar.gz -C /usr/local/cross-tools
|
|
cd /usr/local/cross-tools
|
|
ln -s i586-mingw32msvc i386-mingw32msvc
|
|
tar -xf SDL-1.2.3/i386-mingw32msvc.tgz
|
|
rm -rf SDL-1.2.3
|
|
|
|
cd $SRCDIR
|
|
tar xjvf gtk-win32-10022002.tar.bz2 -C /usr/local
|
|
|
|
mkdir /usr/local/directx
|
|
unzip -d /usr/local/directx/include dxheaders.zip
|
|
|
|
tar -jxf <vlc-snapshot-xxx>.bz2 # Unless you used cvs
|
|
cd vlc
|
|
|
|
3) Configure vlc
|
|
|
|
rm config.cache config.status
|
|
make clean # or "make distclean" for pretty pretty
|
|
|
|
PATH=/usr/local/cross-tools/bin:$PATH \
|
|
CC=i586-mingw32msvc-gcc \
|
|
./configure --host=i586-mingw32msvc \
|
|
--target=i586-mingw32msvc --build=i386-linux \
|
|
--with-directx=/usr/local/directx \
|
|
--with-gtk-config-path=/usr/local/gtk-win32/bin \
|
|
--with-sdl-config-path=/usr/local/cross-tools/i586-mingw32msvc/bin
|
|
|
|
4) make vlc
|
|
|
|
PATH=/usr/local/cross-tools/bin:$PATH \
|
|
make
|
|
|
|
5) Package for Windows
|
|
|
|
mkdir /usr/local/src/winvlc
|
|
mkdir /usr/local/src/winvlc/plugins
|
|
mkdir /usr/local/src/winvlc/share
|
|
cp vlc.exe /usr/local/src/winvlc/
|
|
cp plugins/*.so /usr/local/src/winvlc/plugins/
|
|
cp share/*.psf /usr/local/src/winvlc/share/
|
|
cd /usr/local/src
|
|
strip winvlc/vlc.exe winvlc/plugins/*.so
|
|
zip -r winvlc.zip winvlc
|
|
|
|
Now place winvlc in your ftp/html downloads,
|
|
or copy to your dos disk or move to a floppy
|
|
(only about 270K)
|
|
|
|
Uncompress to C:\winvlc
|
|
|
|
Don't forget to place all the GTK and SDL dll's from the development packages
|
|
you downloaded on http://www.videolan.org/vlc/windows.html in c:\winvlc
|
|
|
|
cd c:\winvlc
|
|
vlc -v
|
|
|
|
Note: -v gives you errors in case something's not being found,
|
|
otherwise not needed.
|
|
|
|
|
|
6) Further resources (for this or other cross-compilation
|
|
projects):
|
|
|
|
At this time, mingw32_2.95.3.7-3_i386.deb and
|
|
mingw32-runtime_1.2-1_i386.deb were at:
|
|
|
|
http://packages.debian.org/testing/devel/mingw32.html
|
|
http://packages.debian.org/testing/devel/mingw32-runtime.html
|
|
|
|
and possibly on your CD - you might be able to find later
|
|
versions, or save bandwidth, if you care. (Of course we'll
|
|
only be testing what we put on the VideoLan website).
|
|
While these are "Debian" packages, they work on Redhat
|
|
and possibly elsewhere - download dpkg for your system
|
|
and do something like:
|
|
|
|
dpkg -x mingw32_2.95.3.7-3_i386.deb /tmp/ming
|
|
dpkg -x mingw32-runtime_1.2-1_i386.deb /tmp/ming
|
|
mv /tmp/ming/usr /usr/local/cross-tools
|
|
|
|
|
|
Full DX-7 headers, libs & directx.h (the Peter Puck version)
|
|
can be found at:
|
|
|
|
http://fceultra.sourceforge.net/dev
|
|
|
|
There are other versions of GTK for Windows available, but
|
|
the one provided here has been hacked specifically for VideoLan. |