Navigation

2 Gtk‎ > ‎1 Installation‎ > ‎Windows‎ > ‎

Build Instructions for MinGW

My approach uses Debian's MinGW cross-compiler. If you use a different MinGW build environment, you should still be able to grok this. Some Linux distributions such as Fedora and OpenSUSE even have MinGW package repositories.

 

An example, beta-quality release of Bibledit 3.7.48 using this technique can be found here.

 

Click here to download Windows Installer MSI package for Bibledit 3.7.48.

 

Release Notes:

  • Requires Windows XP or later. Might work on 2000, but some functionality might not.
  • You must install msysgit and place the Git tools in the system path. Git, a version control system, is required for proper function of Bibledit.
  • You must install Bibledit to a NTFS partition. FAT type partitions are experimental. You must use PortableGit if you use FAT. This means that installing to a typical (FAT) USB stick is probably not going to work.
  • Windows Outpost is required for printing, web browsing, and BibleWorks integration.
  • BibleWorks integration requires version 7 or greater
  • Printing requires a PDF reader (Acrobat 9 tested).
  • SIL/Graphite (NRSI) fonts are supported using the Graphite backend to Pango (pango-graphite). If there is demand, future builds will include this by default.

Known Issues:

  • Context-sensitive help buttons are broken in this build. It might even crash Bibledit.
  • The startup script has a bug that prevents proper startup sometimes when you restart the app.

 

This beta release is quite a bit more stable than previous. Give it a try! Backup early and often. Please use this on production projects, now that the git integration and USB/remote repositories is functional. As with all Free Software, it comes with no warranty for suitably for any purpose.

 

