Version 7 (modified by 17 years ago) (diff) | ,
---|
Pidgin for Windows Build Instructions
Set up your build environment
The easy way
(not yet available)
- Install the Cygwin Bash shell. Make sure to select Unix file mode during setup.
Also make sure you install bash, bzip2, coreutils, gawk, grep, gzip, make, patch, sed, monotone, tar, unzip, and wget (several of these are selected by default).
You may prefer to use the native Windows monotone binary available here.
- Download the Build Environment Fetcher script. Follow the instructions on the website to fetch and install most of the needed build dependencies. The script can fetch Gaim's source code from either Subversion or a source distribution; you will be prompted to choose which you'd like to use.
Note that this script is sometimes out of date, in which case you will need to perform some of the manual steps in addition.
- Skip the The manual way, Install Pidgin's build dependencies, and Get the Pidgin source code sections and go straight to Build Pidgin.
The manual way
- Install the Cygwin Bash shell. Make sure to select Unix file mode during setup.
Also make sure you install bash, bzip2, coreutils, gawk, grep, gzip, make, patch, sed, monotone, tar, unzip, and wget (several of these are selected by default).
You may prefer to use the native Windows monotone binary available here.
- Install the MinGW "current" packages from the MinGW site.
The easiest way to install these is to use the MinGW Installer linked to from the main site.
Specifically, you will needgcc-core 3.4.2
,binutils 2.15.91
,mingw-runtime 3.9
andwin32api 3.9
(or newer). Note that a bug with the MinGW site causes win32api 3.9 to not appear. You'll need to grab it from their Sourceforge page.
You will need to set MinGW's bin directory before Cygwin's in your PATH.
For Example (You can add the following to~/.bash_login
):export PATH=/cygdrive/c/MinGW/bin:$PATH
You do not want to use any of Cygwin's build tools, with one exception; you need to use Cygwin's make utility. If typingwhich make
produces MinGW's make utility, then just rename themake.exe
in the MinGW bin directory to something else so that cygwin's make utility will be used instead. This shouldn't be a problem with recent versions of MinGW.
- The following instructions were written under the assumption that you checkout Pidgin from monotone to
~/pidgin
and that you install all of Pidgin's build dependencies under~/win32-dev
(the point being that the pidgin source root andwin32-dev
directories should be on the same level).
This can be overridden by creating alocal.mak
file in the~/pidgin
directory and overriding the various Makefile variables.
TODO: post example local.mak
Install Pidgin's build dependencies
GTK+
Pidgin depends on GTK+ 2.6.10 (newer runtime versions can be used, but building against newer headers will prevent Win98/ME compatibility). For your convenience, we have included all of GTK's dependencies in one tarball. Extract gtk-dev-2.6.10-rev-a.tar.gz within
~/win32-dev
.
If you wish to run Pidgin from thewin32-install-dir
directory once it is built, you will need to make sure that you have installed the GTK+ runtime, and make sure that its bin dir is in your PATH.
Visit the GTK+ website for official binary and source releases.
Libxml2
Download and extract libxml2-2.6.24.tar.gz to
win32-dev
.
Perl 5.8
Install Perl 5.8 for Windows (I use ActivePerl), to
C:\Perl
. If you install Perl anywhere else, you will need to override thePERL
andEXTUTILS
variables in yourpidgin/local.mak
file. You will also need to install perl582.tar.gz under~/win32-dev
(Containing headers and import lib for mingw gcc).
Tcl 8.4.5
Download and extract tcl-8.4.5.tar.gz to
win32-dev
GtkSpell / Aspell
- Download the following development packages for GtkSpell and Aspell, and extract them under
win32-dev
:
Mozilla NSS
- Download and unzip the following under
~/win32-dev
(make sure youchmod 755
all the unzipped binaries):
SILC Toolkit
Download and extract silc-toolkit-1.0.2.tar.gz to
win32-dev
.
Meanwhile
Download and extract meanwhile-1.0.2-win32.zip to
win32-dev
.
Get the Pidgin source code
The source for Pidgin 2.0.0 is available here.
The development source is available via monotone. See UsingPidginMonotone for more information.
Build Pidgin
Run the following:
$ cd ~/pidgin $ make -f Makefile.mingw installNow just wait and let your compiler do its thing. When finished, Pidgin will be in
~/pidgin/win32-install-dir
.
Build the Pidgin Installer
- If you want to build the Pidgin installer, do the following (skip to the
make
command below if you chose to use the Build Environment Fetcher):- Download and install NSIS. Include NSIS to your PATH. For information on the NSIS installer, visit the NSIS website.
- Download gtk-2.10.11-rev-b-installer.tar.gz
and extract it to
~/
(or whichever directory you have the pidgin dir in). From within the newgtk_installer directory
, run. build.sh
(this builds the GTK+ runtime installer, which the Pidgin installer will include). - Download pidgin-inst-deps.tar.gz and extract under
~/win32-dev
.
- Now you can actually build the installer.
There are 3 different installers: "Normal" (with GTK+), "No GTK+" and "Debug". The Makefile targets for these areinstaller
,installer_nogtk
, andinstaller_debug
respectively. To build all 3, use theinstallers
target.$ cd ~/pidgin $ make -f Makefile.mingw installers
Debugging
There is a quite good Just In Time debugger for MinGW: drmingw. You can download it here.
You can also usegdb
is available from MinGW.
Cross Compiling
It is quite easy to cross compile Pidgin for Windows on a Linux machine.
To begin, you'll need to install MinGW. On Debian/Ubuntu?, this involves installing packages
mingw32
,mingw32-binutils
, andmingw32-runtime
. On other distributions, the packages may be named differently.
Set up a build environment as described above, skipping steps 1 and 2.
Create a
local.mak
file in the source directory root to override the Makefile variables - mine looks like this:CC := /usr/bin/i586-mingw32msvc-cc GMSGFMT := msgfmt MAKENSIS := /usr/bin/makensis PERL := /usr/bin/perl EXTUTILS := /usr/share/perl/5.8/ExtUtils WINDRES := /usr/bin/i586-mingw32msvc-windres STRIP := /usr/bin/i586-mingw32msvc-strip INCLUDE_PATHS := -I$(PIDGIN_TREE_TOP)/../win32-dev/w32api/include LIB_PATHS := -L$(PIDGIN_TREE_TOP)/../win32-dev/w32api/lib
If your distribution doesn't include a recent enough win32api, you can download it from the MinGW site, extract it into your
win32-dev
directory, and override theINCLUDE_PATHS
andLIB_PATHS
variables in yourlocal.mak
as I have done.
Once this is set up, you should be able to follow the building instructions above.
Note: I haven't been able to get the NSIS installer to to build correctly on my 64-bit Linux system.