Index ¦ Archives  ¦ Atom  ¦ RSS

Native and Cross-Compiling Pidgin on Linux (Debian)

Recently I've been working a little on my plugin for Pidgin (Google Talk Invisible) but my Windows computer has been formatted since I last worked on it so I no longer had my Windows compiling environment. So I spent some time and created two working environments (one for libpurple 2.5.1 and 2.7.1) so that I can compile both Linux (.so) and Windows (.dll) plugins for both versions. I chose 2.5.1 because my Palm Pre reports using that version of libpurple, so if someone wants to push my plugin into a package for Preware they can without recompiling it.

Environment 2.5.1

So to build the version 2.5.1 environment, I followed these (Windows) instructions and these (Linux) instructions


For compiling in Linux, since I only want a plugin, I ran configure with parameters to disable all the pieces I didn't care about and didn't have the libraries for:

./configure --disable-gtkui --disable-gstreamer --disable-vv --disable-idn --disable-meanwhile --disable-avahi --disable-nm --disable-nss --disable-gnutls --disable-tcl


For Windows, I followed the instructions and stopped after the local.mak instruction and ran "make -f Makefile.mingw" on \$BUILDDIR/pidgin-2.5.1 but at some point it wants "dlfcn.h" so I just let it error out.


I cd into pidgin-2.5.1/libpurple/plugins/ and checkout my git repository. I then run "make; make -f Makefile.mingw gtalkinvisible.dll" and a few other commands to zip/tar the files and upload them to my website and update the version/Changelog.

Environment 2.7.1

It may be possible to combine these, despite the relative change in packages that breaks the gaim-extprefs project, but I didn't bother. Thanks to the pidgin-privacy-please plugin for Windows instructions for the latest pidgin releases too, as they made the previous instructions as well. They're instructions were perfect, better than Pidgin's own Wiki.


These instructions were as simple as before, except I downloaded 2.7.1. Same simple setup if you don't care about the libraries necessary for compiling the rest of Pidgin.


Following the instructions from above was super easy, I just had a small hiccup along the way that is super easy to fix. Just replace the first export to this:

export PIDGIN_DEV_ROOT=/tmp/build

Once you've done that, you can literally copy-paste almost the whole page as a script and copy-paste the local.mak file and you're done. Of course, I didn't use /tmp/build as my directory because I wanted to keep my environment around as well as have it fit into my \~/projects/ schema. I basically put it into my existing \~/projects/pidgin/ folder as /before270/ and /after270/ for the two environments.

So now I can update the plugin easier and upload both Linux and Windows binaries. If anyone knows how to compile automatic Windows installers, please comment so that I can create some sort of a shell repository for plugins. Thanks!

© Fahrzin Hemmati. Built using Pelican. Theme by Giulio Fidente on github.