<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bfwiki.tellefsen.net//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Reisio</id>
	<title>Bluefish Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://bfwiki.tellefsen.net//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Reisio"/>
	<link rel="alternate" type="text/html" href="https://bfwiki.tellefsen.net//index.php/Special:Contributions/Reisio"/>
	<updated>2026-05-23T18:50:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://bfwiki.tellefsen.net//index.php?title=Setting_up_a_Windows_Build_Environment&amp;diff=1895</id>
		<title>Setting up a Windows Build Environment</title>
		<link rel="alternate" type="text/html" href="https://bfwiki.tellefsen.net//index.php?title=Setting_up_a_Windows_Build_Environment&amp;diff=1895"/>
		<updated>2010-07-31T01:10:47Z</updated>

		<summary type="html">&lt;p&gt;Reisio: /* Notes and references */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Build Status ==&lt;br /&gt;
&lt;br /&gt;
Binary and plugins are running and should be fully functional. If you encounter unexpected behaviour or bugs, please report your problem to [https://bugzilla.gnome.org/enter_bug.cgi?product=bluefish our BTS].&lt;br /&gt;
&lt;br /&gt;
=== Current Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Socket code doesn&#039;t work so files can&#039;t be opened externally in a currently running copy of bluefish.&lt;br /&gt;
* Launching of external programs doesn&#039;t work.&lt;br /&gt;
* Editing of UTF files with a BOM headers is not currently supported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting up your Build Environment ==&lt;br /&gt;
&lt;br /&gt;
The first step is of course to install and setup the MingW and MSYS environments. Start with the [https://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/download automated MinGW installer]. During installation choose the g++ compiler too (&#039;&#039;&#039;do not choose MingW make&#039;&#039;&#039;). The preferred location is &amp;lt;tt&amp;gt;C:\MinGW&amp;lt;/tt&amp;gt;, but it&#039;s not necessary to choose this path. In a second step install the [https://sourceforge.net/projects/mingw/files/MSYS%20Base%20System/Current%20Release_%20MSYS-1.0.11/MSYS-1.0.11.exe/download MSYS base system]. It will ask you for the location of the MingW environment. If you e.g. installed it to &amp;lt;tt&amp;gt;P:\Programs\MinGW&amp;lt;/tt&amp;gt;, then type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;p:/programs/mingw&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
when you are asked for the location (JFTR: this information will be put into &amp;lt;tt&amp;gt;/etc/fstab&amp;lt;/tt&amp;gt; in the MSYS environment).&lt;br /&gt;
&lt;br /&gt;
If you know what you are doing, you might alternatively download and unpack (unzip/untar/...) the packages manually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recent Build Environment Changes ===&lt;br /&gt;
&lt;br /&gt;
If you are maintaining a build environment for Bluefish please check this subsection occasionally for important changes!&lt;br /&gt;
&lt;br /&gt;
;2009-12-10&lt;br /&gt;
:If you build your own installers we now use a unicode version of NSIS, [http://www.scratchpaper.com/home Unicode NSIS], to support UTF-8 encoded translations.&lt;br /&gt;
&lt;br /&gt;
;2009-09-23:&lt;br /&gt;
:The GNOME packages have been updated to reflect those versions which are included with Pidgin&#039;s GTK+ installer.  This is currently being used as our target runtime environment for the Installer version of Bluefish.  If you&#039;re first setting up your build environment you can skip this section as the information provided below is always up to date.  If you already have a build environment setup you will need to update a few packages to the versions provided below.  These include atk (1.26.0-&amp;gt;1.24.0), glib (2.20.4-&amp;gt;2.18.4), gtk+ (2.16.5-&amp;gt;2.14.7), and pango (1.24.5-&amp;gt;1.22.4).&lt;br /&gt;
&lt;br /&gt;
:If you don&#039;t intend to run your builds of Bluefish outside of your MSYS environment this change is not required.  However if you do wish to do so and wish to remain with GTK+ 2.16 you can use the [http://gtk-win.sourceforge.net/ GTK-Win] installer.  This version is not officially supported by the windows development team as of yet because while it&#039;s fine for Bluefish it does break some features in Pidgin so keep this in mind if you use both programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Updating the Build Environment ===&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;tt&amp;gt;C:\Programs\msys\1.0\&amp;lt;/tt&amp;gt; (or &amp;lt;tt&amp;gt;C:\MingGW\&amp;lt;/tt&amp;gt;). Keep in mind, that this place is equal to the root directory &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; and to &amp;lt;tt&amp;gt;/usr/&amp;lt;/tt&amp;gt; (as both are the same) in MSYS. JFTR: Also &amp;lt;tt&amp;gt;/local&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; are equal too.&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;MinGW Packages&#039;&#039; install into MingW root (&amp;lt;tt&amp;gt;C:\MinGW\&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:[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]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MinGW%20Utilities/mingw-utils/mingw-utils-0.3/mingw-utils-0.3.tar.gz/download mingw-utils-0.3.tar.gz]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MinGW%20Runtime/mingwrt-3.16/mingwrt-3.16-mingw32-dev.tar.gz/download mingwrt-3.16-mingw32-dev.tar.gz]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MinGW%20Runtime/mingwrt-3.16/mingwrt-3.16-mingw32-dll.tar.gz/download mingwrt-3.16-mingw32-dll.tar.gz]&lt;br /&gt;
&amp;lt;!-- :[https://sourceforge.net/projects/mingw/files/GNU%20Binutils/Current%20Release_%20GNU%20binutils-2.19.1/binutils-2.19.1-mingw32-bin.tar.gz/download binutils-2.19.1-mingw32-bin.tar.gz] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;MSYS Packages&#039;&#039; install into MSYS root directory &amp;quot;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&amp;quot; (&amp;lt;tt&amp;gt;C:\Programs\msys\1.0\&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;C:\MinGW\&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:[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]&lt;br /&gt;
:[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]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download automake-1.11-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20bison/bison-2.4.1-1/bison-2.4.1-1-msys-1.0.11-bin.tar.lzma/download bison-2.4.1-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20bzip2/bzip2-1.0.5-1/bzip2-1.0.5-1-msys-1.0.11-bin.tar.gz/download bzip2-1.0.5-1-msys-1.0.11-bin.tar.gz]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20crypt/crypt-1.1_1-2/crypt-1.1_1-2-msys-1.0.11-bin.tar.lzma/download crypt-1.1_1-2-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20findutils/findutils-4.4.2-1/findutils-4.4.2-1-msys-1.0.11-bin.tar.lzma/download findutils-4.4.2-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20flex/flex-2.5.35-1/flex-2.5.35-1-msys-1.0.11-bin.tar.lzma/download flex-2.5.35-1-msys-1.0.11-bin.tar.lzma ]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20gawk/gawk-3.1.7-1/gawk-3.1.7-1-msys-1.0.11-bin.tar.lzma/download gawk-3.1.7-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20gdbm/gdbm-1.8.3-2/gdbm-1.8.3-2-msys-1.0.11-bin.tar.lzma/download gdbm-1.8.3-2-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20gettext/gettext-0.17-1/gettext-0.17-1-msys-1.0.11-bin.tar.lzma/download gettext-0.17-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20grep/grep-2.5.4-1/grep-2.5.4-1-msys-1.0.11-bin.tar.lzma/download grep-2.5.4-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20groff/groff-1.20.1-1/groff-1.20.1-1-msys-1.0.11-bin.tar.lzma/download groff-1.20.1-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20guile/guile-1.8.7-1/guile-1.8.7-1-msys-1.0.11-bin.tar.lzma/download guile-1.8.7-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20gzip/gzip-1.3.12-1/gzip-1.3.12-1-msys-1.0.11-bin.tar.lzma/download gzip-1.3.12-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20bzip2/bzip2-1.0.5-1/libbz2-1.0.5-1-msys-1.0.11-dll-1.tar.gz/download libbz2-1.0.5-1-msys-1.0.11-dll-1.tar.gz]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20crypt/crypt-1.1_1-2/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma/download libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20gdbm/gdbm-1.8.3-2/libgdbm-1.8.3-2-msys-1.0.11-dll-3.tar.lzma/download libgdbm-1.8.3-2-msys-1.0.11-dll-3.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20guile/guile-1.8.7-1/libguile-1.8.7-1-msys-1.0.11-dll-17.tar.lzma/download libguile-1.8.7-1-msys-1.0.11-dll-17.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-msys-1.0.11-bin.tar.lzma/download libiconv-1.13.1-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20libtool/libtool-2.2.7a-1/libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma/download libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20minires/minires-1.02_1-1/libminires-1.02_1-1-msys-1.0.11-dll.tar.lzma/download libminires-1.02_1-1-msys-1.0.11-dll.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20openssl/openssl-0.9.8k-1/libopenssl-0.9.8k-1-msys-1.0.11-dll-098.tar.lzma/download libopenssl-0.9.8k-1-msys-1.0.11-dll-098.tar.lzma ]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20regex/regex-1.20090805-1/libregex-1.20090805-1-msys-1.0.11-dll-1.tar.lzma/download libregex-1.20090805-1-msys-1.0.11-dll-1.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20lndir/lndir-1.0.1-1/lndir-1.0.1-1-msys-1.0.11-bin.tar.gz/download lndir-1.0.1-1-msys-1.0.11-bin.tar.gz]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20m4/m4-1.4.13-1/m4-1.4.13-1-msys-1.0.11-bin.tar.lzma/download m4-1.4.13-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20man/man-1.6f-1/man-1.6f-1-msys-1.0.11-bin.tar.lzma/download man-1.6f-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20minires/minires-1.02_1-1/minires-1.02_1-1-msys-1.0.11-bin.tar.lzma/download minires-1.02_1-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20openssl/openssl-0.9.8k-1/openssl-0.9.8k-1-msys-1.0.11-bin.tar.lzma/download openssl-0.9.8k-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20patch/patch-2.5.9-1/patch-2.5.9-1-msys-1.0.11-bin.tar.lzma/download patch-2.5.9-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20perl/perl-5.6.1_2-1/perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma/download perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20sed/sed-4.2.1-1/sed-4.2.1-1-msys-1.0.11-bin.tar.lzma/download sed-4.2.1-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20tar/tar-1.22-1/tar-1.22-1-msys-1.0.11-bin.tar.lzma/download tar-1.22-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[https://sourceforge.net/projects/mingw/files/MSYS%20vim/vim-7.2-1/vim-7.2-1-msys-1.0.11-bin.tar.lzma/download vim-7.2-1-msys-1.0.11-bin.tar.lzma]&lt;br /&gt;
:[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]&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;GNOME Packages&#039;&#039; install into MSYS local directory &amp;quot;&amp;lt;tt&amp;gt;/local&amp;lt;/tt&amp;gt;&amp;quot; (&amp;lt;tt&amp;gt;C:\Programs\msys\1.0\local\&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;C:\MinGW\local\&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.24/atk_1.24.0-1_win32.zip atk_1.24.0-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.24/atk-dev_1.24.0-1_win32.zip atk-dev_1.24.0-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.8.8-1_win32.zip cairo_1.8.8-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev_1.8.8-1_win32.zip cairo-dev_1.8.8-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat_2.0.1-1_win32.zip expat_2.0.1-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat-dev_2.0.1-1_win32.zip expat-dev_2.0.1-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/GConf/2.22/GConf_2.22.0-2_win32.zip GConf_2.22.0-2_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/GConf/2.22/GConf-dev_2.22.0-2_win32.zip GConf-dev_2.22.0-2_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-0.17.zip gettext-runtime-0.17.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-dev-0.17.zip gettext-runtime-dev-0.17.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-tools-0.17.zip gettext-tools-0.17.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip glib_2.18.4-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib-dev_2.18.4-1_win32.zip glib-dev_2.18.4-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/gnome-common/2.11/gnome-common-2.11.0.zip gnome-common-2.11.0.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.14/gtk+_2.14.7-1_win32.zip gtk+_2.14.7-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.14/gtk+-dev_2.14.7-1_win32.zip gtk+-dev_2.14.7-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip intltool_0.40.4-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/intltool/0.40/intltool-dev_0.40.4-1_win32.zip intltool-dev_0.40.4-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libgnurx-2.5.zip libgnurx-2.5.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libgnurx-dev-2.5.zip libgnurx-dev-2.5.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libiconv-1.9.1.bin.woe32.zip libiconv-1.9.1.bin.woe32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.2.38-1_win32.zip libpng_1.2.38-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng-dev_1.2.38-1_win32.zip libpng-dev_1.2.38-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2_2.7.3-1_win32.zip libxml2_2.7.3-1_win32.zip]&lt;br /&gt;
:[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]&lt;br /&gt;
:[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]&lt;br /&gt;
:[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]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.22/pango_1.22.4-1_win32.zip pango_1.22.4-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.22/pango-dev_1.22.4-1_win32.zip pango-dev_1.22.4-1_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip pkg-config_0.23-3_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip pkg-config-dev_0.23-3_win32.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-1.2.3.zip zlib-1.2.3.zip]&lt;br /&gt;
:[http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev-1.2.3.zip zlib-dev-1.2.3.zip]&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;External Packages&#039;&#039; install into MSYS local directory &amp;quot;&amp;lt;tt&amp;gt;/local&amp;lt;/tt&amp;gt;&amp;quot; (&amp;lt;tt&amp;gt;C:\Programs\msys\1.0\local\&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;C:\MinGW\local\&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:[http://subversion.tigris.org/files/documents/15/46518/svn-win32-1.6.5.zip svn-win32-1.6.5.zip]&lt;br /&gt;
&lt;br /&gt;
=== The Perl Issue ===&lt;br /&gt;
&lt;br /&gt;
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 [http://www.activestate.com/activeperl/ ActiveState&#039;s] for anything that needs a newer version. Install the ActivePerl Perl version. Then edit &amp;lt;tt&amp;gt;/etc/fstab&amp;lt;/tt&amp;gt; in your MSYS enviroment (usually &amp;lt;tt&amp;gt;&amp;lt;/tt&amp;gt;) and add the following line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;c:/programs/perl /opt/perl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
so Perl is mounted to the MSYS environment.&lt;br /&gt;
&lt;br /&gt;
== Configuring your Build Environment == &lt;br /&gt;
&lt;br /&gt;
You might set a few environment variables as follows.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=&amp;quot;/bin:/local/bin:/opt/perl/bin&amp;quot;&lt;br /&gt;
C_INCLUDE_PATH=&amp;quot;/include:/local/include&amp;quot;&lt;br /&gt;
LIBRARY_PATH=&amp;quot;/lib:/local/lib&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Alternatively pass [http://bluefish.svn.sf.net/viewvc/bluefish/trunk/bluefish/config.site/config.msys our config.site script] for MSYS to configure to adjust PATH/CFLAGS/LDFLAGS easily.&lt;br /&gt;
&lt;br /&gt;
Further we need to adjust the macro search path for aclocal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;echo /local/share/aclocal &amp;gt; /share/aclocal/dirlist&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because of a linker bug in the &amp;lt;tt&amp;gt;gconftool-2&amp;lt;/tt&amp;gt; binary add this symbolic link:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ln -s /local/bin/libxml2-2.dll /local/bin/libxml2.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building External Packages ==&lt;br /&gt;
&lt;br /&gt;
To build bluefish we need some libraries not available from the MinGW/MSYS project.&lt;br /&gt;
&lt;br /&gt;
=== Installing Pre-Compiled Packages ===&lt;br /&gt;
&lt;br /&gt;
Shawn Novak provides pre-compiled tarballs, which you just need to extract to &amp;lt;tt&amp;gt;/local&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;Custom Packages&#039;&#039; install into MSYS local directory &amp;quot;&amp;lt;tt&amp;gt;/local&amp;lt;/tt&amp;gt;&amp;quot; (&amp;lt;tt&amp;gt;C:\Programs\msys\1.0\local\&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;C:\MinGW\local\&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:[http://www.muleslow.net/files/mingw/pcre-7.9-bin-MinGW-20090902.tbz2 pcre-7.9-bin-MinGW-20090902.tbz2]&lt;br /&gt;
:[http://www.muleslow.net/files/mingw/aspell-0.60.6-bin-MinGW-20090901.tbz2 aspell-0.60.6-bin-MinGW-20090901.tbz2]&lt;br /&gt;
:[http://www.muleslow.net/files/mingw/enchant-1.5.0-bin-MinGW-20090901.tbz2 enchant-1.5.0-bin-MinGW-20090901.tbz2]&lt;br /&gt;
&lt;br /&gt;
A full set of dictionaries for Aspell 0.60.6 can be found here: [http://www.muleslow.net/files/aspell/lang/ http://www.muleslow.net/files/aspell/lang/]&lt;br /&gt;
&lt;br /&gt;
=== Building and Installing from the Source ===&lt;br /&gt;
&lt;br /&gt;
If you wish to build your own version of these custom packages, these are the configure parameters used for the ones provided.&lt;br /&gt;
&amp;lt;ref&amp;gt;Note by Daniel Leidert: I further pass a short &amp;lt;tt&amp;gt;msys.site&amp;lt;/tt&amp;gt; script with the following content to &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
PATH=&amp;quot;/opt/perl/bin:$PATH&amp;quot;&lt;br /&gt;
prefix=/local&lt;br /&gt;
exec_prefix=&#039;${prefix}&#039;&lt;br /&gt;
enable_shared=yes&lt;br /&gt;
enable_static=no&lt;br /&gt;
enable_maintainer_mode=yes&lt;br /&gt;
LDFLAGS=&amp;quot;-L/local/lib -L/lib&amp;quot;&lt;br /&gt;
CFLAGS=&amp;quot;-g -Wall -O2 -I/local/include -I/include -mwindows&amp;quot;&lt;br /&gt;
CPPFLAGS=&amp;quot;-g -Wall -O2 -I/local/include -I/include&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The configure script is then called as follows together with the switches as shown above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure CONFIG_SITE=msys.site ...configure options see above...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;[ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz Aspell 0.60.6]&lt;br /&gt;
&lt;br /&gt;
In the aspell source add &lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;asc_ctype.hpp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to the includes at &#039;&#039;&#039;common/file_util.cpp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=/local --disable-rpath --enable-win32-relocatable&lt;br /&gt;
&lt;br /&gt;
;[http://www.abisource.com/downloads/enchant/1.5.0/enchant-1.5.0.tar.gz Enchant 1.5.0]&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=/local --enable-aspell --disable-ispell --disable-myspell&lt;br /&gt;
&lt;br /&gt;
;[ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.bz2 PCRE 7.9] (UTF-8 support is a &#039;&#039;&#039;must&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=/local --enable-utf8 --enable-unicode-properties&lt;br /&gt;
&lt;br /&gt;
;[http://ftp.gnome.org/pub/GNOME/sources/gucharmap/2.26/gucharmap-2.26.3.tar.bz2 gucharmap 2.26]&lt;br /&gt;
&lt;br /&gt;
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 [http://www.muleslow.net/files/mingw/patches/gucharmap26.diff gucharmap26.diff] and then configure with the following commands.&lt;br /&gt;
&lt;br /&gt;
 patch -p0 &amp;lt;gucharmap26.diff&lt;br /&gt;
 intltoolize -f&lt;br /&gt;
 libtoolize -f&lt;br /&gt;
 aclocal -I m4/ --force&lt;br /&gt;
 autoheader -f&lt;br /&gt;
 automake -f&lt;br /&gt;
 autoconf -f&lt;br /&gt;
 ./configure --disable-gconf --disable-schemas-install --disable-scrollkeeper&lt;br /&gt;
&lt;br /&gt;
== Building Bluefish ==&lt;br /&gt;
&lt;br /&gt;
Check out the latest code from trunk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;svn checkout https://bluefish.svn.sourceforge.net/svnroot/bluefish/trunk/bluefish&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;tt&amp;gt;autogen.sh&amp;lt;/tt&amp;gt; (uses perl 5.6.1). Then run &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; (make sure, Perl from &amp;lt;tt&amp;gt;/opt/perl/bin&amp;lt;/tt&amp;gt; is used; e.g. adjust PATH) and make:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&lt;br /&gt;
./configure CONFIG_SITE=config.site/config.msys&lt;br /&gt;
make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debugging Bluefish ==&lt;br /&gt;
&lt;br /&gt;
For console debugging output, configure bluefish by passing &#039;--enable-debugging-output&#039; to &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt;. Further CFLAGS should contain &#039;-g&#039; (default, also explicitly set by &amp;lt;tt&amp;gt;config.msys&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
For debugging crashes install the [https://sourceforge.net/projects/mingw/files/GNU%20Source-Level%20Debugger/Current%20Release_%20gdb-5.2.1/gdb-5.2.1-1.exe/download GNU Debugger (GDB)].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the Installer ==&lt;br /&gt;
To compile the installer you&#039;ll need to have [http://www.scratchpaper.com/home Unicode NSIS] with the [http://nsis.sourceforge.net/UnTGZ_plug-in UnTGZ] plugin installed.  You should also have makensis.exe in your path (such as in /opt/nsis).&lt;br /&gt;
&lt;br /&gt;
To build the installer configure and build Bluefish with the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure CONFIG_SITE=win32/config.nsis&lt;br /&gt;
cd win32&lt;br /&gt;
make -f Makefile.mingw installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes and references==&lt;br /&gt;
References: &amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Installing_Bluefish#Installing_Bluefish_on_Windows_XP.2FVista.2F7_.2832_bit.29|Existing win32 builds]]&lt;/div&gt;</summary>
		<author><name>Reisio</name></author>
	</entry>
	<entry>
		<id>https://bfwiki.tellefsen.net//index.php?title=Compiling_Under_Cygwin&amp;diff=1894</id>
		<title>Compiling Under Cygwin</title>
		<link rel="alternate" type="text/html" href="https://bfwiki.tellefsen.net//index.php?title=Compiling_Under_Cygwin&amp;diff=1894"/>
		<updated>2010-07-31T01:09:53Z</updated>

		<summary type="html">&lt;p&gt;Reisio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Existing win32 builds==&lt;br /&gt;
[[Installing_Bluefish#Installing_Bluefish_on_Windows_XP.2FVista.2F7_.2832_bit.29|Installing Bluefish on Windows XP/Vista/7 (32 bit)]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Setting up a Windows Build Environment]]&lt;br /&gt;
&lt;br /&gt;
== Compile Bluefish for Cygwin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cygwin does not provide the necessary GTK/Glib versions to compile Bluefish &amp;gt;= 1.3.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To make sure, you will not miss anything, we start at the beginning - the package selection during the the [http://www.cygwin.com Cygwin ] installation. If you have a running system, it is possible, that you already have packages installed, we will need.&lt;br /&gt;
&lt;br /&gt;
=== Package selection ===&lt;br /&gt;
&lt;br /&gt;
We need the following packages in addition to the packages, Cygwin wants to install by default. If you select a package, Cygwin sometimes will add some packages automatically because of existing dependencies:&lt;br /&gt;
&lt;br /&gt;
* Admin section&lt;br /&gt;
  * cygrunsrv (necessary service, we will need to run Bluefish)&lt;br /&gt;
* Base section (all packages in this section should be installed by default)&lt;br /&gt;
* Devel section&lt;br /&gt;
  * ORBit2-devel&lt;br /&gt;
  * atk-devel&lt;br /&gt;
  * autoconf2.5&lt;br /&gt;
  * automake1.x (what you prefer, I suggest automake1.7)&lt;br /&gt;
  * binutils&lt;br /&gt;
  * bison&lt;br /&gt;
  * catgets&lt;br /&gt;
  * cvs (to checkout Bluefish from CVS)&lt;br /&gt;
  * gcc&lt;br /&gt;
  * gettext&lt;br /&gt;
  * gettext-devel&lt;br /&gt;
  * glib2-devel&lt;br /&gt;
  * gtk2-x11-devel&lt;br /&gt;
  * libbonobo2-devel&lt;br /&gt;
  * libfreetype2-devel&lt;br /&gt;
  * libxml2-devel (libxml2 contains xmllint)&lt;br /&gt;
  * make&lt;br /&gt;
  * minires-devel&lt;br /&gt;
  * openssl-devel&lt;br /&gt;
  * pango-devel&lt;br /&gt;
  * pcre&lt;br /&gt;
  * pcre-devel&lt;br /&gt;
  * pkgconfig&lt;br /&gt;
* Gnome section&lt;br /&gt;
  * gnome-vfs2&lt;br /&gt;
  * libgnome2&lt;br /&gt;
  * libgnomeui2 (optional)&lt;br /&gt;
* Interpreters section&lt;br /&gt;
  * python (optional)&lt;br /&gt;
* Libs section&lt;br /&gt;
  * popt&lt;br /&gt;
* Text section&lt;br /&gt;
  * aspell-dev&lt;br /&gt;
  * aspell-LANG (use a package for your language)&lt;br /&gt;
* Utils section (should all be optional)&lt;br /&gt;
  * bzip2 (if you prefer bzipped2 compressed archives)&lt;br /&gt;
  * desktop-file-utils&lt;br /&gt;
  * gnome-mime-data&lt;br /&gt;
  * shared-mime-info&lt;br /&gt;
* Web section&lt;br /&gt;
  * tidy (contains tidy binary)&lt;br /&gt;
  * wget (to grep a bluefish-source archive)&lt;br /&gt;
* X11&lt;br /&gt;
  * hicolor-icon-theme (optional)&lt;br /&gt;
  * xorg-x11-devel&lt;br /&gt;
  * xorg-x11-base, xorg-x11-bin, xorg-x11-bin-dlls, xorg-x11-fenc, xorg-x11-fnts (should be installed by default)&lt;br /&gt;
  * xorg-x11-fsrv (font-server, really necessary or you will receive errors from fontconfig)&lt;br /&gt;
  * xorg-x11-f100, xorg-x11-fcyr, xorg-x11-fscl (optional, but recommended)&lt;br /&gt;
&lt;br /&gt;
Confirm your selection and Cygwin will install a base system and your selected packages.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and compiling Bluefish ===&lt;br /&gt;
&lt;br /&gt;
The compilation and installation is done in 3 steps (see the generic information in the [http://bluefish.openoffice.nl/manual/ Bluefish manual ]). Start a Cygwin Bash Shell (START &amp;gt; Programs &amp;gt; CYGWIN &amp;gt; Cygwin Bash Shell &#039;&#039;&#039;OR&#039;&#039;&#039; the desktop icon) and create a directory, where you want to put the source:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir bluefish &amp;amp;&amp;amp; cd bluefish&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can use [http://www.gnu.org/software/cvs/]] (see the instructions at [[[[DownloadingFromCVS]] CVS ] about working with CVS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/bluefish login&lt;br /&gt;
$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/bluefish checkout bluefish-gtk2&lt;br /&gt;
$ cd bluefish-gtk2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or [http://www.gnu.org/software/wget/wget.html wget ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget ~http://pkedu.fbt.eitn.wau.nl/~olivier/downloads/bluefish-1.0.1.tar.gz&lt;br /&gt;
$ tar -xzf bluefish-1.0.1.tar.gz&lt;br /&gt;
$ cd bluefish-1.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get a release or snapshot. Now proceed with the compilation and installation (see the Manual for more info about possible configure options):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ autoconf&lt;br /&gt;
$ ./configure ~[[your preferred options]]&lt;br /&gt;
$ make&lt;br /&gt;
$ make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now Bluefish is installed.&lt;br /&gt;
&lt;br /&gt;
=== Starting the &#039;&#039;cygserver&#039;&#039; service ===&lt;br /&gt;
&lt;br /&gt;
Maybe you remember, we installed a package &#039;&#039;cygrunsrv&#039;&#039; in step 1. This service is necessary to ... To start it, first run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ /usr/bin/cygserver-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
saying &#039;&#039;&#039;Yes&#039;&#039;&#039; to install &#039;&#039;cygserver&#039;&#039; as service. Then go to the &#039;&#039;&#039;START&#039;&#039;&#039;-Button of your Windows-box, choose &#039;&#039;&#039;Run&#039;&#039;&#039; (gives you a command-line), type &#039;&#039;&#039;cmd&#039;&#039;&#039; (for older Windows use &#039;&#039;&#039;...&#039;&#039;&#039;) and hit &#039;&#039;&#039;ENTER&#039;&#039;&#039;. Now a Windows-Shell opens. We need to start the service with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\WINDOWS\some\path&amp;gt; net start cygserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output sould tell you, if everything went ok. If you want to stop the service use: &amp;lt;code&amp;gt;net stop cygserver&amp;lt;/code&amp;gt; (see also Start &amp;gt; Control Panel &amp;gt; Computer Administration &amp;gt; Services and Applications &amp;gt; Services : CYGWIN cygserver - set the startup-type for this service to &#039;&#039;Automatic&#039;&#039; and the service will be started with windows). Now you can close the Windows shell.&lt;br /&gt;
&lt;br /&gt;
=== Starting Bluefish ===&lt;br /&gt;
&lt;br /&gt;
If everything went ok, you should now be able to start Bluefish. Start the [http://www.x.org/ X-Server ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ startx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and run Bluefish with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ &#039;&#039;&#039;CYGWIN=server&#039;&#039;&#039; /usr/bin/bluefish.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path and the executable-name depend on the configure options you used during compilation. The shown example used &amp;lt;code&amp;gt;./configure --prefix&amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; for compilation. To not always have to type &amp;lt;code&amp;gt;CYGWIN&amp;lt;/code&amp;gt;server&amp;lt;/code&amp;gt;, export the [http://www.cygwin.com/cygwin-ug-net/using-cygwinenv.html CYGWIN environment variable ] with your &amp;lt;code&amp;gt;.bash_profile&amp;lt;/code&amp;gt;. Therefor add the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CYGWIN=server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &amp;lt;code&amp;gt;/home/your&#039;&#039;username/.bash&#039;&#039;profile&amp;lt;/code&amp;gt; (sorry, the tilde sign cannot be shown in this Wiki).&lt;br /&gt;
&lt;br /&gt;
==== Compiling bluefish cvs on cygwin issues ====&lt;br /&gt;
&lt;br /&gt;
Some various answers I&#039;ve collected so far to get bluefish cvs running&lt;br /&gt;
on win32&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
From: Todd Fisher &amp;lt;toddf@simosoftware.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   You&#039;re running into a problem resulting in the difference between two&lt;br /&gt;
compilers.  In linux by default all symbols are public (i.e. exposed) in&lt;br /&gt;
win32 it&#039;s the opposite, all symbols are private (i.e. hidden).  With&lt;br /&gt;
msvc compiler you can use the &#039;&#039;&#039;&#039;declspec(dllexport) to expose symbols to&lt;br /&gt;
the linker.  With GCC you can use a combination of &#039;&#039;&#039;&#039;attribute&#039;&#039;&#039;&#039;&lt;br /&gt;
((visibility(\&amp;quot;hidden\&amp;quot;))) for hidding symbols and &#039;&#039;&#039;&#039;attribute&#039;&#039;&#039;&#039;&lt;br /&gt;
((visibility(\&amp;quot;default\&amp;quot;))) for exposing the symbols.  A good starting&lt;br /&gt;
place for understanding how this works in GCC since it is a new feature&lt;br /&gt;
is to read the wiki here: http://gcc.gnu.org/wiki/Visibility&lt;br /&gt;
&lt;br /&gt;
Now, on to your exact issue.  You say the symbols are from the main&lt;br /&gt;
application.  I assume you mean you have a setup like the following:&lt;br /&gt;
&lt;br /&gt;
main.c (depends on symbols from module.c)&lt;br /&gt;
module.c (depends on symbols from main.c)&lt;br /&gt;
&lt;br /&gt;
To fix your problem you&#039;ll want to make module.c not have dependencies&lt;br /&gt;
on main.c . Or you&#039;ll have to force symbols to be exported from main.c&lt;br /&gt;
which I believe you can do by using the /DLL flag for msvc... not sure&lt;br /&gt;
about gcc in this case.&lt;br /&gt;
-----------------&lt;br /&gt;
&lt;br /&gt;
On Sun, 2005-10-30 at 19:24 +0100, David Necas (Yeti) wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Oct 30, 2005 at 05:43:21PM +0100, Tobias Kipfelsberger wrote:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; I have a plugin which is registered and loaded with the g_module&lt;br /&gt;
 functions.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; So far so good everything works find.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; But how can i let the modul access a function of the coreapplication?&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Example:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in [[CoreApplication]].h:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; G&#039;&#039;MODULE&#039;&#039;EXPORT void&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; set[[CoreMenuAppbarText]] (const gchar* text)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; {}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in plugin.c:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; #include \&amp;quot;[[CoreApplication]].h\&amp;quot;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; void&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; xyz ()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; {&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;      set[[CoreMenuAppbarText]](\&amp;quot;test\&amp;quot;);&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; }&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; as i execute the programm... i always get a undefined symbol error.&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; You have to link the program with -export-dynamic (either as&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; ld option, or libtool link option if you use libtool).&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is needed because by default the symbols defined in the main app&lt;br /&gt;
are not made visible to the plugins. And the OP should be warned there&lt;br /&gt;
is a good reason for the default.&lt;br /&gt;
&lt;br /&gt;
If badly written plugins can call to the main application code they can&lt;br /&gt;
easily make it look to the user as if &#039;&#039;&#039;your&#039;&#039;&#039; app code is broken. You&lt;br /&gt;
should be prepared to handle the resulting support requests. Note, for&lt;br /&gt;
example, the way the linux kernel team refuse to support bug reports&lt;br /&gt;
from anyone running a \&amp;quot;tainted\&amp;quot; kernel.&lt;br /&gt;
&lt;br /&gt;
If there is a well defined API you do want plugins to access, you can&lt;br /&gt;
place the relevant code into a shared object of its own. Then you don&#039;t&lt;br /&gt;
need to do anything special to protect it from Murphy&#039;s Law, since only&lt;br /&gt;
the parts deliberately exposed can be accessed easily.&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
From: Tor Lillqvist &amp;lt;tml@iki.fi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, mark the functions in the sources for the main .exe that are to&lt;br /&gt;
be used by other modules with G&#039;&#039;MODULE&#039;&#039;EXPORT.&lt;br /&gt;
&lt;br /&gt;
Then you must decide whether you want to 1) restrict your plugins to&lt;br /&gt;
work only with an executable with the &#039;&#039;&#039;exact&#039;&#039;&#039; name you specify, or&lt;br /&gt;
whether you want it to be 2) more flexible and work even if you happen&lt;br /&gt;
to rename the main executable.&lt;br /&gt;
&lt;br /&gt;
In case 1), create an import library for the .exe using dlltool, and&lt;br /&gt;
link the plugin against that import library.&lt;br /&gt;
&lt;br /&gt;
In case 2), use g&#039;&#039;module&#039;&#039;open(NULL, 0) to get a GModule handle for the&lt;br /&gt;
main executable, and the g&#039;&#039;module&#039;&#039;find() the function from it, and&lt;br /&gt;
call it.&lt;br /&gt;
----------------------&lt;br /&gt;
From: Tor Lillqvist &amp;lt;tml@iki.fi&amp;gt;&lt;br /&gt;
Iago Rubio writes:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; It seems to me that&#039;s using gcc and GNU tools but ...&lt;br /&gt;
&amp;gt;&amp;gt; How can it be done with the MSVC compiler ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use lib.exe instead of dlltool.&lt;/div&gt;</summary>
		<author><name>Reisio</name></author>
	</entry>
	<entry>
		<id>https://bfwiki.tellefsen.net//index.php?title=Installing_Bluefish&amp;diff=1893</id>
		<title>Installing Bluefish</title>
		<link rel="alternate" type="text/html" href="https://bfwiki.tellefsen.net//index.php?title=Installing_Bluefish&amp;diff=1893"/>
		<updated>2010-07-30T22:14:58Z</updated>

		<summary type="html">&lt;p&gt;Reisio: /* Installing Bluefish on Gentoo */ 2.0.1 is in, but not &amp;quot;stable&amp;quot; for Gentoo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing Bluefish on Debian GNU/Linux 5.0 (Lenny) =&lt;br /&gt;
&lt;br /&gt;
=== Installing 1.0.x (old stable) ===&lt;br /&gt;
&lt;br /&gt;
use&lt;br /&gt;
 apt-get install bluefish&lt;br /&gt;
 aptitude install bluefish&lt;br /&gt;
or synaptic or any other package manager&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.0 (current stable) ===&lt;br /&gt;
&lt;br /&gt;
add the following line, that fits your Debian version, to  /etc/apt/sources.list&lt;br /&gt;
 deb     http://debian.wgdd.de/debian lenny main contrib non-free&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; put a snippet into  /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://debian.wgdd.de/stuff/debian.wgdd.de_lenny.list -N -P /etc/apt/sources.list.d&lt;br /&gt;
&lt;br /&gt;
Then install the repository cryptographic key and Bluefish:&lt;br /&gt;
 apt-get install wgdd-archive-keyring&lt;br /&gt;
 apt-get install bluefish&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on Debian GNU/Linux Sid or Squeeze =&lt;br /&gt;
&lt;br /&gt;
=== Installing 1.0.x (old stable) ===&lt;br /&gt;
&lt;br /&gt;
use&lt;br /&gt;
 apt-get install bluefish&lt;br /&gt;
 aptitude install bluefish&lt;br /&gt;
or synaptic or any other package manager&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.0  ===&lt;br /&gt;
&lt;br /&gt;
add the following line to  /etc/apt/sources.list&lt;br /&gt;
 deb     http://debian.wgdd.de/debian sid main contrib non-free&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; put a snippet into  /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://debian.wgdd.de/stuff/debian.wgdd.de_sid.list -N -P /etc/apt/sources.list.d&lt;br /&gt;
&lt;br /&gt;
Then install the repository cryptographic key and Bluefish:&lt;br /&gt;
 apt-get install wgdd-archive-keyring&lt;br /&gt;
 apt-get install bluefish&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.1 in Sid (current stable) ===&lt;br /&gt;
version 2.0.1 is now in [http://packages.debian.org/sid/bluefish Debian], run:&lt;br /&gt;
 apt-get install bluefish&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on Ubuntu Linux =&lt;br /&gt;
&lt;br /&gt;
=== Installing 1.0.x (old stable) ===&lt;br /&gt;
&lt;br /&gt;
 apt-get install bluefish&lt;br /&gt;
&lt;br /&gt;
or any other frontend for the package manager such as aptitude, synaptic or simply &amp;quot;add / remove programs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.0 (current stable) on Ubuntu 8.04 ===&lt;br /&gt;
&lt;br /&gt;
Binary packages for 8.04 are not in a repository. Download the packages from:&lt;br /&gt;
http://www.bennewitz.com/bluefish/stable/binaries/ubuntu_8.04/&lt;br /&gt;
and install them with &lt;br /&gt;
 sudo dpkg -i bluefish*.deb&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.0 (current stable) on Ubuntu 9.04 or newer ===&lt;br /&gt;
&lt;br /&gt;
add the following line to  /etc/apt/sources.list&lt;br /&gt;
 deb     [http://debian.wgdd.de/debian http://debian.wgdd.de/ubuntu] jaunty main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; put a snippet into  /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://debian.wgdd.de/stuff/debian.wgdd.de_ubuntu.list -N -P /etc/apt/sources.list.d&lt;br /&gt;
&lt;br /&gt;
Run updates, to pick up the newly available options&lt;br /&gt;
 apt-get update&lt;br /&gt;
You may see errors at this point, because you&#039;ve not yet installed the cryptographic key, but that&#039;s OK as you&#039;re about to do that&lt;br /&gt;
&lt;br /&gt;
Then install the repository cryptographic key and Bluefish:&lt;br /&gt;
 apt-get install wgdd-archive-keyring&lt;br /&gt;
 apt-get install bluefish&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on Fedora Linux =&lt;br /&gt;
&lt;br /&gt;
=== Installing 1.0.x ===&lt;br /&gt;
&lt;br /&gt;
 yum install bluefish&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.0 or 2.0.1 (current stable) ===&lt;br /&gt;
To get latest updates use the provided yum enabled repository...&lt;br /&gt;
&lt;br /&gt;
 http://www.bennewitz.com/rpms/endurs_repo_i686-release-1.0-9.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
As an alternative solution you can download the rpm from...&lt;br /&gt;
 http://www.bennewitz.com/bluefish/stable/binaries/fedora13/&lt;br /&gt;
...manually and execute: &amp;lt;tt&amp;gt;sudo yum localinstall &amp;lt;path/to/downloaded/bluefish*.rpm&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on AltLinux =&lt;br /&gt;
&lt;br /&gt;
=== Installing 1.0 ===&lt;br /&gt;
Bluefish can be installed on Alt Linux 3.0, 4.0, 4.1, p5, 5.1 or Sisyphus.&lt;br /&gt;
&lt;br /&gt;
The versions provided by our apt servers are:&amp;lt;br /&amp;gt;&lt;br /&gt;
* Alt Linux 3.0 - 1.0&lt;br /&gt;
* Alt Linux 4.0 - 1.0.5&lt;br /&gt;
* Alt Linux 4.1 - 1.0.7&lt;br /&gt;
* Alt Linux p5  - 1.0.7&lt;br /&gt;
* Alt Linux 5.1 - 1.0.7&lt;br /&gt;
* Alt Linux Sisyphus - 1.0.7&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
To install use:&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get install bluefish&amp;lt;/tt&amp;gt;&lt;br /&gt;
or use synaptic or any other package manager.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Alt Linux Sisyphus also provides 1.3.8  &#039;&#039;&#039;(bluefish-unstable)&#039;&#039;&#039;.&lt;br /&gt;
To install do:&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get install bluefish-unstable&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.0 (current stable) ===&lt;br /&gt;
Bluefish 2.0.0 currently is not in Alt Linux repos, but will soon appear in Sisyphus.&amp;lt;br /&amp;gt;&lt;br /&gt;
For the moment, to install it you have to:&lt;br /&gt;
&lt;br /&gt;
 wget http://alt.u-nix.eu.org/bluefish/bluefish-2.0.0rc3-alt1.i586.rpm&lt;br /&gt;
 wget http://alt.u-nix.eu.org/bluefish/bluefish-common-2.0.0rc3-alt1.noarch.rpm&lt;br /&gt;
 rpm -i bluefish-common-2.0.0rc3-alt1.noarch.rpm bluefish-2.0.0rc3-alt1.i586.rpm&lt;br /&gt;
&lt;br /&gt;
If you want to build it on your system, just do:&lt;br /&gt;
&lt;br /&gt;
 wget http://alt.u-nix.eu.org/bluefish/bluefish-2.0.0rc3-alt1.src.rpm&lt;br /&gt;
 rpm -i bluefish-2.0.0rc3-alt1.src.rpm&lt;br /&gt;
 cd /usr/src/RPM/SPECS&lt;br /&gt;
 rpmbuild -bb bluefish-2.0.0rc3.spec&lt;br /&gt;
 cd /usr/src/RPM/RPMS/noarch&lt;br /&gt;
 rpm -i bluefish-common-2.0.0rc3-alt1.noarch.rpm&lt;br /&gt;
For i586 do:&lt;br /&gt;
 cd /usr/src/RPM/RPMS/i586&lt;br /&gt;
 rpm -i bluefish-2.0.0rc3-alt1.i586.rpm&lt;br /&gt;
For x86_64 do:&lt;br /&gt;
 cd x86_64&lt;br /&gt;
 rpm -i bluefish-2.0.0rc3-alt1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
=Installing [http://packages.gentoo.org/package/bluefish Bluefish on Gentoo]=&lt;br /&gt;
&lt;br /&gt;
==Latest Gentoo stable==&lt;br /&gt;
&lt;br /&gt;
 emerge bluefish&lt;br /&gt;
&lt;br /&gt;
==Latest available==&lt;br /&gt;
&lt;br /&gt;
 echo &#039;app-editors/bluefish&#039; &amp;gt;&amp;gt; /etc/portage/package.keywords &amp;amp;&amp;amp; emerge bluefish&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on Slackware =&lt;br /&gt;
; Kwick n dirty method&lt;br /&gt;
: &amp;lt;tt&amp;gt;$ ./configure &amp;amp;&amp;amp; make&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;# make install&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &#039;&#039;enjoy you are in Slackware ;)&#039;&#039;&lt;br /&gt;
; But please consider to use a Slackbuild: (you know why)&lt;br /&gt;
; Dependencies&lt;br /&gt;
: Bluefish depends on Gnome:&lt;br /&gt;
: consider to install some &#039;&#039;gnome minimal&#039;&#039;.&lt;br /&gt;
: Have a look at dependencies file at third party slackbuilders,&lt;br /&gt;
: have a look at ./configure issues.&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.1 (current stable) ===&lt;br /&gt;
Bluefish needs [http://ftp.gnome.org/pub/GNOME/sources/gvfs/ gvfs] if you want to work with remote files.&lt;br /&gt;
: GVFS is work in progress in Slackware, you need to have glib 2.18 (Slack 13.0); GSB (2.28.2) uses glib2 2.22.4 and gvfs 1.4.3.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use your bluefish.SlackBuild 1.0 for Bluefish 2.&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on OpenSolaris =&lt;br /&gt;
&lt;br /&gt;
=== Installing 1.0.x (old stable) ===&lt;br /&gt;
search for bluefish in the package manager, select and click apply.&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.1 (current stable) ===&lt;br /&gt;
A binary package is not yet available in OpenSolaris, you have to compile from source, see [[Compiling_Bluefish_from_source]].&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on Mac OS X =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.1 (current stable) ===&lt;br /&gt;
==== Using Macports ====&lt;br /&gt;
Install [http://www.macports.org Macports].&lt;br /&gt;
&lt;br /&gt;
Run from Terminal.app&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo port install bluefish&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Native (no X11) ====&lt;br /&gt;
Download Bluefish-2.0.1.dmg from http://www.bennewitz.com/bluefish/stable/binaries/macosx/, open it and drag the bluefish icon onto Applications.&lt;br /&gt;
&lt;br /&gt;
= Installing Bluefish on Windows XP/Vista/7 (32 bit) =&lt;br /&gt;
&lt;br /&gt;
=== Installing 2.0.1 (current stable) ===&lt;br /&gt;
download Bluefish-2.0.1-setup.exe from the main download server &lt;br /&gt;
http://www.bennewitz.com/bluefish/stable/binaries/win32/&lt;br /&gt;
&lt;br /&gt;
This installer needs internet access because it will download gtk library and the spell checking dictionaries for you.&lt;/div&gt;</summary>
		<author><name>Reisio</name></author>
	</entry>
</feed>