Setting up a Windows Build Environment: Difference between revisions
Reorder stuff. |
Update configure information. |
||
Line 170: | Line 170: | ||
If you wish to build your own | If you wish to build your own version of these custom packages, these are the configure parameters used for the ones provided. | ||
;[ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz Aspell 0.60.6] | ;[ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz Aspell 0.60.6] | ||
Line 180: | Line 180: | ||
<pre>./configure --prefix=/local --enable-aspell --disable-ispell --disable-myspell</pre> | <pre>./configure --prefix=/local --enable-aspell --disable-ispell --disable-myspell</pre> | ||
;[ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.bz2 PCRE 7.9] | ;[ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.bz2 PCRE 7.9] (UTF-8 support is a '''must''') | ||
<pre>./configure --prefix=/local --enable-utf8 --enable-unicode-properties</pre> | <pre>./configure --prefix=/local --enable-utf8 --enable-unicode-properties</pre> | ||
Line 186: | Line 186: | ||
;[http://ftp.gnome.org/pub/GNOME/sources/gucharmap/2.26/gucharmap-2.26.3.tar.bz2 gucharmap 2.26] | ;[http://ftp.gnome.org/pub/GNOME/sources/gucharmap/2.26/gucharmap-2.26.3.tar.bz2 gucharmap 2.26] | ||
Unfortunately gucharmap does not build out-of-the-box. The following instructions were taken from the | Unfortunately gucharmap does not build out-of-the-box. The following instructions were taken from the [http://article.gmane.org/gmane.comp.web.bluefish.devel/2197 mailing list]. First apply the following patch by Daniel Leidert [ftp://kernel86.muleslow.net/mingw/gucharmap26.diff gucharmap26.diff] and then configure with the following commands. | ||
<pre>intltoolize -f | <pre> | ||
patch -p0 <gucharmap26.diff | |||
intltoolize -f | |||
libtoolize -f | libtoolize -f | ||
aclocal -I m4/ --force | aclocal -I m4/ --force | ||
Line 195: | Line 197: | ||
autoconf -f | autoconf -f | ||
./configure --disable-gconf --disable-schemas-install --disable-scrollkeeper</pre> | ./configure --disable-gconf --disable-schemas-install --disable-scrollkeeper</pre> | ||
== Building Bluefish == | == Building Bluefish == |
Revision as of 15:56, 12 September 2009
Windows Build Status
- Current Known issues:
- Socket code doesn't work so files can't be opened in a currently running copy of bluefish.
Setting up your Build Environment
The first step is of course to install and setup the MingW and MSYS environments. Start with the automated MinGW installer. During installation choose the g++ compiler too (do not choose MingW make). The preferred location is C:\MinGW, but it's not necessary to choose this path. In a second step install the MSYS base system. It will ask you for the location of the MingW environment. If you e.g. installed it to P:\Programs\MinGW, then type
p:/programs/mingw
when you are asked for the location (JFTR: this information will be put into /etc/fstab in the MSYS environment).
If you know what you are doing, you might alternatively download and unpack (unzip/untar/...) the packages manually.
Updating the Build Environment
In a second step all necessary software needs to be updated and/or installed. You can download and extract them manually. Extract them to the location, where MSYS has been installed. This place is usually C:\Programs\msys\1.0\ (or C:\MingGW\). Keep in mind, that this place is equal to the root directory / and to /usr/ (as both are the same) in MSYS. JFTR: Also /local and /usr/local are equal too.
- MinGW Packages install into MingW root (C:\MinGW\)
- w32api-3.13-mingw32-dev.tar.gz
- mingw-utils-0.3.tar.gz
- mingwrt-3.16-mingw32-dev.tar.gz
- mingwrt-3.16-mingw32-dll.tar.gz
- MSYS Packages install into MSYS root directory "/" (C:\Programs\msys\1.0\ or C:\MinGW\)
- msysCORE-1.0.11-bin.tar.gz
- autoconf-2.63-1-msys-1.0.11-bin.tar.lzma
- automake-1.11-1-msys-1.0.11-bin.tar.lzma
- bison-2.4.1-1-msys-1.0.11-bin.tar.lzma
- bzip2-1.0.5-1-msys-1.0.11-bin.tar.gz
- crypt-1.1_1-2-msys-1.0.11-bin.tar.lzma
- findutils-4.4.2-1-msys-1.0.11-bin.tar.lzma
- flex-2.5.35-1-msys-1.0.11-bin.tar.lzma
- gawk-3.1.7-1-msys-1.0.11-bin.tar.lzma
- gdbm-1.8.3-2-msys-1.0.11-bin.tar.lzma
- gettext-0.17-1-msys-1.0.11-bin.tar.lzma
- grep-2.5.4-1-msys-1.0.11-bin.tar.lzma
- groff-1.20.1-1-msys-1.0.11-bin.tar.lzma
- guile-1.8.7-1-msys-1.0.11-bin.tar.lzma
- gzip-1.3.12-1-msys-1.0.11-bin.tar.lzma
- libbz2-1.0.5-1-msys-1.0.11-dll-1.tar.gz
- libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma
- libgdbm-1.8.3-2-msys-1.0.11-dll-3.tar.lzma
- libguile-1.8.7-1-msys-1.0.11-dll-17.tar.lzma
- libiconv-1.13.1-1-msys-1.0.11-bin.tar.lzma
- libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma
- libminires-1.02_1-1-msys-1.0.11-dll.tar.lzma
- libopenssl-0.9.8k-1-msys-1.0.11-dll-098.tar.lzma
- libregex-1.20090805-1-msys-1.0.11-dll-1.tar.lzma
- libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma
- lndir-1.0.1-1-msys-1.0.11-bin.tar.gz
- m4-1.4.13-1-msys-1.0.11-bin.tar.lzma
- man-1.6f-1-msys-1.0.11-bin.tar.lzma
- minires-1.02_1-1-msys-1.0.11-bin.tar.lzma
- openssl-0.9.8k-1-msys-1.0.11-bin.tar.lzma
- patch-2.5.9-1-msys-1.0.11-bin.tar.lzma
- perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma
- sed-4.2.1-1-msys-1.0.11-bin.tar.lzma
- tar-1.22-1-msys-1.0.11-bin.tar.lzma
- vim-7.2-1-msys-1.0.11-bin.tar.lzma
- zlib-1.2.3-1-msys-1.0.11-dll.tar.gz
- GNOME Packages install into MSYS local directory "/local" (C:\Programs\msys\1.0\local\ or C:\MinGW\local\)
- atk_1.26.0-1_win32.zip
- atk-dev_1.26.0-1_win32.zip
- cairo_1.8.8-1_win32.zip
- cairo-dev_1.8.8-1_win32.zip
- expat_2.0.1-1_win32.zip
- expat-dev_2.0.1-1_win32.zip
- GConf_2.22.0-2_win32.zip
- GConf-dev_2.22.0-2_win32.zip
- gettext-runtime-0.17.zip
- gettext-runtime-dev-0.17.zip
- gettext-tools-0.17.zip
- glib_2.20.4-1_win32.zip
- glib-dev_2.20.4-1_win32.zip
- gnome-common-2.11.0.zip
- gtk+_2.16.5-1_win32.zip
- gtk+-dev_2.16.5-1_win32.zip
- intltool_0.40.4-1_win32.zip
- intltool-dev_0.40.4-1_win32.zip
- libgnurx-2.5.zip
- libgnurx-dev-2.5.zip
- libiconv-1.9.1.bin.woe32.zip
- libpng_1.2.38-1_win32.zip
- libpng-dev_1.2.38-1_win32.zip
- libxml2_2.7.3-1_win32.zip
- libxml2-dev_2.7.3-1_win32.zip
- ORBit2-dev_2.14.16-1_win32.zip
- ORBit2_2.14.16-1_win32.zip
- pango_1.24.5-1_win32.zip
- pango-dev_1.24.5-1_win32.zip
- pkg-config-0.23-2.zip
- zlib-1.2.3.zip
- zlib-dev-1.2.3.zip
- External Packages install into MSYS local directory "/local" (C:\Programs\msys\1.0\local\ or C:\MinGW\local\)
- svn-win32-1.6.5.zip
The Perl issue
The last thing you need is Perl. The MSYS version is 5.6.1 which is not new enough to pass the configure script for a lot of programs including Bluefish. I use the MSYS 5.6.1 version for autoconf/automake/autogen.sh and an external version such as ActiveState's for anything that needs a newer version. Install the ActivePerl Perl version. Then edit /etc/fstab in your MSYS enviroment (usually ) and add the following line:
c:/programs/perl /opt/perl
so Perl is mounted to the MSYS environment.
Configuring your Build Environment
You might set a few environment variables as follows.
PATH="/bin:/local/bin:/opt/perl/bin" C_INCLUDE_PATH="/include:/local/include" LIBRARY_PATH="/lib:/local/lib"
- Alternatively pass our config.site script for MSYS to configure to adjust PATH/CFLAGS/LDFLAGS easily.
Further we need to adjust the macro search path for aclocal:
echo /local/share/aclocal > /share/aclocal/dirlist
Because of a linker bug in the gconftool-2 binary, add this symbolic link:
ln -s /local/bin/libxml2-2.dll /local/bin/libxml2.dll
To strip the prefixes from the Makefiles before you build Bluefish you can download or create this simple script I made, strip_prefix.sh. Place it in /usr/local/bin or somewhere in the path.
strip_prefix.sh (This script might become obsolete soon!):
#!/bin/sh for i in $(find ./ -name Makefile | grep -v plugin); do echo Checking: $i cat $i | sed s/'${prefix}\/'// | sed s/'${exec_prefix}\/'// > ${i}.tst rm $i mv ${i}.tst $i done
Building External Packages
To build bluefish we need some libraries not available from the MinGW/MSYS project.
Installing Pre-Compiled Packages
Shawn Novak provides pre-compiled tarballs, which you just need to extract to /local:
- Custom Packages install into MSYS local directory "/local" (C:\Programs\msys\1.0\local\ or C:\MinGW\local\)
- pcre-7.9-bin-MinGW-20090902.tbz2
- aspell-0.60.6-bin-MinGW-20090901.tbz2
- enchant-1.5.0-bin-MinGW-20090901.tbz2
A full set of dictionaries for Aspell 0.60.6 can be found here: ftp://kernel86.muleslow.net/mingw/aspell/lang/
Building And Installing From The Source
If you wish to build your own version of these custom packages, these are the configure parameters used for the ones provided.
./configure --prefix=/local --disable-rpath --enable-win32-relocatable
./configure --prefix=/local --enable-aspell --disable-ispell --disable-myspell
- PCRE 7.9 (UTF-8 support is a must)
./configure --prefix=/local --enable-utf8 --enable-unicode-properties
Unfortunately gucharmap does not build out-of-the-box. The following instructions were taken from the mailing list. First apply the following patch by Daniel Leidert gucharmap26.diff and then configure with the following commands.
patch -p0 <gucharmap26.diff intltoolize -f libtoolize -f aclocal -I m4/ --force autoheader -f automake -f autoconf -f ./configure --disable-gconf --disable-schemas-install --disable-scrollkeeper
Building Bluefish
Check out the latest windows branch:
svn checkout https://bluefish.svn.sourceforge.net/svnroot/bluefish/trunk/bluefish
Run autogen.sh (uses perl 5.6.1). Then run configure (make sure, Perl from /opt/perl/bin is used; e.g. adjust PATH) and make:
./autogen.sh ./configure CONFIG_SITE=config.site/config.msys ./strip_prefix.sh make
Debugging Bluefish
For console debugging output, configure bluefish by passing '--enable-debugging-output' to ./configure. Further CFLAGS should contain '-g' (default, also explicitely set by config.msys).
For debugging crashes install the GNU Debugger (GDB).