leksah-0.16.2.2: Readme.md
# Leksah, an Integrated Development Environment for Haskell
[](http://travis-ci.org/leksah/leksah)
[Leksah](http://leksah.org/) aims to integrate various Haskell development
tools to provide a practical and pleasant development environment.
The user interface is a mix of GTK+ and WebKit based components.
Documentation can be found on [leksah.org](http://leksah.org/).
## Getting Leksah
### Installation
Leksah requires `ghc --version` >=7.10.3 and `cabal --version` >=1.24. To get them go to **[haskell.og/download](https://www.haskell.org/downloads)** and choose the **Minimal GHC** or **Haskell Platform**.
* **Windows** [latest github version built with AppVeyor](https://ci.appveyor.com/project/hamishmack/leksah/build/artifacts)
* **OS X**: [official binaries](https://github.com/leksah/leksah/wiki/download)
* **Linux**: [build from source](https://github.com/leksah/leksah#building-from-source)
### Building from source
We have completed a port of Leksah from Gtk2Hs to haskell-gi. Not all of the code is in Hackage yet so to build it you can either use [Xobl](xobl/Readme.md) or follow the instructions below.
#### Step 1: Install C libraries
##### Fedora
```shell
sudo dnf install gobject-introspection-devel webkitgtk4-devel gtksourceview3-devel
```
##### Ubuntu/Debian
```shell
sudo apt-get install libgirepository1.0-dev libwebkit2gtk-4.0-dev libgtksourceview-3.0-dev
```
##### Arch Linux
```shell
sudo pacman -S gobject-introspection gobject-introspection-runtime gtksourceview3 webkit2gtk
```
##### OS X MacPorts
```shell
sudo port install gobject-introspection webkit2-gtk gtksourceview3 gtk-osx-application-gtk3 adwaita-icon-theme`
```
You will also need to build a MacPorts compatible of GHC. First install GHC some other way then unpack the source for the GHC version you want to use and run:
```shell
sudo port install libxslt gmp ncurses libiconv llvm-3.5 libffi
./configure --prefix=$HOME/ghc-8.0.1 --with-iconv-includes=/opt/local/include --with-iconv-libraries=/opt/local/lib --with-gmp-includes=/opt/local/include --with-gmp-libraries=/opt/local/lib --with-system-libffi --with-ffi-includes=/opt/local/lib/libffi-3.2.1/include --with-ffi-libraries=/opt/local/lib --with-nm=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm-classic
make
make install
echo 'PATH: '"$PATH"
```
Make sure the `$HOME/ghc-8.0.1/bin` is present in PATH.
##### OS X Homebrew
It might be possible to build Leksah using Homebrew now we have switched to WebKit 2. If you can figure it out please send us the details or better yet a pull request to update this file. Raise an issue if you try and it does not work.
##### Windows MSYS2
Install:
* [MSYS2](https://msys2.github.io/)
* [Chocolatey](https://chocolatey.org/)
Then in Bash shell with administrator privileges execute:
```shell
choco install ghc
pacman -S mingw64/mingw-w64-x86_64-pkg-config mingw64/mingw-w64-x86_64-gobject-introspection mingw64/mingw-w64-x86_64-gtksourceview3 mingw64/mingw-w64-x86_64-webkitgtk3
```
Set the following environment variables:
```shell
SET PATH=%APPDATA%\cabal\bin;C:\msys64\mingw64\bin;C:\msys64\usr\bin;C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.0.2\bin;C:\ProgramData\chocolatey\lib\cabal\tools;%PATH%
SET PKG_CONFIG_PATH=C:\msys64\mingw64\lib\pkgconfig
SET XDG_DATA_DIRS=C:\msys64\mingw64\share
```
(change `C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.0.2\bin` if a newer version is installed)
##### FreeBSD
```shell
pkg install devel/gobject-introspection x11-toolkits/gtksourceview3 www/webkit2-gtk3
```
#### Step 2: Clone repository and its submodules
```shell
git clone --recursive https://github.com/leksah/leksah.git
cd leksah
```
#### (Cabal variant) Step 3.a: Build
##### Step 3.a.1: Install extra tools
```shell
cabal update
cabal install alex happy
cabal install haskell-gi
```
Make sure `~/.cabal/bin` is present in the PATH (*Windows:* Make sure `%APPDATA%\cabal\bin` is present in the PATH).
##### Step 3.a.2: Build and run Leksah
###### OS X using MacPorts
```shell
XDG_DATA_DIRS=/opt/local/share ./leksah.sh
```
###### All other OS'es
```shell
./leksah.sh
```
#### (Stack variant) Step 3.b: Build
##### Step 3.b.1: Install extra tools
```shell
stack setup --upgrade-cabal
stack install alex happy
stack install haskell-gi
stack install gtk2hs-buildtools
```
##### Step 3.b.2: Build and run Leksah
###### For Mac OS
```shell
stack install --stack-yaml stack.osx.yaml
stack exec leksah
```
###### All other OS'es
```shell
stack install
stack exec leksah
```