Gnomesword for Windows

From CrossWire Bible Society

Revision as of 14:38, 4 December 2009 by David Haslam (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Read First

While almost everything on this page remains accurate, and is highly useful for a reference, this will no longer lead to a successful build against the 2.4.x branch. The biggest reason is the addition of using the ImageMagick api. Hopefully soon there will be a much smoother process for all of this.

Tools

For general tools, here are some recommendations:

     http://subversion.tigris.org/files/documents/15/44049/Setup-Subversion-1.5.3.msi

for windows explorer integrated, try this:

     http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi?download
     emacs: http://ftp.gnu.org/gnu/emacs/windows/emacs-22.3-bin-i386.zip
     notepad++: http://downloads.sourceforge.net/notepad-plus/npp.5.1.1.Installer.exe?use_mirror=
     http://gnuwin32.sourceforge.net/packages/unzip.htm

for windows gui (or command line), try 7zip:

     http://www.7-zip.org/
     http://gnuwin32.sourceforge.net/packages/wget.htm
     http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=20507&release_id=594520
     http://downloads.sourceforge.net/console/Console-2.00b141-Beta.zip
     C:\msys\1.0\bin\sh --login

Setting up MinGW

A tutorial for how to set up a MinGW build environment.

     http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=240780
     http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963
     http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe?modtime=1041430674&big_mirror=1
     http://downloads.sourceforge.net/mingw/m4-1.4.7-MSYS.tar.bz2?modtime=1162303978&big_mirror=1
     http://strawberryperl.com/
     export INTLTOOL_PERL=/c/strawberry/perl/bin/perl

Setting up Utilities

For all the utilities, when you run configure do it with --prefix=/mingw

create a directory c:\msys\1.0\dev
add this line to your profile
     export PATH=$PATH:/dev/bin:/c/mingw/bin    
unpack everything there
you need these utilities at this point:
all these are from http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/
 pkg-config: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-0.23-2.zip
 gettext: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-0.14.5.zip
 gettext-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-dev-0.14.5.zip
 gettext-runtime: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-0.17.zip
 gettext-runtime-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-dev-0.17.zip
 glib: http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.3-1_win32.zip
     export PKG_CONFIG_PATH=/dev/lib/pkgconfig
     http://ftp.gnu.org/gnu/autoconf/
     http://ftp.gnu.org/gnu/automake/

Compiling Sword

     http://curl.haxx.se/download.html
     (direct link) http://www.gknw.net/mirror/curl/win32/curl-7.19.0-devel-mingw32.zip
     everything in the zip file needs to be extracted to the appropriate directory under /dev
     you will need to make a directory /dev/lib/pkgconfig and put libcurl.pc there
     find curl-config script from linux and copy it to /mingw/bin
     http://downloads.sourceforge.net/clucene/clucene-core-0.9.21b.zip
     ./configure --prefix=/dev
     make
     make install
     use libcurl, not ftplib
     you will have to manually alter makefile to link against regex (do this in sword-1.5.11/lib/Makefile, line "#am__objects_3 = regex.lo", take out "#")
     compiling utilities is broken with mingw
     you do not need to compile with icu
     you will need to add -lz to sword-1.5.11/Makefile on the line "LIBS"

Download Gnome Libraries

     for everything, you need the normal and developer package
     atk: http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.24/atk_1.24.0-1_win32.zip
     atk-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.24/atk-dev_1.24.0-1_win32.zip      
     cairo: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.8.0-1_win32.zip
     cairo-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev_1.8.0-1_win32.zip
     fontconfig: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig-2.4.2-tml-20071015.zip
     fontconfig-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig-dev-2.4.2-tml-20071015.zip
     freetype: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype-2.3.6.zip
     freetype-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype-dev-2.3.6.zip
     gail: http://ftp.gnome.org/pub/gnome/binaries/win32/gail/1.22/gail-1.22.0.zip
     gail-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/gail/1.22/gail-dev-1.22.0.zip
     gconf: http://ftp.gnome.org/pub/gnome/binaries/win32/GConf/2.22/GConf-2.22.0.zip
     gconf-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/GConf/2.22/GConf-dev-2.22.0.zip
     glib-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib-dev_2.18.3-1_win32.zip
     gnome-common: http://ftp.gnome.org/pub/gnome/binaries/win32/gnome-common/2.11/gnome-common-2.11.0.zip
     gnome-doc-utils: http://ftp.gnome.org/pub/gnome/binaries/win32/gnome-doc-utils/0.12/gnome-doc-utils-0.12.0.zip
     gnome-vfs: http://ftp.gnome.org/pub/gnome/binaries/win32/gnome-vfs/2.24/gnome-vfs_2.24.0-1_win32.zip
     gnome-vfs-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/gnome-vfs/2.24/gnome-vfs-dev_2.24.0-1_win32.zip
     gtk+: http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.14/gtk+_2.14.5-1_win32.zip
     gtk+-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.14/gtk+-dev_2.14.5-1_win32.zip
     gtkhtml-3.18: http://ftp.gnome.org/pub/gnome/binaries/win32/gtkhtml/3.18/gtkhtml-3.18.2.zip
     gtkhtml-3.18-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/gtkhtml/3.18/gtkhtml-dev-3.18.2.zip
     intltool: http://ftp.gnome.org/pub/gnome/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
     intltool-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/intltool/0.40/intltool-dev_0.40.4-1_win32.zip
     libart: http://ftp.gnome.org/pub/gnome/binaries/win32/libart_lgpl/2.3/libart_lgpl-2.3.20.zip
     libart-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libart_lgpl/2.3/libart_lgpl-dev-2.3.20.zip    
     libbonobo: http://ftp.gnome.org/pub/gnome/binaries/win32/libbonobo/2.24/libbonobo_2.24.0-1_win32.zip
     libbonobo-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libbonobo/2.24/libbonobo-dev_2.24.0-1_win32.zip
     libbonoboui: http://ftp.gnome.org/pub/gnome/binaries/win32/libbonoboui/2.24/libbonoboui_2.24.0-1_win32.zip
     libbonoboui-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libbonoboui/2.24/libbonoboui-dev_2.24.0-1_win32.zip
     libffi: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libffi_3.0.6-1_win32.zip
     libffi-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libffi-dev_3.0.6-1_win32.zip
     libglade: http://ftp.gnome.org/pub/gnome/binaries/win32/libglade/2.6/libglade_2.6.3-1_win32.zip
     libglade-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libglade/2.6/libglade-dev_2.6.3-1_win32.zip
     libgnome: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnome/2.24/libgnome_2.24.1-1_win32.zip
     libgnome-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnome/2.24/libgnome-dev_2.24.1-1_win32.zip
     libgnomecanvas: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomecanvas/2.20/libgnomecanvas-2.20.1.zip
     libgnomecanvas-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomecanvas/2.20/libgnomecanvas-dev-2.20.1.zip
     libgnomeprint: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomeprint/2.12/libgnomeprint-2.12.1.zip
     libgnomeprint-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomeprint/2.12/libgnomeprint-dev-2.12.1.zip
     libgnomeprintui: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomeprintui/2.12/libgnomeprintui-2.12.1.zip
     libgnomeprintui-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomeprintui/2.12/libgnomeprintui-dev-2.12.1.zip
     libiconv: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libiconv-1.9.1.bin.woe32.zip
     libIDL: http://ftp.gnome.org/pub/gnome/binaries/win32/libIDL/0.8/libIDL_0.8.11-1_win32.zip
     libIDL-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libIDL/0.8/libIDL-dev_0.8.11-1_win32.zip
     libpng: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.2.32-1_win32.zip
     libpng-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng-dev_1.2.32-1_win32.zip
     libxml2: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2-2.6.27.zip
     libxml2-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2-dev-2.6.27.zip
     orbit: http://ftp.gnome.org/pub/gnome/binaries/win32/ORBit2/2.14/ORBit2_2.14.16-1_win32.zip
     orbit-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/ORBit2/2.14/ORBit2-dev_2.14.16-1_win32.zip
     popt: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/popt-1.10.2-tml-20050828.zip
     popt-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/popt-dev-1.10.2-tml-20050828.zip
     pthreads: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pthreads-win32-2.7.0.zip
     pthreads-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pthreads-win32-2.7.0.zip
     zlib: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-1.2.3.zip
     zlib-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev-1.2.3.zip
     pango: http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.22/pango_1.22.2-1_win32.zip
     pango-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.22/pango-dev_1.22.2-1_win32.zip
     expat: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat-2.0.0.zip
     gnurx: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libgnurx-2.5.zip
     gnurx-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libgnurx-dev-2.5.zip
     libgnomeui: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomeui/2.22/libgnomeui-2.22.1.zip
     libgnomeui-dev: http://ftp.gnome.org/pub/gnome/binaries/win32/libgnomeui/2.22/libgnomeui-dev-2.22.1.zip
     libjpeg: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libjpeg-6b-4.zip

xml2po and themes

     install python 2.5 http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi
     ensure that python is on your path (windows environment variable)
     edit /dev/bin/xml2po shebang line to just say #! python
     install python libxml2 from here: http://users.skynet.be/sbi/libxml-python/binaries/libxml2-python-2.6.27.win32-py2.5.exe
     You will need this version of iconv http://gnuwin32.sourceforge.net/packages/libiconv.htm.
     http://ftp.gnome.org/pub/gnome/binaries/win32/gnome-icon-theme/2.24/gnome-icon-theme_2.24.0-1_win32.zip
     You may need to rename share/icons/gnome/ to share/icons/hicolor. This theme is required by the studypad

Compile Gnomesword

     find the line "if test x$SCROLLKEEPER_CONFIG = xno; then
     comment this line and the next five lines, including this one:
     SCROLLKEEPER_BUILD_REQUIRED=0.3.5
     #! /bin/sh
     ./configure --enable-gtkhtml --disable-scrollkeeper --enable-maintainer-mode --prefix=/dev
     sed 's/SWORD_LIBS = -Lc:\/msys\/1.0\/dev\/lib -lsword -lz/SWORD_LIBS = [forced linebreak; remove]
-Lc:\/msys\/1.0\/dev\/lib -lsword \/dev\/bin\/libcurl.dll \/dev\/lib\/libclucene.a -lz/' src/gnome2/Makefile > src/gnome2/Makefile2
     cp src/gnome2/Makefile2 src/gnome2/Makefile
     rm src/gnome2/Makefile2

To get the windows XP look, go to /dev/share/themes/MS-Windows/gtk-2.0 copy gtkrc to /dev/etc/gtk-2.0/gtkrc

     in src/gnome2/Makefile, find GNOME_LIBS and add -mwindows to the end
     start gnomesword %*

This will very briefly flash a console window which disappears immediately. Because gnucash does this as well, I think that we will probably have to include this file with the installer and link to it from the start menu.

Moving Gnomesword to its own directory

I really don't know that everything here is necessary. Some of it definitely is, some perhaps not.

Helpful links

  1. http://live.gnome.org/Planner/Windows
  2. http://www.go-evolution.org/Building_Evolution_on_Windows
  3. http://www.mingw.org/wiki/msys

Articles found so far

  1. http://live.gnome.org/Cross%20compiling%20GTK%2B%20for%20Win32
  2. http://www.gnome-db.org/GnomeDbMinGW (has good tutorial to set up MINGW compiling on windows
  3. http://www.daniweb.com/forums/thread86245.html (Order of commandline options for GCC is important)

Building of other GTK/Gnome projects

  1. https://develop.participatoryculture.org/trac/democracy/wiki/BuildingMiroWithMinGW

Other stuff

  1. http://linux.softpedia.com/get/Text-Editing-Processing/IDEs/MinGW-Developer-Studio-14939.shtml Allows compiling and cross compiling of GTK applications
Personal tools
Namespaces
Variants
Actions
Navigation
Miscellaneous
Toolbox