Based on Debian sid and MinGW-w64 (x86/x86_64)
Not very suitable for public use, it's still a bit rude
It may or may not work on your Linux distribution, perhaps it may work on cygwin
On my Debian sid I've installed following packages:
binutils-mingw-w64-i686
binutils-mingw-w64-x86-64
g++-mingw-w64
g++-mingw-w64-i686
g++-mingw-w64-x86-64
gcc-mingw-w64
gcc-mingw-w64-base
gcc-mingw-w64-i686
gcc-mingw-w64-x86-64
mingw-w64
mingw-w64-i686-dev
mingw-w64-tools
mingw-w64-x86-64-dev
You may adapt some of config variables in config.sh
(at the toplevel)
PREFIX
: where complied stuff is installedCROSS_PREFIX
: set the same path asPREFIX
HOST
: the default host triplet, if you don't override it
./setup.sh
script in packages directory will call sudo to change directory permissions
of target PREFIX
, then it will create a wrapper for pkgconfig.
If you want to start over remove
/usr/i686-w64-mingw32
for w32 and/usr/x86_64-w64-mingw32
for w64, then reinstallmingw-w64-i686-dev
andmingw-w64-x86-64-dev
packages. Avoid deleting/usr/x86_64-linux-gnu
instead :)
Make sure to disable binformats or configure scripts will trigger wine execution slowing down configure and causing misleading detections.
- bash as /bin/bash
- wget
- sudo (for setup.sh script)
- git (for packages from git repositories)
- svn (for packages from svn repositories)
- cmake (to build cmake based packages)
- nasm and yasm
In the toplevel directory:
git clone git://github.com/sherpya/FFmpeg.git ffmpeg
git clone --recursive git://github.com/sherpya/MPlayer.git mplayer
./build-packages.sh
will build all packages in a consistent order.
You can manually build a single package by calling ./build.sh
within the package directory (e.g. packages/libvpx).
Please note that build shell scripts are supposed to be launched within the same directory they reside so I added ./ before the command.
MPlayer: the first time will checkout also FFmpeg so it will take a while (yes also the second time)
from the mplayer directory call ../mp.sh configure && make
(you may add -jX)
FFmpeg:
from the ffmpeg directory call ../ff.sh configure && make
(you may add -jX)
Build scripts instead need to be launched from the parent directory
To build x86_64 packages prepend HOST=x86_64-w64-mingw32 to each build script, e.g.
HOST=x86_64-w64-mingw32 ./setup.sh
HOST=x86_64-w64-mingw32 ./build-packages.sh
HOST=x86_64-w64-mingw32 ./build.sh
HOST=x86_64-w64-mingw32 ../mp.sh configure && make
- Build Environment:
git pull
on the toplevel directory, I don't force push this repo - MPlayer: in the mplayer directory
git pull --rebase
, I have no idea about libdvdnav/libdvdread4 submodules updating :( - FFmpeg: in the ffmpeg directory
git pull --rebase
- packages using git:
git pull
in the package subdirectory (e.g. packages/libvpx/libvpx) - packages using subversion:
svn up
in the package subdirectory (e.g. packages/winpthread/winpthread) - packages that are downloaded have versioned url in the
build.sh
script, you can edit and change version but you must make sure that patches still apply - live555: just remove
packages/live555/live555-latest.tar.gz
, it will be redownloaded using the latest version.