view DOCS/tech/crosscompile.txt @ 34635:7e0f50b4921c

Fix vo_png after FFmpeg merge. Now avcodec_open2() function wants a valid avctx->pix_fmt to be set, but the current vo_png opens the encoder in preinit() function, long before the exact pixel format is know. The fix moves the avcodec_open2() function to vo_png::config() and adds a check for changed pixel format in case there are more config() calls.
author iive
date Tue, 14 Feb 2012 17:06:09 +0000
parents 68d3b36b9dfc
children 7f73ecc9ccda
line wrap: on
line source

Due to a lack of Windows developers, it is a good idea to allow Linux
developers to do at least some basic check of their code.
This HOWTO explains how to set up cross-compilation.


MinGW under Debian
==================

First, you need to install the "mingw32" package and get a MPlayer SVN
checkout.

Next, you need quite a lot of dependencies. Since this is for testing and
not actually use, the easiest way is to use this package:
http://natsuki.mplayerhq.hu/~reimar/mpl_mingw32.tar.bz2
NOTE that this is likely to be quite out-dated and might include packages
with security issues, so do not use it to build binaries for real use.

After extracting this package into the MPlayer source-tree,
you only need to run the included linux-mingw.sh to configure (it just runs
./configure --host-cc=cc --target=i686-mingw32msvc --cc=i586-mingw32msvc-cc
--windres=i586-mingw32msvc-windres --ranlib=i586-mingw32msvc-ranlib
--extra-cflags="-I$PWD/osdep/mingw32"
--extra-ldflags="-L$PWD/osdep/mingw32"
--with-freetype-config="$PWD/osdep/mingw32/ftconf") and then run make.

You should be able to run the generated binary with Wine, if you want to.

The steps as command-lines:

sudo apt-get install mingw32
svn co svn://svn.mplayerhq.hu/mplayer/trunk MPlayer-mingw
cd MPlayer-mingw
wget http://natsuki.mplayerhq.hu/~reimar/mpl_mingw32.tar.bz2
tar -xjf mpl_mingw32.tar.bz2
sh linux-mingw.sh
make


Wine
====

First, you need to install the "Wine" package and get a MPlayer SVN
checkout.

You don't need any dependencies other than those you already have for
your Linux build, because the Wine and Linux build will use them together.

Configure with

  ./configure --target=i686-wine --cc="winegcc -m32" --windres=wrc --enable-gui

and add any options you normally use for your Linux build, then run make.