Setting up a Windows Build Environment: Difference between revisions
Shawn Novak (talk | contribs) Updated package list |
Shawn Novak (talk | contribs) m added gucharmap depends |
||
Line 5: | Line 5: | ||
==Setting up your Build Environment== | |||
The first step is of course to download all the packages required. You can extract them pretty much anywhere but for the purposes of this guide I used C:\MinGW. Keep in mind that C:\MingGW will be the root directory (/) and that in MSYS /usr is the same as /, therefore /usr/local when viewed from the windows side will be C:\MinGW\local. | The first step is of course to download all the packages required. You can extract them pretty much anywhere but for the purposes of this guide I used C:\MinGW. Keep in mind that C:\MingGW will be the root directory (/) and that in MSYS /usr is the same as /, therefore /usr/local when viewed from the windows side will be C:\MinGW\local. | ||
Line 53: | Line 53: | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.20/glib_2.20.4-1_win32.zip glib_2.20.4-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.20/glib_2.20.4-1_win32.zip glib_2.20.4-1_win32.zip] | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.20/glib-dev_2.20.4-1_win32.zip glib-dev_2.20.4-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.20/glib-dev_2.20.4-1_win32.zip glib-dev_2.20.4-1_win32.zip] | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/gnome-common/2.11/gnome-common-2.11.0.zip gnome-common-2.11.0.zip] | |||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+_2.16.5-1_win32.zip gtk+_2.16.5-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+_2.16.5-1_win32.zip gtk+_2.16.5-1_win32.zip] | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-dev_2.16.5-1_win32.zip gtk+-dev_2.16.5-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-dev_2.16.5-1_win32.zip gtk+-dev_2.16.5-1_win32.zip] | ||
Line 64: | Line 65: | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2_2.7.3-1_win32.zip libxml2_2.7.3-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2_2.7.3-1_win32.zip libxml2_2.7.3-1_win32.zip] | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2-dev_2.7.3-1_win32.zip libxml2-dev_2.7.3-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2-dev_2.7.3-1_win32.zip libxml2-dev_2.7.3-1_win32.zip] | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/ORBit2/2.14/ORBit2-dev_2.14.16-1_win32.zip ORBit2-dev_2.14.16-1_win32.zip] | |||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/ORBit2/2.14/ORBit2_2.14.16-1_win32.zip ORBit2_2.14.16-1_win32.zip] | |||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.24/pango_1.24.5-1_win32.zip pango_1.24.5-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.24/pango_1.24.5-1_win32.zip pango_1.24.5-1_win32.zip] | ||
:[http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.24/pango-dev_1.24.5-1_win32.zip pango-dev_1.24.5-1_win32.zip] | :[http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.24/pango-dev_1.24.5-1_win32.zip pango-dev_1.24.5-1_win32.zip] | ||
Line 72: | Line 75: | ||
;<nowiki>/local (C:\MinGW\local)</nowiki> ''Custom Packages'' | ;<nowiki>/local (C:\MinGW\local)</nowiki> ''Custom Packages'' | ||
:[ftp://kernel86.muleslow.net/mingw/pcre-7.9-bin-MinGW-20090824.tbz2 pcre-7.9-bin-MinGW-20090824.tbz2] | :[ftp://kernel86.muleslow.net/mingw/pcre-7.9-bin-MinGW-20090824.tbz2 pcre-7.9-bin-MinGW-20090824.tbz2] | ||
:[ftp://kernel86.muleslow.net/mingw/aspell-0.60.6-bin-MinGW-20090901.tbz2 aspell-0.60.6-bin-MinGW- | :[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/enchant-1.5.0-bin-MinGW-20090901.tbz2 enchant-1.5.0-bin-MinGW- | :[ftp://kernel86.muleslow.net/mingw/enchant-1.5.0-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/ ftp://kernel86.muleslow.net/mingw/aspell/lang/] | A full set of dictionaries for Aspell 0.60.6 can be found here: [ftp://kernel86.muleslow.net/mingw/aspell/lang/ ftp://kernel86.muleslow.net/mingw/aspell/lang/] | ||
Line 81: | Line 84: | ||
You only need to set a few environment variables as follows: | You only need to set a few environment variables and settings as follows: | ||
<pre>PATH="/bin:/local/bin:/opt/perl/bin" | <pre>PATH="/bin:/local/bin:/opt/perl/bin" | ||
C_INCLUDE_PATH="/include:/local/include" | C_INCLUDE_PATH="/include:/local/include" | ||
LIBRARY_PATH="/lib:/local/lib" | LIBRARY_PATH="/lib:/local/lib" | ||
echo /local/share/aclocal > /share/aclocal/dirlist</pre> | echo /local/share/aclocal > /share/aclocal/dirlist | ||
ln -s /local/bin/libxml2-2.dll /local/bin/libxml2.dll</pre> | |||
Line 93: | Line 97: | ||
<pre>#!/bin/sh | <pre>#!/bin/sh | ||
for i in $(find ./ -name Makefile); do | for i in $(find ./ -name Makefile | grep -v plugin); do | ||
echo Checking: $i | echo Checking: $i | ||
cat $i | sed s/'${prefix}\/'// | sed s/'${exec_prefix}\/'// > ${i}.tst | cat $i | sed s/'${prefix}\/'// | sed s/'${exec_prefix}\/'// > ${i}.tst | ||
Line 101: | Line 105: | ||
== Building Bluefish == | |||
Check out the latest windows branch: | Check out the latest windows branch: | ||
Line 126: | Line 130: | ||
PCRE 7.9 | PCRE 7.9 | ||
<pre>./configure --prefix=/local</pre> | <pre>./configure --prefix=/local</pre> | ||
gucharmap 2.26 | |||
<pre> ...pending... </pre> |
Revision as of 20:41, 1 September 2009
- 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 download all the packages required. You can extract them pretty much anywhere but for the purposes of this guide I used C:\MinGW. Keep in mind that C:\MingGW will be the root directory (/) and that in MSYS /usr is the same as /, therefore /usr/local when viewed from the windows side will be C:\MinGW\local.
- / (C:\MinGW) MSYS/MiNGW Packages
- autoconf-2.63-1-msys-1.0.11-bin.tar.lzma
- automake-1.11-1-msys-1.0.11-bin.tar.lzma
- binutils-2.19.1-mingw32-bin.tar.gz
- bison-2.4.1-1-msys-1.0.11-bin.tar.lzma
- crypt-1.1-1-MSYS-1.0.11-1.tar.bz2
- flex-2.5.33-MSYS-1.0.11-1.tar.bz2
- gawk-3.1.5-MSYS-1.0.11-1.tar.bz2
- gcc-core-3.4.5-20060117-3.tar.gz
- gcc-g++-3.4.5-20060117-3.tar.gz
- gcc-g77-3.4.5-20060117-3.tar.gz
- gdb-6.8-mingw-3.tar.bz2
- gdbm-1.8.3-MSYS-1.0.11-1.tar.bz2
- guile-1.8.4-MSYS-1.0.11-1-bin.tar.gz
- guile-1.8.4-MSYS-1.0.11-1-dll17.tar.gz
- gzip-1.3.12-1-msys-1.0.11-bin.tar
- libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma
- libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma
- lndir-6.8.1.0-MSYS-1.0.11-1.tar.bz2
- m4-1.4.13-1-msys-1.0.11-bin.tar.lzma
- man-1.6f-1-msys-1.0.11-bin.tar.lzma
- mingwrt-3.15.2-mingw32-dev.tar.gz
- mingwrt-3.15.2-mingw32-dll.tar.gz
- mingw-utils-0.3.tar.gz
- msysCORE-1.0.11-rc-1-bin.tar.gz
- perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma
- svn-win32-1.5.3.zip
- vim-7.1-MSYS-1.0.11-1-bin.tar.gz
- w32api-3.13-mingw32-dev.tar.gz
- /local (C:\MinGW\local) GNOME Packages
- 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
- /local (C:\MinGW\local) Custom Packages
- pcre-7.9-bin-MinGW-20090824.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 in /opt/perl for anything that needs a newer version.
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 onws provided.
Aspell 0.60.0
./configure --prefix=/local --disable-rpath --enable-win32-relocatable
Enchant 1.5.0
./configure --prefix=/local --enable-aspell --disable-ispell --disable-myspell
PCRE 7.9
./configure --prefix=/local
gucharmap 2.26
...pending...