Cross-compile Win32 2.0.x

From Ekiga

Jump to: navigation, search

This page has not yet been properly written and is just a copy of some of the issues posted on the 3.0 cross-compile page. This cross compile is not maintained anymore.

Contents

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

Note: Nobody has recently managed to build neither Ekiga 2.0.12 nor Ekiga 3.0 trunk for Windows. This page is WiP and describes how it is meant to work.

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
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)


Practical problems cross-building 2.0.11 on Debian Lenny (as of March 31st, 2008)

Status:

  • did the same as for an Etch system
  • compiles (might need a 2nd attempt) up the point where it tries to build the installer
  • there have been changes in nsis between Sarge and Etch/Lenny ... investigating

Practical problems cross-building 2.0.11 on Debian Etch

Status:

  • used an Etch system and got up to the point where all prereqisites where downloaded and built, script was about to compile Ekiga itself
  • failed due to missing DirectX headers
  • upgraded wingw32 and dependencies to Lenny
  • ran into bug: http://bugs.gentoo.org/show_bug.cgi?id=195227
  • cleaned build dir
  • couldn't build anymore:
touch: cannot touch `/usr/local/src/win32-2.0.11-from-scratch/include/regex.h': Not a directory
make: *** [/usr/local/src/win32-2.0.11-from-scratch/include/regex.h] Error 1


Practical problems cross-building 2.0.12 on Debian Etch

Status:

  • make update-sources works after patching Makefile
  • make doesn't work (compile errors)

Resolved issues:

  • Makefile does not recognize automake / autoconf 1.10. Patch available.

Open issues:

  • PTLibError
  • It's not yet clear if the script gets the proper versions of dependencies, [[1]]

Practical problems cross-building 3.0 trunk on Debian Etch

Status:

  • make update-sources doesn't work (see below, works after installing git and changing the Makefile)
  • no point to run make yet

Open issues:

Extra dependencies

  • gnome-doc-utils

Understanding and debugging the cross-build script

See: Win32CrossBuildSystem

Running Ekiga on Windows

If everythings works out well your cross-compiled windows version will be located in dist/Ekiga. You can transfer this directory to a win32 system and simply run ekiga.exe. However you need to have the GTK+ 2 runtime libraries for windows installed on the target system. Get the latest stable version of the GTK+2 Runtime Environment at

http://gimp-win.sourceforge.net/stable.html

and execute

ekiga.exe


How to get debug output on Windows

Instructions here: Debugging Ekiga#Debugging Ekiga on Windows

Personal tools