Setting up a Windows Build Environment: Difference between revisions
m Typo fixes. |
m Markup fixes. |
||
Line 23: | Line 23: | ||
;''MinGW Packages'' | ;''MinGW Packages'' install into MingW root (<tt>C:\MinGW\</tt>) | ||
:[https://sourceforge.net/projects/mingw/files/MinGW%20API%20for%20MS-Windows/Current%20Release_%20w32api-3.13/w32api-3.13-mingw32-dev.tar.gz/download w32api-3.13-mingw32-dev.tar.gz] | :[https://sourceforge.net/projects/mingw/files/MinGW%20API%20for%20MS-Windows/Current%20Release_%20w32api-3.13/w32api-3.13-mingw32-dev.tar.gz/download w32api-3.13-mingw32-dev.tar.gz] | ||
:[https://sourceforge.net/projects/mingw/files/MinGW%20Utilities/mingw-utils/release%200.3/mingw-utils-0.3.tar.gz/download mingw-utils-0.3.tar.gz] | :[https://sourceforge.net/projects/mingw/files/MinGW%20Utilities/mingw-utils/release%200.3/mingw-utils-0.3.tar.gz/download mingw-utils-0.3.tar.gz] | ||
Line 31: | Line 31: | ||
;''MSYS Packages'' | ;''MSYS Packages'' install into MSYS root directory "<tt>/</tt>" (<tt>C:\Programs\msys\1.0\</tt> or <tt>C:\MinGW\</tt>) | ||
:[https://sourceforge.net/projects/mingw/files/MSYS%20Base%20System/Current%20Release_%20MSYS-1.0.11/msysCORE-1.0.11-bin.tar.gz/download msysCORE-1.0.11-bin.tar.gz] | :[https://sourceforge.net/projects/mingw/files/MSYS%20Base%20System/Current%20Release_%20MSYS-1.0.11/msysCORE-1.0.11-bin.tar.gz/download msysCORE-1.0.11-bin.tar.gz] | ||
:[https://sourceforge.net/projects/mingw/files/MSYS%20autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download autoconf-2.63-1-msys-1.0.11-bin.tar.lzma] | :[https://sourceforge.net/projects/mingw/files/MSYS%20autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download autoconf-2.63-1-msys-1.0.11-bin.tar.lzma] | ||
Line 69: | Line 69: | ||
:[https://sourceforge.net/projects/mingw/files/MSYS%20zlib/zlib-1.2.3-1/zlib-1.2.3-1-msys-1.0.11-dll.tar.gz/download zlib-1.2.3-1-msys-1.0.11-dll.tar.gz] | :[https://sourceforge.net/projects/mingw/files/MSYS%20zlib/zlib-1.2.3-1/zlib-1.2.3-1-msys-1.0.11-dll.tar.gz/download zlib-1.2.3-1-msys-1.0.11-dll.tar.gz] | ||
;''GNOME Packages'' | ;''GNOME Packages'' install into MSYS local directory "<tt>/local</tt>" (<tt>C:\Programs\msys\1.0\local\</tt> or <tt>C:\MinGW\local\</tt>) | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.26/atk_1.26.0-1_win32.zip atk_1.26.0-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.26/atk_1.26.0-1_win32.zip atk_1.26.0-1_win32.zip] | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.26/atk-dev_1.26.0-1_win32.zip atk-dev_1.26.0-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.26/atk-dev_1.26.0-1_win32.zip atk-dev_1.26.0-1_win32.zip] | ||
Line 103: | Line 103: | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev-1.2.3.zip zlib-dev-1.2.3.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev-1.2.3.zip zlib-dev-1.2.3.zip] | ||
;''External Packages'' | ;''External Packages'' install into MSYS local directory "<tt>/local</tt>" (<tt>C:\Programs\msys\1.0\local\</tt> or <tt>C:\MinGW\local\</tt>) | ||
:[http://subversion.tigris.org/files/documents/15/46518/svn-win32-1.6.5.zip svn-win32-1.6.5.zip] | :[http://subversion.tigris.org/files/documents/15/46518/svn-win32-1.6.5.zip svn-win32-1.6.5.zip] | ||
;''Custom Packages'' | ;''Custom Packages'' install into MSYS local directory "<tt>/local</tt>" (<tt>C:\Programs\msys\1.0\local\</tt> or <tt>C:\MinGW\local\</tt>) | ||
:[ftp://kernel86.muleslow.net/mingw/pcre-7.9-bin-MinGW-20090902.tbz2 pcre-7.9-bin-MinGW-20090902.tbz2] | :[ftp://kernel86.muleslow.net/mingw/pcre-7.9-bin-MinGW-20090902.tbz2 pcre-7.9-bin-MinGW-20090902.tbz2] | ||
:[ftp://kernel86.muleslow.net/mingw/aspell-0.60.6-bin-MinGW-20090901.tbz2 aspell-0.60.6-bin-MinGW-20090901.tbz2] | :[ftp://kernel86.muleslow.net/mingw/aspell-0.60.6-bin-MinGW-20090901.tbz2 aspell-0.60.6-bin-MinGW-20090901.tbz2] |
Revision as of 15:13, 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:\Programme\MinGW, then type
p:\programme\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
- binutils-2.19.1-mingw32-bin.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
- 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/
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 only need to set a few environment variables and settings as follows:
PATH="/bin:/local/bin:/opt/perl/bin" C_INCLUDE_PATH="/include:/local/include" LIBRARY_PATH="/lib:/local/lib" echo /local/share/aclocal > /share/aclocal/dirlist 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:
#!/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 Bluefish
Check out the latest windows branch:
svn checkout https://bluefish.svn.sourceforge.net/svnroot/bluefish/branches/bluefish_windows
Run autogen.sh with perl 5.6.1 and then switch /bin/perl to your 5.8.1 or newer version or perl and run configure:
./configure LDFLAGS=-lgnurx CFLAGS=-mwindows ./strip_prefix.sh make
Drop the CFLAGS option to configure for a console window for debug output and of course run configure with '--enable-debugging-output' for a full debug build.
Building External Packages
If you wish to build your own versions of the custom packages these are the configure parameters used for the ones provided.
Aspell 0.60.6: ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz
./configure --prefix=/local --disable-rpath --enable-win32-relocatable
Enchant 1.5.0: http://www.abisource.com/downloads/enchant/1.5.0/enchant-1.5.0.tar.gz
./configure --prefix=/local --enable-aspell --disable-ispell --disable-myspell
PCRE 7.9: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.bz2
./configure --prefix=/local --enable-utf8 --enable-unicode-properties
gucharmap 2.26: http://ftp.gnome.org/pub/GNOME/sources/gucharmap/2.26/gucharmap-2.26.3.tar.bz2
These instructions taken from the mailing list: http://article.gmane.org/gmane.comp.web.bluefish.devel/2197
First apply the following patch by Daniel Leidert: gucharmap26.diff and then configure with the following commands.
intltoolize -f libtoolize -f aclocal -I m4/ --force autoheader -f automake -f autoconf -f ./configure --disable-gconf --disable-schemas-install --disable-scrollkeeper