===== Source Installation (without using Homebrew) =====
For a source installation you should follow the instructions in the order given below.
=== Compiler ===
You need a ''c++'' compiler to build ''polymake''. We recommend to install apple's command line tools. The standalone version of the tools suffices, but you can also install the full ''XCode'' IDE form the app store (but be aware that this uses around 8GB of disk space, compared to ~300MB for the command line tools).
**Note** that ''polymake'' needs ''perl'' to execute. We recommend to use the system ''perl'', not one of the versions that you can install via ''fink'' or similar. The system perl should be picked automatically if you have not installed another one or edited ''$PATH''. In case you have several versions of perl you have to make sure that ''polymake'' always finds the same ''perl'' as was used for compilation, so either provide an absolute path during configuration, or make sure that the correct version comes first in the ''$PATH''.
**Mac OS 10.11 and later**:
Call clang
or xcode-select --install
in a terminal to trigger installation of the command line tools (Click install in the window that opens).
=== Ninja ===
You need the ''ninja'' build system: Go to the [[https://github.com/ninja-build/ninja/releases|ninja page]] and download and extract the mac binary on your mac (e.g. create a directory ''$HOME/bin'', extract the dmg in this directory and add ''$HOME/bin'' to your path)
=== Install Dependencies ===
You need to install the following Linux packages (Follow the installation instructions given with each of the packages.)
* [[http://www.gnu.org/s/readline/|readline]] (version 6 or later)
* [[http://search.cpan.org/~hayashi/Term-ReadLine-Gnu/Gnu.pm|Term-Readline-Gnu]]
* [[http://gmplib.org/|gmp]] (version 5 or later). ''gmp'' needs to be configured with the ''--enable-cxx=yes'' option.
* [[http://www.mpfr.org/|mpfr]] (version 3 or later)
* [[http://www.boost.org/|boost]] (we only need the headers, so it suffices to unpack the archive, you can even delete most of the stuff, just keep ''include'')
* [[http://bugseng.com/products/ppl/|ppl]] (version 1.1 or later)
=== Compiling polymake ===
With these preparations you are ready to compile ''polymake''. You can now get the release version from [[https://github.com/polymake/polymake|github]]. You need the following steps:
* Call ''./configure'' in the root folder of ''polymake'' You will have to pass several options to ''configure'' to tell it about the additional software you installed. The following list contains the standard ones. For version specific issues check below before calling ''configure''. You might not need all of the options, if you have installed dependencies into their default location.
* ''--with-gmp=/path/to/your/gmp'': Specify the folder you installed ''gmp'' into.
* ''--with-mpfr=/path/to/your/mpfr'': Specify the folder you installed ''mpfr'' into.
* ''--with-boost=/path/to/your/boost'': Specify the folder you unpacked ''boost'' into
* ''--with-readline=/path/to/your/readline'': Specify the folder you installed ''readline'' into.
* ''--with-ppl=/path/to/your/ppl'': Specify the folder you installed ''ppl'' into.
* ''--with-singular=/path/to/your/singular'': Specify the folder you installed ''singular'' into. This is optional.
* ''--without-java''
* Your command could now be similar to the following (still replace paths!):./configure --with-boost= --without-java --with-gmp= --with-mpfr= --with-readline= --with-ppl= --with-singular= --prefix=
* Once configuration has succeeded, doninja -C build/Opt -j2 install
in the terminal.
Note that you might need additional options if your setup differs from a standard one.
=== Running polymake ===
* Calling ''polymake'' in a terminal should now start the interactive shell.
* At the first start ''polymake'' will try to find some third-party software installed on your computer it knows how to communicate with. You can examine the list of unsuccessful attempts by calling the command ''show_unconfigured'' in the shell.
* For an introduction on how to work with the shell see [[:user_guide:shell|here]]. Enjoy.
=== Installation Script ===
For older versions we have prepared a Makefile that does a loacl installation of polymake resolving all dependencies.
It is available [[https://gist.github.com/apaffenholz/f49cbf69a367fa219762|from github]]. It might still work, or serve as inspiration.