

The windows version of Cadabra is built using Cygwin, with GTK
libraries built to use native Windows widgets instead of an X11
server. This means that I did not use the Cygwin-supplied GTK
libraries, but instead compiled my own set from source. A detailed
log of the steps required to build Cadabra under Cygwin is given below
(note that this may take several hours to complete due to the large
number of dependencies of the gtkmm library).

- install cygwin 1.7.5 or higher plus the packages
   Libs/
     libpcrecpp-devel
	  libgmp-devel
     libgmp3
     libgmpxx4 
     libiconv
	  gettext-devel
     libpng12-devel
	  libtiff-devel
   Devel/
     autoconf2.5
	  gcc4-g++
     pkg-config
	  make
	  libtool
	Editors/
	  emacs
   Utils/
	  time
   Web/
     wget

- launch cygwin

   mkdir build
	cd build
 
   # Install libsigc++
	wget http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.2/libsigc++-2.2.6.tar.bz2
   tar jxvf libsigc++-2.2.6.tar.bz2
   cd libsigc++-2.2.6
   ./configure
   make
	make install
   # add 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig' to ~/.bashrc
	
	# Install modglue
   wget http://cadabra.phi-sci.com/modglue-1.16.tar.gz
   tar zxvf modglue-1.16.tar.gz
   cd modglue-1.16
   ./configure
   make
	make install

   # Cadabra without GUI
   wget http://cadabra.phi-sci.com/cadabra-1.25.tar.gz
   tar zxvf cadabra-1.25.tar.gz
   cd cadabra-1.25
   ./configure --disable-gui --disable-runtime-dependency-check
   make
   # 'make test' will now work but hang on fieldtheory.cdb because lie
   # is missing.
 
   # GUI prerequisites:
   # glib
   wget http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.3.tar.bz2
   tar jxf glib-2.25.3.tar.bz2
   cd glib-2.25.3
   # On line 1414 of glib/gstrfuncs.c remove 'extern const' from the declaration.
   ./configure; make; make install

   # pixman
   wget http://cairographics.org/releases/pixman-0.18.0.tar.gz
   tar zxf pixman-0.18.0.tar.gz
   cd pixman-0.18.0
   ./configure; make; make install

   # cairo (previously, versions above 1.8.0 were broken?)
   wget http://cairographics.org/releases/cairo-1.8.10.tar.gz
   tar zxf cairo-1.8.10.tar.gz
	cd cairo-1.8.10
   ./configure --enable-xlib=no
   make; make install

   # pango with cairo backend
   # (previously, in configure, add [_]* to the --export-symbols-regex for pango,
   #   and export LIBS=-no-undefined too.)
   wget http://ftp.gnome.org/pub/GNOME/sources/pango/1.28/pango-1.28.0.tar.bz2
   tar jxf pango-1.28.0.tar.bz2
   cd pango-1.28.0.tar.bz2
   ./configure --without-x --with-included-modules=yes   
   make; make install

   # atk
   wget http://ftp.gnome.org/pub/GNOME/sources/atk/1.30/atk-1.30.0.tar.bz2
   
   # gtk
   wget http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.20/gtk+-2.20.0.tar.bz2
   tar jxf gtk+-2.20.0.tar.bz2
	cd gtk+-2.20.0
	./configure --without-x
	# on line 243 of gdk/win32/rc/Makefile, set WINDRES = windres.
	# on line 698, remove the -export-symbols $(srcdir)/gdk.def argument (already 
   #   covered by the -export-symbols-regex argument).
	make; make install

   # glibmm
   wget http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.22/glibmm-2.22.2.tar.bz2

   # cairomm
	wget http://cairographics.org/releases/cairomm-1.8.4.tar.gz

   # pangomm
	wget http://ftp.gnome.org/pub/GNOME/sources/pangomm/2.26/pangomm-2.26.1.tar.bz2

   # gtkmm
   wget http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.18/gtkmm-2.18.2.tar.bz2


- install base miktex
- set root
- 


- install latest gtk (--without-x)
     - had to fix an issue with the deprecated
       gtk_scale_button_set_orientation, re-enable in .h file.

- install a /usr/local/etc/pango/pango.aliases file
- install latest glibmm

- install cairomm 1.6.4 (1.8.0 fails to build)
- install pangomm 2.24.0
- install gtkmm 2.14.3


drag crash:

inner_window_procedure (hwnd=0xa6024a, message=71, wparam=0,
lparam=2273744)
at gdkevents-win32.c:3268
3268 if(_sizemove_in_progress &&


