5 | | == Set up your build environment == |
| 5 | == Get the Pidgin source code == |
| 6 | {{{ |
| 7 | #!comment |
| 8 | 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]] |
| 9 | }}} |
| 10 | The 3.0.0 branch isn't released yet, so there are no source packages for this at the moment.[[BR]][[BR]] |
| 11 | The development source is available via mercurial. See [wiki:UsingPidginMercurial] for more information. |
| 12 | |
| 13 | |
| 14 | == Cross Compiling (the easy way) == |
| 15 | It is quite easy to cross compile Pidgin for Windows on a Linux machine. |
| 16 | |
| 17 | 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. |
| 18 | |
| 19 | When compiling from hg, you'll need to generate `configure` script: |
| 20 | {{{ |
| 21 | NOCONFIGURE=indeed ./autogen.sh |
| 22 | }}} |
| 23 | |
| 24 | Set up pkgconfig (this may vary, depending on Linux distribution): |
| 25 | {{{ |
| 26 | export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig:\ |
| 27 | /usr/i686-w64-mingw32/sys-root/mingw/share/pkgconfig |
| 28 | export PKG_CONFIG=/usr/bin/i686-w64-mingw32-pkg-config |
| 29 | }}} |
| 30 | |
| 31 | 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. |
| 32 | {{{ |
| 33 | ./configure --host=i686-w64-mingw32 --with-win32-dirs=<fhs|classic> |
| 34 | make |
| 35 | }}} |
| 36 | |
| 37 | At last, install Pidgin, Finch and its dependencies. |
| 38 | {{{ |
| 39 | make DESTDIR=/path/to/install-dir install |
| 40 | cd /path/to/install-dir |
| 41 | cd usr/local # it may depend on your configured $prefix |
| 42 | wget https://pidgin.im/~twasilczyk/win32/gtk-runtime-2.24.18.0.zip |
| 43 | unzip gtk-runtime-2.24.18.0.zip |
| 44 | cp -r Gtk/* . |
| 45 | rm -rf Gtk gtk-runtime-2.24.18.0.zip |
| 46 | }}} |
| 47 | |
| 48 | |
| 49 | == Compiling directly on Windows with Cygwin (the hard way) == |
| 50 | |
| 51 | This method was used for 2.x.y branch and most probably will be dropped, when cross-compilation was fully functional (including the installer). |
| 52 | |
| 53 | === Set up your build environment === |
112 | | |
113 | | |
114 | | {{{ |
115 | | #!comment |
116 | | == Cross Compiling == |
117 | | It is quite easy to cross compile Pidgin for Windows on a Linux machine. |
118 | | |
119 | | 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. |
120 | | |
121 | | Set up a build environment as described [#Themanualway above], skipping steps 1 and 3. |
122 | | |
123 | | Create a `local.mak` file in the source directory root to override the Makefile variables - mine looks like this: |
124 | | {{{ |
125 | | SHELL := /bin/bash |
126 | | CC := /usr/bin/i586-mingw32msvc-cc |
127 | | GMSGFMT := msgfmt |
128 | | MAKENSIS := /usr/bin/makensis |
129 | | WINDRES := /usr/bin/i586-mingw32msvc-windres |
130 | | STRIP := /usr/bin/i586-mingw32msvc-strip |
131 | | INTLTOOL_MERGE := /usr/bin/intltool-merge |
132 | | |
133 | | INCLUDE_PATHS := -I$(PIDGIN_TREE_TOP)/../win32-dev/w32api/include |
134 | | LIB_PATHS := -L$(PIDGIN_TREE_TOP)/../win32-dev/w32api/lib |
135 | | }}} |
136 | | |
137 | | 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. |
138 | | |
139 | | 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): |
140 | | |
141 | | `.tar.bz2` file contains latest source[[BR]] |
142 | | `.zip` file contains libraries |
143 | | {{{ |
144 | | #!sh |
145 | | mkdir nsis; cd nsis |
146 | | wget http://prdownloads.sourceforge.net/nsis/nsis-2.46-src.tar.bz2?download |
147 | | wget http://prdownloads.sourceforge.net/nsis/nsis-2.46.zip?download |
148 | | tar -jxvf nsis-2.46-src.tar.bz2 |
149 | | cd nsis-2.46 |
150 | | scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no |
151 | | sudo scons install-compiler |
152 | | cd .. |
153 | | sudo unzip nsis-2.46 -d /usr/local/share |
154 | | sudo mv /usr/local/share/nsis-2.46/ /usr/local/share/nsis |
155 | | }}} |
156 | | If following the above instructions, the local.mak file ([#CrossCompiling listed above]) should be modified[[BR]] |
157 | | {{{ |
158 | | MAKENSIS := /usr/local/bin/makensis |
159 | | }}} |
160 | | |
161 | | |
162 | | Once this is all set up, you should be able to follow the [#BuildPidgin building instructions above]. |
163 | | }}} |