Installation
============

Installation on Linux/UNIX
--------------------------

The GNU C Compiler is fully supported, other compilers may work. The C compiler
should be in your ``$PATH`` (most likely the case). Note that some few Linux
distributions do not ship with a GCC compiler preinstalled - then you have to
install it.

Install Nimrod by downloading the appropriate ``.zip`` file and extracting it 
to a directory of your choice. The Nimrod Compiler will stay in this
directory (unless you copy it somewhere else). The compiler does not need 
write access to its directory, so copying the nimrod folder to ``/opt`` 
works.

Then run the following command::

  sh build.sh

Unlike other software, Nimrod does not distribute its files over the whole file
hierarchy. This has the advantage that you can deinstall it by just deleting
its folder. The disadvantage is that you have to add it to your ``PATH``
manually. An alternative is to create a symbolic link in ``/usr/bin``::

  [sudo] ln -s $your_install_dir/bin/nimrod  /usr/bin/nimrod

There are also ``install.sh`` and ``deinstall.sh`` scripts for distributing 
the files over the UNIX hierarchy. However, updating your Nimrod installation
is more cumbersome then.


Installation on the Macintosh
-----------------------------

Only MacOS X is supported.
Since MacOS X is UNIX based too, it works like the installation on Linux. 
However, for unknown reasons the symbolic link method does not work on MacOS X. 
You need to install Apple's developer's tools for the GNU Compiler Collection.


Installation on Windows
-----------------------

Install Nimrod by downloading and running the ``nimrod_$version.exe`` file.
As default, the ``GCC`` compiler is used that is bundled with this installer.
You can change the configuration file ``config/nimrod.cfg`` to use
another C compiler or change the path to GCC.

Currently, the following C compilers are supported under Windows:

- | Microsoft's Visual C++
  | http://msdn.microsoft.com/visualc
  | (You need the SDK too - but not the full one: Only
    the win32api header files and import libraries are essential.)
- | Gnu C Compiler (the mingw version; the cygwin version has not been tested!)
  | http://www.mingw.org/download.shtml
- | LLVM with Clang or GNU C/C++ frontend
  | http://llvm.org/releases/download.html
- | Digital Mars C++
  | http://www.digitalmars.com/download/freecompiler.html

However, most testing is done with GCC.



Bootstrapping from github
-------------------------

To get the source code you need either of these:

* A working web browser + tar(or equivalent):
  https://github.com/Araq/Nimrod/tarball/master
* wget + tar:
  ``wget --no-check-certificate "https://github.com/Araq/Nimrod/tarball/master"``
* git: ``git clone git://github.com/Araq/Nimrod.git``

After downloading the source (and extracting it), you need to 
extract ``build/csources.zip``:

* ``cd build``
* ``unzip csources.zip``
* ``cd ..``

and then you can bootstrap with:

On Windows
~~~~~~~~~~

* ``build.bat``
* ``bin\nimrod c koch``
* ``koch boot -d:release``

If you want a 64 bit build, make sure that you have a GCC built for Win64 and
execute ``build64.bat`` instead of ``build.bat``.


On UNIX
~~~~~~~

* ``./build.sh``
* ``bin/nimrod c koch``
* ``./koch boot -d:release``


