mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-12-26 21:03:57 +00:00
144 lines
4.1 KiB
Plaintext
144 lines
4.1 KiB
Plaintext
Building mkvtoolnix 3.2.0 on Windows
|
|
====================================
|
|
|
|
There are currently two ways to build mkvtoolnix for Windows: building
|
|
it on Windows with Microsoft Visual Studio 8 (and maybe newer) or on
|
|
Linux with a mingw cross compiler. Section 1 describes building with
|
|
Visual Studio and section 2 describes the mingw cross compiler way.
|
|
|
|
Section 1 -- Building with Microsoft Visual Studio
|
|
--------------------------------------------------
|
|
|
|
1.1. Building third party libraries
|
|
|
|
Download the following libraries and place them in the same directory
|
|
which contains the mkvtoolnix source code directory. Please refer to
|
|
the mkvtoolnix website for versions and links.
|
|
|
|
boost
|
|
expat
|
|
libcurl
|
|
libebml
|
|
libmatroska
|
|
libogg
|
|
libvorbis
|
|
zlib
|
|
|
|
1.2. Possible compiler errors
|
|
|
|
If you have VS 2008 (with no service pack), you may encounter compiler
|
|
error C2471. If so, please download the hotfix from Microsoft:
|
|
http://code.msdn.microsoft.com/KB946040
|
|
|
|
1.3. Prepare the source tree for building
|
|
|
|
From a command prompt with devenv.exe in the path, run the following
|
|
from your mkvtoolnix source code directory:
|
|
|
|
"winbuild\Build using VC8.bat"
|
|
|
|
If you do not have devenv.exe in the path, use this command from the
|
|
prompt before running "Build using VC8.bat":
|
|
|
|
set PATH=%PATH%;C:\program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\
|
|
|
|
Adjust for different installation paths if neccessary.
|
|
|
|
1.4. Build mkvtoolnix.sln.
|
|
|
|
The author of mkvtoolnix is currently not maintaining this port. If
|
|
you, at some later date, need to recreate these project files, please
|
|
be aware that a number of files have the same file names, even within
|
|
a single project. If .obj files are clobbered by the compiler, you
|
|
will get linker errors. Also, zlib uses a dynamic C runtime.
|
|
|
|
|
|
|
|
Section 2 -- Building with a mingw cross compiler
|
|
-------------------------------------------------
|
|
|
|
2.1. Preparations
|
|
|
|
You will need:
|
|
|
|
- a mingw cross compiler
|
|
- roughly 2 GB of free space available
|
|
|
|
Earlier versions of this document described in painful details how to
|
|
build each library. Luckily there's the "mingw-cross-env" project at
|
|
http://mingw-cross-env.nongnu.org/ that provides an easy-to-use way of
|
|
setting up everything we need.
|
|
|
|
First, download a release or the current development version; see
|
|
http://mingw-cross-env.nongnu.org/#latest-release to to retrieve
|
|
them. Then unpack the release.
|
|
|
|
The rest of this guide assumes that you've unpacked mingw-cross-env
|
|
into the directory $HOME/mingw-cross-env.
|
|
|
|
2.2. Automatic build script
|
|
|
|
mkvtoolnix contains a script that can download, compile and install
|
|
all required libraries into the directory $HOME/mingw-cross-env.
|
|
|
|
If the script does not work or you want to do everything yourself
|
|
you'll find instructions for manual compilation in section 2.3.
|
|
|
|
2.2.1. Script configuration
|
|
|
|
The script is called winbuild/setup_cross_compilation_env.sh. It
|
|
contains the following variables that can be adjusted to fit your
|
|
needs:
|
|
|
|
TARGET=i686-pc-mingw32
|
|
|
|
The target specification for the standard configure scripts.
|
|
|
|
INSTALL_DIR=$HOME/mingw-cross-env
|
|
|
|
Base installation directory
|
|
|
|
PARALLEL=
|
|
|
|
Number of processes to execute in parallel. Will be set to the number
|
|
of cores available if left empty.
|
|
|
|
2.2.2. Execution
|
|
|
|
From the mkvtoolnix source directory run:
|
|
|
|
./winbuild/setup_cross_compilation_env.sh
|
|
|
|
If everything works fine you'll end up with a configured mkvtoolnix
|
|
source tree. You just have to run 'drake' afterwards.
|
|
|
|
2.3. Manual installation
|
|
|
|
First you will need the mingw-cross-env build scripts. Get them by
|
|
downloading them (see above) and unpacking them into
|
|
$HOME/mingw-cross-env.
|
|
|
|
Next, build the required libraries:
|
|
|
|
cd $HOME/mingw-cross-env
|
|
make gcc w32api mingwrt gettext boost bzip2 curl flac expat libiconv \
|
|
ogg pthreads vorbis wxwidgets zlib
|
|
|
|
Append the installation directory to your PATH variable:
|
|
|
|
export PATH=$PATH:$HOME/mingw-cross-env/usr/i686-pc-mingw32/bin
|
|
|
|
Finally, configure mkvtoolnix:
|
|
|
|
cd $HOME/path/to/mkvtoolnix-source
|
|
./configure \
|
|
--host=i686-pc-mingw32 \
|
|
--with-boost=$HOME/mingw-cross-env/usr/i686-pc-mingw32 \
|
|
--with-wx-config=$HOME/mingw-cross-env/usr/i686-pc-mingw32/bin/i686-pc-mingw32-wx-config
|
|
|
|
If everything works then build it:
|
|
|
|
./drake
|
|
|
|
You're done.
|