Cross-compile Win32 3.0

From Ekiga

Jump to: navigation, search

Contents

How do I get and cross-compile Ekiga for Windows on a Linux System ?

The current process to build Ekiga for Windows is a cross-build. The Windows version is cross-compiled on a Linux system. Currently, there is no native Windows build of Ekiga available. In other words, you cannot build Ekiga for Windows on a Windows system.

Compile Time (host) Dependencies

You need an installed, working version of Minimalist GNU for Windows together with its binutils ant runtime libraries.

image:Emblem-important.png In order to compile from SVN, you need to get mingw32 from Debian testing or unstable (lenny / sid at the time of writing), as this is the only version that contains the headers and libs needed for DirectX related stuff. The version that comes with Etch does not have these headers.

On a debian system you can install them via apt-get:

apt-get install mingw32 mingw32-binutils mingw32-runtime nsis
aptitude install gnome-doc-utils
aptitude install build-essential make automake bison flex
aptitude install zip unzip git-core subversion
aptitude install gnome-common libgtk2.0-dev xmlto libgconf2-dev libavahi-glib-dev libavahi-client-dev

Runtime Dependencies (on Windows)

The cross-build on Linux for Win32 needs to produce binaries of every library that Ekiga needs and which are not part of the Windows API. Other than in the native build for Linux, pre-installed Linux binaries of libraries such as OpenLDAP etc. are useless for cross-build for the Win32 target. Therefore, as part of the cross-build process, these dependencies are optained as sources and cross-compiled for Win32 before the script compiles Ekiga itself against these dependencies.

Dependency Management for the Win32 build

Dependencies for the Win32 build are in the Makefile in the win32 directory of the Ekiga source tree. This is a different Makefile than the main Makefile in the main directory which is used for the native Linux build.

The Makefile has a number of update-sources:: sections which download, configure and build libraries which Ekiga needs.

In the Makefile, you will find a number of sections like this one:

OPENLDAP_VER := 2.3.28
OPENLDAP_DIR := $(BUILDROOT)/openldap-$(OPENLDAP_VER)
OPENLDAP_ARCHIVE := openldap-$(OPENLDAP_VER).tgz
OPENLDAP_URL := http://www.openldap.org/software/download/OpenLDAP/openldap-release

There are different techniques used to obtain sources, including

  • downloading source tarballs
  • svn checkouts of specific revisions (using svn co -r)


Getting and Compiling Ekiga

Get the Ekiga Win32 build script for latest stable (soon to be 3.0.1)

svn co http://svn.gnome.org/svn/ekiga/branches/gnome-2-24/win32

or get the Ekiga Win32 build script for trunk (will become 3.2.0)

svn co http://svn.gnome.org/svn/ekiga/trunk/win32

image:Emblem-important.png At the time of writing (10/01/2008), only the stable branch is being maintained.

You are now ready to execute the automated download process that gets an SVN snapshot of ekiga and its required libraries from the internet:

make update-sources

Be patient. Some svn checkouts will happen and you will not see the inidividual files being checked out. Depending on your network speed, it might look for some minutes as if the make process stalled.

Then start the build process by

make

How to get debug output on Windows

Instructions here: Debugging Ekiga#Debugging Ekiga on Windows

Personal tools