[vlc-devel] Re: Contrib system for win32

Gildas Bazin gbazin at videolan.org
Thu Aug 18 00:37:07 CEST 2005


On Tuesday 16 August 2005 18:48, Christophe Mutricy wrote:
> Mates,
> 
> As you might know  people compiling for win32 either with cygwin or
> on linug with mingw are using the contrib package made by Gibalou. As
> his free time is not extensible and with the aim of sharing the
> knowledge and the load, i'd like to extend the current contrib system to
> win32.
> 

Here is the detail of how I compile each lib. Bear in mind That I do this by 
cross-compiling on my Linux machine so you'll have to do slightly different 
things on cygwin (namely find a way to get the -mno-cygwin flag in the 
compile line). Also make sure that you use the same compiler/linker version 
when compiling C++ libraries and VLC, otherwise you'll end-up with linking 
problems, etc...

Lastly, all the libraries and the corresponding patches you'll need are 
located in http://download.videolan.org/pub/testing/contrib/

- a52dec:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- faac:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32
You might need to only compile libfaac:
cd libfaac; make; make install
cd ../include; make install

- faad:
Apply faad2-20050513-win32-patch.diff
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32
You might need to only compile libfaad:
cd libfaad; make; make install
cd ../include; make install

- ffmpeg:
Apply ffmpeg-20050513-patch.diff
./configure --enable-mingw32 --enable-memalign-hack --prefix=/usr/win32 
--extra-cflags=-I/usr/win32/include --extra-ldflags=-L/usr/win32/lib 
--cross-prefix=i586-mingw32msvc- --enable-faac --enable-mp3lame --enable-pp 
--enable-gpl
Make sure you have "LIBPREF=lib" and "LIBSUF=${BUILDSUF}.a" in config.mak
make; make installlib

- flac:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- freetype:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- fribidi:
Needs libiconv to be comiled and installed first.
CPPFLAGS=-I/usr/win32/include LDFLAGS="-L/usr/win32/lib -liconv" \
   ./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared --without-charsets

- gettext:
 CPPFLAGS="-Dssize_t=long" \
Needs libiconv to be comiled and installed first.
 ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --with-libiconv-prefix=/usr/win32 --disable-relocatable \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- gnutls:
Needs libgcrypt to be compiled and installed.
./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared --with-included-opencdk \
    --with-included-libtasn1

- goom2k4:
Apply goom2k4-dev15-pre-patch.diff (or maybe not if you use a more recent 
version)
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32 \
    --disable-glibtest --disable-gtktest

- lame:
   ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32 \
    --disable-analyzer-hooks --disable-decoder

- libdvbpsi:
./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared

- libdvdcss:
./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared

- libdvdnav:
Apply libdvdnav-20050211-win32-patch.diff.
libdvdread needs to be compiled and installed first.
CPPFLAGS="-I/usr/win32/include -DNDEBUG -Dssize_t=long" \
   ./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-builtin-dvdread \
    --disable-shared

- libdvdread:
Apply libdvdread-20041028-win32-patch.diff.
libdvdcss will likely need to be compiled and installed first.
CPPFLAGS="-I/usr/win32/include" LDFLAGS="-L/usr/win32/lib" \
   ./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared

- libebml/libmatroska:
Edit libebml/make/linux/Makefile:
Set prefix=/usr/win32 instead of prefix=/usr/local
Set CXX=i586-mingw32msvc-g++ instead of CXX=g++
Set "AR = i586-mingw32msvc-ar rcvu" instead of "AR = ar rcvu"
Set "RANLIB = i586-mingw32msvc-ranlib" instead of RANLIB = ranlib
Add -DWIN32 to COMPILEFLAGS (might not be necessary since the compiler 
should do it automatically)
cd libebml/make/linux; make; make install

- libgcrypt:
Needs libgpg-error to be compiled and installed.
CPPFLAGS="-I/usr/win32/include" CC=i586-mingw32msvc-gcc \
   ./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared

- libgpg-error:
./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared --disable-nls

- libiconv:
 CPPFLAGS="-Dssize_t=long" \
 ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libid3tag/libmad:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libmodplug:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libogg:
Apply libogg-1.1-win32-patch.diff.
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libpng:
CPPFLAGS=-I/usr/win32/include LDFLAGS=-L/usr/win32/lib \
   ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libspeex:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libtheora:
Needs libogg to be compiled and installed.
CPPFLAGS=-I/usr/win32/include LDFLAGS=-L/usr/win32/lib \
   ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libvorbis:
Needs libogg to be compiled and installed.
CPPFLAGS=-I/usr/win32/include LDFLAGS=-L/usr/win32/lib \
   ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- libxml2:
./configure --host=i586-mingw32msvc --build=i386-linux     
--prefix=/usr/win32 --disable-shared \
--with-minimum --with-reader --with-tree --with-push --with-xptr 
--with-valid --with-writer --with-output --with-xpath --with-xinclude 
--with-catalog --with-sax1

- liveMedia:
Modify config.mingw to include the i586-mingw32msvc- prefix where needed 
(gcc, c++, ld).
genMakefiles mingw
make
cp -r groupsock/include /usr/win32/live.com/groupsock
cp groupsock/libgroupsock.a  /usr/win32/live.com/groupsock
same for liveMedia, UsageEnvironment and BasicUsageEnvironment

- mpeg2dec:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- twolame:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- wxwidgets:
./configure --host=i586-mingw32msvc --build=i386-linux \
    --prefix=/usr/win32 --disable-shared \
    --disable-compat22 --disable-compat20 \
    --enable-optimise --disable-debug --disable-threads \
    --disable-gif --disable-pcx --disable-iff --disable-pnm \
    --without-zlib --without-libpng --without-libjpeg --without-libtiff \
    --without-regex --disable-zipstream --disable-fs_zip \
    --enable-no_rtti --enable-no_exceptions --disable-exceptions \
    --disable-stl --disable-html --without-expat --disable-protocols \
    --disable-protocol --disable-xrc \
    --disable-sound --disable-dialupman --disable-mediactrl \
    --disable-joystick --disable-grid --disable-datepick \
    --disable-postscript \
    --disable-filesystem --disable-fileproto --disable-ipc --disable-sockets

- x264:
Apply x264-20050624-win32-patch.diff.
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

- zlib:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \
    --build=i386-linux --disable-shared --prefix=/usr/win32

That's all :)

--
Gildas

-- 
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html



More information about the vlc-devel mailing list