From f67672ada1c678a845ce205cda7e2d2bf1bb0280 Mon Sep 17 00:00:00 2001 From: Gildas Bazin Date: Mon, 1 Apr 2002 10:13:19 +0000 Subject: [PATCH] * VLC-Win32 Cross-Compile Howto, courtesy of Bill Eldridge. --- doc/win32/Cross-Compile-Howto.txt | 165 ++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 doc/win32/Cross-Compile-Howto.txt diff --git a/doc/win32/Cross-Compile-Howto.txt b/doc/win32/Cross-Compile-Howto.txt new file mode 100644 index 0000000000..6f104f1a32 --- /dev/null +++ b/doc/win32/Cross-Compile-Howto.txt @@ -0,0 +1,165 @@ + 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 .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. \ No newline at end of file -- 2.39.5