## Contents

Since wxHaskell 0.12.1.1, we only support building using Cabal.

For all platforms installation is straightforward, provided that:

1. wx-config is somewhere in the path
2. The WXWIN environment variable points to the root of your wxWidgets installation
3. WINDOWS PLATFORMS ONLY: You may also need to set WXCFG=gcc_dll\mswu

You can then install wxhaskell as follows (in a Windows cmd.exe shell, not an MSys shell):

> cabal update
> cabal install 'wx < 0.90'


Note that on Windows 7 machines, your command window must be running as Administrator, or you must use the '--user' flag to install to a local directory.

Note that on Unix systems, you may prefer something like

> sudo cabal install --global 'wx < 0.90'


Windows developers who don't update environment variables can do something like this in an MS-DOS shell:

> Set CPLUS_INCLUDE_PATH=C:\MinGW\include\c++\3.4.5;C:\MinGW\include\c++\3.4.5\mingw32\
> Set WXWIN=C:\path\to\wxWidgets-2.8.10
> Set WXCFG=gcc_dll\mswu
> cabal install wx


The Windows installation is global by default.

#### 1.1 Out of memory errors

There have been reports of out of memory errors when compiling wxcore on some machines, notably 64 bit Linux hosts. Wxcore contains some very large auto-generated source files, and increasing the memory available to the GHC runtime can help.

Try something like:

> export GHCRTS='-M512m'


to allocate 512 MB to the GHC RTS. This has been reported to be sufficient.

### 2 Source Release

You can obtain a source release of wxHaskell from the darcs repository. Darcs creates a wxHaskell directory for you; we assume in the following example that your \$wxHaskell directory will be ~/dev/wxhaskell.

> cd ~/dev
> darcs get --lazy --set-scripts-executable http://code.haskell.org/wxhaskell/

You then build each of the key components in order:

> cd ~/dev/wxhaskell/wxdirect-2.8
> cabal install
> cd ../wxcore-2.8
> cabal install
> cd ../wx-2.8
> cabal install


If everything succeeded, you should be able to run a test program.

> cd samples/wx
> ghc -package wx -o helloworld HelloWorld.hs
> ./helloworld

Notes:

macosx: wxHaskell programs need to be turned into application bundles before they can be run. Look at the Mac OS X notes for more information. You can also run the examples from GHCi – a great development environment!

> ghci -package wx BouncingBalls.hs
> main

Notes:

wxHaskell programs are not always properly reïnitialized when started the second time from a GHCi prompt. This is due static variables in the wxWidgets C++ code, and we are working with wxWidgets developers to remove those bugs. Currently, GHCi only works well with wxWidgets 2.4.2. gtk: Unfortunately, one can only start a wxWidgets program once with GHCi on GTK (rendering it useless). macosx. You need to use a special command to run wxHaskell applications, see the Mac OS X notes from more information. Have fun!