[Pidgin] BuildingWinPidgin/3.0.0 modified
Pidgin
trac at pidgin.im
Fri Apr 25 11:26:21 EDT 2014
Page "BuildingWinPidgin/3.0.0" was changed by tomkiewicz
Diff URL: <https://developer.pidgin.im/wiki/BuildingWinPidgin/3.0.0?action=diff&version=6>
Revision 6
Comment: mention 3.0.0 cross-compiling
Changes:
-------8<------8<------8<------8<------8<------8<------8<------8<--------
Index: BuildingWinPidgin/3.0.0
=========================================================================
--- BuildingWinPidgin/3.0.0 (version: 5)
+++ BuildingWinPidgin/3.0.0 (version: 6)
@@ -2,7 +2,55 @@
Note: These instructions are for 3.0.0 branch. The current instructions for 2.x.y are found [wiki:BuildingWinPidgin here].
-== Set up your build environment ==
+== Get the Pidgin source code ==
+{{{
+#!comment
+ The source for Pidgin 3.x.y is available [http://prdownloads.sourceforge.net/pidgin/pidgin-3.x.y.tar.bz2 here] (use the latest release if this isn't updated yet).[[BR]][[BR]]
+}}}
+ The 3.0.0 branch isn't released yet, so there are no source packages for this at the moment.[[BR]][[BR]]
+ The development source is available via mercurial. See [wiki:UsingPidginMercurial] for more information.
+
+
+== Cross Compiling (the easy way) ==
+ 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`, `mingw32-runtime`, `mingw32-cross-pkg-config`. On other distributions, the packages may be named differently.
+
+ When compiling from hg, you'll need to generate `configure` script:
+{{{
+NOCONFIGURE=indeed ./autogen.sh
+}}}
+
+ Set up pkgconfig (this may vary, depending on Linux distribution):
+{{{
+export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig:\
+ /usr/i686-w64-mingw32/sys-root/mingw/share/pkgconfig
+export PKG_CONFIG=/usr/bin/i686-w64-mingw32-pkg-config
+}}}
+
+ Run configure with cross-compile option. You may choose FHS or classic directory layout (default is classic). For now (when installer is missing), FHS will be easier to install and run. Then - build it.
+{{{
+./configure --host=i686-w64-mingw32 --with-win32-dirs=<fhs|classic>
+make
+}}}
+
+ At last, install Pidgin, Finch and its dependencies.
+{{{
+make DESTDIR=/path/to/install-dir install
+cd /path/to/install-dir
+cd usr/local # it may depend on your configured $prefix
+wget https://pidgin.im/~twasilczyk/win32/gtk-runtime-2.24.18.0.zip
+unzip gtk-runtime-2.24.18.0.zip
+cp -r Gtk/* .
+rm -rf Gtk gtk-runtime-2.24.18.0.zip
+}}}
+
+
+== Compiling directly on Windows with Cygwin (the hard way) ==
+
+ This method was used for 2.x.y branch and most probably will be dropped, when cross-compilation was fully functional (including the installer).
+
+=== Set up your build environment ===
1. Install the [http://cygwin.com Cygwin] Bash shell. Make sure to select Unix file mode during setup.
Also make sure you install bash, bzip2, '''ca-certificates''', coreutils, gawk, '''gnupg''', grep, gzip, '''libiconv''', '''make''', '''mercurial''', '''patch''', sed, tar, '''unzip''', '''wget''', '''xxd''' and '''zip''' (several of these are selected by default, those in bold are not). Be sure to add Cygwin versions of any programs you may use that require Cygwin path names (for example, if you want to use vim to edit monotone commit messages, you need to install the Cygwin version of vim -- native Win32 vim will be unable to read Cygwin-style paths). [[BR]]
@@ -43,15 +91,7 @@
./prepare-workspace.sh
}}}
-== Get the Pidgin source code ==
-{{{
-#!comment
- The source for Pidgin 3.x.y is available [http://prdownloads.sourceforge.net/pidgin/pidgin-3.x.y.tar.bz2 here] (use the latest release if this isn't updated yet).[[BR]][[BR]]
-}}}
- The 3.0.0 branch isn't released yet, so there are no source packages for this at the moment.[[BR]][[BR]]
- The development source is available via mercurial. See [wiki:UsingPidginMercurial] for more information.
-
-== Build Pidgin ==
+=== Build Pidgin ===
Run the following:
{{{
@@ -61,7 +101,7 @@
}}}
Now just wait and let your compiler do its thing. When finished, Pidgin will be in `$PIDGIN_DEV_ROOT/pidgin-<version>/win32-install-dir`.
-== Build the Pidgin Installer ==
+=== Build the Pidgin Installer ===
If you want to sign the executables (not necessary for personal use), you'll need to get an appropriate code signing certificate, generate a GPG key if you don't already have one, then download and install [http://www.mono-project.com/Download Mono]. In your `local.mak` file (see [#CustomizingtheBuildEnvironment below]), define the `SIGN_EXECUTABLES` variable to 1, `MONO_SIGNCODE` to the fully qualified path to the `signcode` batch file in the Mono `bin` directory, and the `SIGNCODE_SPC` and `SIGNCODE_PVK` variables to the appropriate files from your certificate. E.g.:
{{{
@@ -84,7 +124,7 @@
}}}
When it finishes, your installer(s) should be in `$PIDGIN_DEV_ROOT/pidgin-<version>/`.
-== Customizing the Build Environment ==
+=== Customizing the Build Environment ===
Most people will find that the standard build environment directory is completely adequate.
It is, however, possible to override the locations of the various dependencies and target directories.
This is often useful to test against a development version of a library dependency or to override compiler flags.
@@ -109,55 +149,3 @@
== Debugging ==
There is a quite good '''Just In Time''' debugger for MinGW: [http://code.google.com/p/jrfonseca/wiki/DrMingw drmingw].[[BR]]
There is also a version of `gdb` available from MinGW, if you prefer.
-
-
-{{{
-#!comment
-== 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`, and `mingw32-runtime`. On other distributions, the packages may be named differently.
-
- Set up a build environment as described [#Themanualway above], skipping steps 1 and 3.
-
- Create a `local.mak` file in the source directory root to override the Makefile variables - mine looks like this:
-{{{
-SHELL := /bin/bash
-CC := /usr/bin/i586-mingw32msvc-cc
-GMSGFMT := msgfmt
-MAKENSIS := /usr/bin/makensis
-WINDRES := /usr/bin/i586-mingw32msvc-windres
-STRIP := /usr/bin/i586-mingw32msvc-strip
-INTLTOOL_MERGE := /usr/bin/intltool-merge
-
-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 [http://www.mingw.org/ MinGW site], extract it into your `win32-dev` directory, and override the `INCLUDE_PATHS` and `LIB_PATHS` variables in your `local.mak` as I have done.
-
- NSIS version 2.46 or greater is required to cross-compile. If compiling NSIS from source, the [http://www.scons.org/ scons] package is a dependency. This can usually be installed through your linux distribution's package archive. An example of how to install the NSIS package is given below (Assuming use of the NSIS 2.46 version):
-
- `.tar.bz2` file contains latest source[[BR]]
- `.zip` file contains libraries
-{{{
-#!sh
-mkdir nsis; cd nsis
-wget http://prdownloads.sourceforge.net/nsis/nsis-2.46-src.tar.bz2?download
-wget http://prdownloads.sourceforge.net/nsis/nsis-2.46.zip?download
-tar -jxvf nsis-2.46-src.tar.bz2
-cd nsis-2.46
-scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no
-sudo scons install-compiler
-cd ..
-sudo unzip nsis-2.46 -d /usr/local/share
-sudo mv /usr/local/share/nsis-2.46/ /usr/local/share/nsis
-}}}
- If following the above instructions, the local.mak file ([#CrossCompiling listed above]) should be modified[[BR]]
-{{{
-MAKENSIS := /usr/local/bin/makensis
-}}}
-
-
- Once this is all set up, you should be able to follow the [#BuildPidgin building instructions above].
-}}}
-------8<------8<------8<------8<------8<------8<------8<------8<--------
--
Page URL: <https://developer.pidgin.im/wiki/BuildingWinPidgin/3.0.0>
Pidgin <https://pidgin.im>
Pidgin
This is an automated message. Someone added your email address to be
notified of changes on 'BuildingWinPidgin/3.0.0' page.
If it was not you, please report to datallah at pidgin.im.
More information about the Wikiedit
mailing list