Without fuirther ado, here's how to build this using Debian or Ubuntu: 

  1. apt-get install mingw32
  2. Get mingw-configure to make the configuration for cross-compiling much easier, however, for some reason, the Makefiles sometimes call pkg-config themselves, so they end up getting the build system's config and not the cross-config. You might need to temporarily make your pkg-config point to your win32 build root. (http://live.gnome.org/Cross%20compiling%20GTK%2B%20for%20Win32)
  3. Create a cross-compile root directory and unpack all of the binaries listed below into it. Set the ROOT environment variable to it.
  4. SQLite needs a pkg-config file. Copied mine and inserted into $ROOT/lib/pkgconfig
  5. MinGW seems to have a broken realloc in their cstdlib. Based on some possibly bad advice, I commented it out ;)
  6. OpenSUSE/MinGW WebKit comes with RPM files that are designed for the OpenSUSE MinGW build system. Either use OpenSUSE, or use the alien command to convert the RPMs to tar.gz, using the '-t' flag of alien. Once done, extract the relevant subtree into your ROOT. You will need to modify the OpenSUSE pkg-config files to work correctly.
  7. You need to have a native pkg-config, but /usr/bin/pkg-config needs to report the cross-compiled pkg-config state. Suggestion: Point /usr/bin/pkg-config at the custom pkg-config script created by mingw-configure, and point that custom pkg-config script to /usr/bin/pkg-config.dist
  8. The prebuilt MinGW libxml2 doesn't have a xml2-config. Took my system's copy and changed its prefix, placed it in the $ROOT/bin directory. Ran configure like so:
    • XML2_CONFIG=$ROOT/bin/xml2-config ../mingw-configure --prefix=$ROOT
    • Unfortunately, /usr/bin/xml2-config is still hardcoded in places, so I did a hack similar to the pkg-config one, where /usr/bin/xml2-config points to $ROOT/bin/xml2-config  ... In light of these 2 issues, it might make sense to add $ROOT/bin as a prefix in your $PATH.
  9. Unless you want to cross-compile practically the entire known Gtk+ GNOME universe, grab the following binaries from http://ftp.gnome.org/pub/gnome/binaries/win32 (some of them are under the dependencies directory):

    enchant-1.4.2-tml.zip

    enchant-dev-1.4.2-tml.zip

    fontconfig-2.4.2-tml-20071015.zip

    fontconfig-dev-2.4.2-tml-20071015.zip

    freetype-2.3.6.zip

    freetype-dev-2.3.6.zip

    GConf_2.22.0-2_win32.zip

    GConf-dev_2.22.0-2_win32.zip

    gettext-runtime-0.17-1.zip

    gettext-runtime-dev-0.17-1.zip

    gnome-vfs_2.24.0-1_win32.zip

    gnome-vfs-dev_2.24.0-1_win32.zip

    gtk+-bundle_2.14.7-20090110_win32.zip

    gtkhtml-3.18.2.zip

    gtkhtml-dev-3.18.2.zip

    gtksourceview-2.4.1.zip

    gtksourceview-dev-2.4.1.zip

    libart_lgpl-2.3.20.zip

    libart_lgpl-dev-2.3.20.zip

    libbonobo_2.24.0-1_win32.zip

    libbonobo-dev_2.24.0-1_win32.zip

    libbonoboui_2.24.0-1_win32.zip

    libbonoboui-dev_2.24.0-1_win32.zip

    expat_2.0.1-1_win32.zip

    libglade_2.6.3-1_win32.zip

    libglade-dev_2.6.3-1_win32.zip

    libgnome_2.24.1-1_win32.zip

    libgnomecanvas-2.20.1.zip

    libgnomecanvas-dev-2.20.1.zip

    libgnome-dev_2.24.1-1_win32.zip

    libgnomeui-2.22.1.zip

    libgnomeui-dev-2.22.1.zip

    libgnurx-2.5.zip

    libiconv-1.9.1.bin.woe32.zip

    libIDL_0.8.11-1_win32.zip

    libxml2-2.6.27.zip

    libxml2-dev-2.6.27.zip

    ORBit2_2.14.16-1_win32.zip

    ORBit2-dev_2.14.16-1_win32.zip

    popt-1.10.2-tml-20050828.zip

    popt-dev-1.10.2-tml-20050828.zip

  10. WebKit is required also, and our friends at OpenSUSE have built it for us:

    http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Factory/noarch/

    From there, grab:

    mingw32-libwebkit-1.1.7.noarch.rpm

    mingw32-libwebkit-devel-1.1.7.noarch.rpm

    mingw32-gnutls-2.6.6.noarch.rpm

    mingw32-libgnutls-2.6.6.noarch.rpm

    mingw32-libgnutls-devel-2.6.6.noarch.rpm

    mingw32-libsoup-2.26.2.noarch.rpm

    mingw32-libsoup-devel-2.26.2.noarch.rpm

  11. Since GNOME and OpenSUSE together aren't quite the entire universe, grab these too from their respective locations, or have even more fun compiling:

    sqlite-amalgamation-3_6_10.zip (just the headers) - from http://www.sqlite.org/download.html

    sqlitedll-3_6_10.zip - from http://www.sqlite.org/download.html

    aspell-w32-0.50.3.zip - from http://ftp.gnu.org/gnu/aspell/w32

    Git-1.6.3.2-preview20090608.exe - from http://code.google.com/p/msysgit/

    zip232xN.zip (zip.exe) - from http://www.info-zip.org/

    unz552xN.exe (unzip.exe) - from http://www.info-zip.org/

    diffutils-2.8.7-1-bin.zip - from http://gnuwin32.sourceforge.net

    patch-2.5.9-7-bin.zip - from http://gnuwin32.sourceforge.net

  12. Some debugging tools are included:

    GDB for MinGW - gdb-6.8-mingw-3.tar.bz2 - http://mingw.org

    Dependency Walker - depends22_x86.zip - http://dependencywalker.com/

    Development builds include a copy of gprof from MinGW binutils.

  13. Finally, it goes without saying that anything that isn't Bibledit is copyright its respective holder. Please check the README and COPYING files in the above packages for redistribution and licensing details.
Comments