We hope you have already checked the installation prerequisites and know where to find the suitable C++ compiler.

  1. Unpack the downloaded file:
    tar xfj polymake-VERSION.tar.bz2
    It will create a directory tree polymake-VERSION . Change into it:
    cd polymake-VERSION
  2. Now the most straightforward way to build everything is to try your luck and type in:
    make
    make install 
    In the most fortunate case the installation script will ask you exactly one question: where to install polymake. You can agree with the default proposal /usr/local/polymake (but note that on many Linux systems only the superuser may install new files there), or type in a path of your choice. Expressions like ~, ~user, or $env_variable are interpreted exactly as a bash or csh would do.
    If everything has successfully finished, proceed with the step 4 below. Note for impatient: the compile stage can be very long: as of now, the C++ programs with deeply nested templates (and such is polymake) are compiled very slowly and with huge memory consumption.
  3. If you want to perform some fine-tuning, you can run the configuration step explicitly:
    make configure
    make
    make install 
    In this case you have to answer a couple more questions. First of all, you can choose between a single-architecture and a multi-architecture installation. The latter choice makes sense in a heterogeneous network consisting of computers of various architectures. It stipulates a shared location for architecture-independent files (perl modules, rules, etc.) and separate directories for binary files.
    You may also choose an alternative location for the HTML documentation, where your local WWW server prefers to see its documents.
    Further you can specify the location of the C++ compiler, its optimization level (the default -O3 is rather optimistic), and whatever additional compiler and linker flags you might consider useful. For example, specifying an exact type of your CPU, such as -mcpu=ultrasparc or -march=athlon, can significantly accelerate the rational arithmetic which takes the main part of the computation time in polymake.
    The supported C++ compilers are listed here. Since different compilers have different command line syntax, the configuration script tries to choose the right one based on the compiler program name. Currently it assumes GNU if the compiler program path ends with g++ or c++ (with optional version suffix), Intel C++ by icc or ecc, and Comeau by como. You are free to modify the configuration script if this does not match your installation.
    If you are going to develop your own polymake clients, you will need a bit more to be installed: the library implementing the client-server communication, the sources of, and the documentation to the Template Library. It is accomplished with an additional command make install-devel .
    If you have chosen the multi-architecture installation, you must now log in on a computer of the next architecture. Then you run make to compile the binaries and make install-bin to put them to the right place. make install would indeed do it, too, but it would unnecessarily overwrite the shared files already installed in the first architecture step. For the same reason, the client development environment should be installed with make install-devel-bin .
  4. Now you should customize your startup files so that the polymake script and the client programs can be found by your command shell. In a single architecture case the following appendix on the PATH variable would suffice:
    :InstallTop/bin 
    In the multi-architecture case you might need to tinker up your startup files a bit in order that the correct architecture-dependent directory gets included in the PATH:
    :InstallArch/bin 
    when you log in on different hosts.
  5. Run polymake --help and watch for the warnings about lacking external packages. Download and install those you are interested in. First of all, some visualization software, preferably JavaView.
    By the way, if you install JavaView prior to polymake, then the configuration script gets a chance to find it and to prepare the Java components to work properly from the very beginning.
    If you install an external package later on, don't forget to run polymake --reconfigure to enable the corresponding interface.
  6. Try to run some examples from the Application Tutorials. If you get output similar to the cited one, congratulations! you have managed to install polymake. Enjoy it!
  7. Visit our news page from time to time. So you can see what has appeared newly or what bugs has been fixed - polymake evolves slowly but steadily.

Potential sources of trouble