Compile your own SVN version of Ekiga on FreeBSD

From Ekiga

Jump to: navigation, search

Contents

Preface

This HOWTO is still under construction. I will describe as a step by step guide how to build PTLib 2.3.0, OPAL 3.3.0 and finally Ekiga 2.9.0 from the sources pulled out of the repository SVN.

It is assumed that you have installed:

1. FreeBSD 7.0-REL
2. the KDE 3.5.8 meta port /usr/ports/x11/kde3
3. the kernel module pwc.ko, see http://raaf.atspace.org/ and a cam
   supported by it;
4. access as 'root' to your system

image:Emblem-important.png You must install KDE from the above port because only this way you have enough development environment to make the porting of PTLib, OPAL and Ekiga happy.
image:Emblem-important.png Be also sure that you don't have installed PWLib, OPAL and Ekiga on the system; check it with:

# pkg_info | egrep -i 'pwlib|opal|ekiga'

You should really deinstall this stuff because the header-files, for example, of the (older) installed PWLib interfier with the make process we will run.

Note: In this HOWTO the # means that the task should be done as 'root', while the $ means you should be yourself, some ordinary user.

First step

Create some top-level directory for your work and fetch the sources from SVN repository:

$ mkdir ~/myEkiga
$ cd ~/myEkiga
$ svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk ptlib
$ svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk opal
$ svn co http://svn.gnome.org/svn/ekiga/trunk ekiga

The Making of PTLib

For easy usage create small shellscripts to launch the configure commands, like this:

$ cd ~/myEkiga
$ cat > makePTLib.sh <<EOF
#!/bin/sh
set -x
./configure --enable-plugins           \
           --enable-v4l                \
           --enable-bsdvideo=no        \
           --enable-sunaudio=no        \
           --enable-oss=yes            \
           --enable-opal               \
           --prefix=/usr/local         \
           --disable-sdl               \
           CPPFLAGS='-I/usr/local/include/' CFLAGS='-DP_FREEBSD -I/usr/local/include/'
EOF
$ chmod +x makePTLib.sh

The configure of PTLib assumes somehow that its own header files are already below /usr/local/include (which is of course an issue to solve); for now we just copy them over with:

$ cd ~/myEkiga/ptlib
$ su
# cp include/ptlib.h /usr/local/include
# cp include/ptbuildopts.h /usr/local/include
# mkdir /usr/local/include/ptlib
# cp include/ptlib/*.h /usr/local/include/ptlib
# mkdir /usr/local/include/ptclib
# cp include/ptclib/*.h /usr/local/include/ptclib
# mkdir -p /usr/local/include/ptlib/unix/ptlib
# cp include/ptlib/unix/ptlib/*.h /usr/local/include/ptlib/unix/ptlib
# exit

Now go to PTLib top-level directory and fire up the engine

$ cd ~/myEkiga/ptlib
$ ../makePTLib.sh
$ CFLAGS='-DP_FREEBSD' gmake
# gmake install

If you later want to play around with some of the configuration options (as well in OPAL or Ekiga), just change them in the small shell scripts and make sure to run a gmake clean before the gmake.

The Making of OPAL

image:Gnome-status.png Note: For the H.264 support you should install the following port from the FreeBSD ports collection /usr/ports/multimedia/x264.

The script and build values for OPAL are:

$ cd ~/myEkiga
$ cat > makeOpal.sh <<EOF
#!/bin/sh
set -x
./configure --prefix=/usr/local                      \
            --enable-x264=runtime                    \
           CPPFLAGS="-I/usr/local/include"           \
           CFLAGS="-DP_FREEBSD -I/usr/local/include" \
           LDFLAGS="-L /usr/local/lib"
EOF
$ chmod +x makeOpal.sh
$ cd ~/myEkiga/opal
$ ../makeOpal.sh

The final configuration for all codecs plug'ins for later usage in Ekiga should look like this:

================ Codec Plugin configuration ===================
         Installing into prefix  :  /usr/local
 
                          H.261  :  enabled
                          H.263  :  enabled
                          H.263+ :  enabled
                          H.264  :  enabled
                         THEORA  :  enabled
                   MPEG4 Part 2  :  enabled (no rate control correction)
 
                        OS Type  :  freebsd7.0
                   Machine Type  :  i386
========================================================

If all is fine, let's make it compile and install:

$ CFLAGS="-g" gmake
# gmake install

The Making of Ekiga

The script and build values for Ekiga are:

$ cd ~/myEkiga
$ cat > makeEkiga.sh <<EOF
#!/bin/sh
set -x
./autogen.sh --with-pwlib-dir=/usr/local        \
            --with-opal-dir=/usr/local          \
            --prefix=/usr/local                 \
            --sysconfdir=/usr/local/etc/        \
            --disable-doc                       \
            --disable-ldap                      \
            --disable-dbus                      \
            --disable-esd                       \
            --disable-eds                       \
            --disable-gnome                     \
            --enable-gconf                      \
            --includedir=/usr/local/include     \
            --with-ptlib-dir=/usr/local         \
            CFLAGS="-I /usr/local/include"      \
            CXXFLAGS="-I /usr/local/include"    \
            GMSGFMT=/usr/local/bin/msgfmt
EOF
$ chmod +x makeEkiga.sh

And finally we make Ekiga with

$ cd ~/myEkiga/ekiga
$ ../makeEkiga.sh
$ gmake
# gmake install

I run during the config of Ekiga into error messages like these:

/usr/local/bin/gm4:/usr/local/share/aclocal/pilot-link.m4:1: ERROR: end of file in string
autom4te-2.61: /usr/local/bin/gm4 failed with exit status: 1
aclocal-1.10: autom4te failed with exit status: 1

image:Gnome-status.png Just check with 'pkg_info -W ....' to which package the file causing the error belongs and remove the package/port (temporarely). You can install it later again.

Personal tools