[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