These instructions assume you have Haskell and OpenGL / 
OpenGLRaw packages working and have MinGW/MSYS installed and 
are comfortable with them.

I don't use cabal-install - maybe Part 2 can be done with 
cabal-install rather than invoking Setup.hs directly. You will 
still need t install the C library first as per Part 1.

------------------------------------------------------------------
Part 1. The C library.

Download the ShivaVG C library from Sourceforge (version 0.2.1):
http://sourceforge.net/projects/shivavg/

Unzip ShivaVG-0.2.1.zip somewhere below msys/1.0, I use my home
directory:

C:/msys/1.0/home/stephen

Run msys and go to ShivaVG's src directory: 

> cd ShivaVG-0.2.1/src

Compile with gcc directly - this is a hack but the makefile has
problems with MinGW/MSYS:

> gcc -O2 -c *.c -I../include/VG


That should build the *.o files.

> gcc -shared -o openvg32.dll *.o -Wl,--enable-stdcall-fixup,--out-implib,libopenvg32.a -lopengl32 -lglu32 -lgdi32 -lwinmm

That should create `openvg32.dll` and `libopenvg32.a`.


If you want you can put `libopenvg32.a` into your MinGW lib 
directory, on my system it is here:

C:\MinGW\lib

... and copy the folder `vg` with the header files from 
`shivavg-0.2.0\include` to the MinGW include directory, on my 
system it is here:

C:\MinGW\include

If you do copy both that would have been the same outcome as running 
`make install`.


You should now be able to build the Haskell binding to Shiva.

------------------------------------------------------------------
Part 2. The bindings.

I dropped the archive into my home directory
C:\msys\1.0\home\stephen

> tar xvfz OpenVGRaw-0.4.X.tar.gz

> cd OpenVGRaw-0.4.X

Run configure with extra options pointing to the vg header files 
and the static library. Note you still have to supply these extra 
options if you copied the headers and static library into the regular 
MSYS locations (`lib` and `include`) - when you build with GHC the 
GHC-specific version of GCC will be invoked (not the MinGW/MSYS 
version). The GHC-specific GCC needs to know where the headers and
libs are.

On my system this is the configure command (note I haven't copied 
the headers and lib into the respective standard MSYS locations).
Because strings represnting file paths are passed between programs
you need to use double-slash as a separator:

> runhaskell Setup.hs configure --extra-include-dirs=c:\\msys\\1.0\\home\\stephen\\ShivaVG-0.2.1\\include --extra-lib-dirs=c:\\msys\\1.0\\home\\stephen\\ShivaVG-0.2.1\\src
> runhaskell Setup.hs build
> runhaskell Setup.hs install
> runhaskell Setup.hs haddock

Do the same with the OpenVG code

> tar xvfz OpenVG-0.7.X.tar.gz

> cd OpenVG-0.7.X
> runhaskell Setup.hs configure
> runhaskell Setup.hs build
> runhaskell Setup.hs install
> runhaskell Setup.hs haddock


Finally try the example:


> cd demo

> runhaskell -lopenvg32 TestVgu.hs

Unfortunately building executables with `ghc --make` doesn't 
seem to work.


