Updated the cross compilation instructions

This commit is contained in:
Moritz Bunkus 2010-03-06 19:08:13 +01:00
parent 7f7f6e492f
commit baa4419f02

View File

@ -63,7 +63,7 @@ Section 2 -- Building with a mingw cross compiler
You need:
- a mingw cross compiler
- roughly 1.6 to 2.0 GB of free space available
- roughly 2 GB of free space available
- the "bjam" build utility for the Boost library (see 2.1.3.)
You usually don't need root access unless you have to install mingw
@ -124,15 +124,20 @@ needs:
Path and name of the "bjam" Boost.Build system tool (see section
2.1.3.)
MINGW_CC=i586-mingw32msvc-gcc
MINGW_CXX=i586-mingw32msvc-g++
MINGW_PREFIX=i586-mingw32msvc-
Paths and names of the cross compiler executables
Path and prefix of the cross compiler executables
INSTALL_DIR=$HOME/mingw
Base installation directory
PARALLEL=1
Number of processes to execute in parallel. If you have a multi-core
CPU or multiple CPUs installed set this value to the total number of
cores you want to use, e.g. for a dual-core CPU use PARALLEL=2.
2.2.2. Execution
From the mkvtoolnix source directory run:
@ -169,34 +174,7 @@ Create the directories:
mkdir $HOME/mingw $HOME/mingw/src $HOME/mingw/include $HOME/mingw/lib
2.3.2. boost
Get the Boost source code archive from http://www.boost.org/
Building Boost requires tht you tell the "bjam" build utility which
gcc to use. Note that you also need a working "bjam" binary before
building this library. See section 2.1.3 for details.
cd $HOME/mingw/src
wget 'http://downloads.sourceforge.net/project/boost/boost/1.42.0/boost_1_42_0.tar.bz2?use_mirror=heanet'
bunzip2 < boost_1_42_0.tar.bz2 | tar xf -
cd boost_1_42_0
echo "using gcc : : i586-mingw32msvc-g++ ;" > user-config.jam
bjam \
target-os=windows threading=single threadapi=win32 \
link=static runtime-link=static variant=release \
--user-config=user-config.jam --prefix=$HOME/mingw/boost \
install
It's possible that bjam says that it couldn't update some targets. As
long as this number is rather low this shouldn't be a problem.
Check if $HOME/prog/mingw/lib contains the filesystem, system and
regex libraries:
ls $HOME/mingw/boost/lib/libboost_{filesystem,system,regex}*
2.3.3. libebml and libmatroska
2.3.2. libebml and libmatroska
Get the source code libraries from
http://dl.matroska.org/downloads/libebml/ and
@ -219,7 +197,7 @@ http://dl.matroska.org/downloads/libmatroska/
cp libmatroska.a $HOME/mingw/lib/
cp -R ../../matroska $HOME/mingw/include/matroska
2.3.4. expat
2.3.3. expat
Get precompiled expat binaries for mingw from
http://sourceforge.net/projects/mingw/files/ You need both the
@ -234,7 +212,7 @@ http://sourceforge.net/projects/mingw/files/ You need both the
tar xzf ../libexpat-2.0.1-1-mingw32-dev.tar.gz
cp -R . $HOME/mingw
2.3.5. zlib
2.3.4. zlib
Get precompiled zlib binaries for mingw from
http://sourceforge.net/projects/mingw/files/ You need both the
@ -249,7 +227,7 @@ http://sourceforge.net/projects/mingw/files/ You need both the
tar xzf ../libz-1.2.3-1-mingw32-dev.tar.gz
cp -R . $HOME/mingw
2.3.6. iconv
2.3.5. iconv
Get precompiled iconv binaries for mingw from
http://sourceforge.net/projects/mingw/files/ You need both the
@ -264,7 +242,7 @@ http://sourceforge.net/projects/mingw/files/ You need both the
tar xzf ../libiconv-1.13-mingw32-dev.tar.gz
cp -R . $HOME/mingw
2.3.7. libogg, libvorbis and libFLAC
2.3.6. libogg, libvorbis and libFLAC
Get the source code archives from
http://downloads.xiph.org/releases/ogg/
@ -296,6 +274,39 @@ http://downloads.xiph.org/releases/flac/
make
make install
2.3.7. boost
Get the Boost source code archive from http://www.boost.org/
Building Boost requires tht you tell the "bjam" build utility which
gcc to use. Note that you also need a working "bjam" binary before
building this library. See section 2.1.3 for details.
cd $HOME/mingw/src
wget 'http://downloads.sourceforge.net/project/boost/boost/1.42.0/boost_1_42_0.tar.bz2?use_mirror=heanet'
bunzip2 < boost_1_42_0.tar.bz2 | tar xf -
cd boost_1_42_0
./bootstrap.sh --with-bjam=/usr/bin/bjam --without-libraries=python,mpi \
--without-icu --prefix=$HOME/mingw/boost
echo "using gcc : : i586-mingw32msvc-g++ ;" > user-config.jam
bjam \
target-os=windows threading=single threadapi=win32 \
link=static runtime-link=static variant=release \
include=$HOME/mingw/include \
--user-config=user-config.jam --prefix=$HOME/mingw/boost \
install
cd $HOME/mingw/boost/lib
for i in *.lib ; do mv $i $(basename $i .lib).a ; done
for i in *.a ; do i586-mingw32msvc-ranlib $i ; done
It's possible that bjam says that it couldn't update some targets. As
long as this number is rather low this shouldn't be a problem.
Check if $HOME/prog/mingw/lib contains the filesystem, system and
regex libraries:
ls $HOME/mingw/boost/lib/libboost_{filesystem,system,regex}*
2.3.8. wxWidgets
Get the full wxWidgets source archive from http://www.wxwidgets.org/
@ -340,6 +351,15 @@ http://sourceforge.net/projects/mingw/files/ You need both the
cd libbz2
tar xzf ../libbz2-1.0.5-1-msys-1.0.11-dll-1.tar.gz
tar xzf ../libbz2-1.0.5-1-msys-1.0.11-dev.tar.gz
perl -pi -e 'if (m/Core.*low.*level.*library.*functions/) {
$_ .= qq|
#undef BZ_API
#undef BZ_EXTERN
#define BZ_API(func) func
#define BZ_EXTERN extern
|;
}
$_' include/bzlib.h
cp -R . $HOME/mingw
2.3.11. mkvtoolnix itself