= Polymake =

== Description ==

polymake is open source software for research in polyhedral
geometry. It deals with polytopes, polyhedra and fans as
well as simplicial complexes, matroids, graphs, tropical
hypersurfaces, and other objects. Supported platforms
include various flavors of Linux, Free BSD and Mac OS.

== License ==

 * GPL v3

== Upstream Contact ==

 * https://polymake.org/

== Dependencies ==

Polymake needs a working installation of Perl, including its shared
library and some modules (XML::Writer XML::LibXML XML::LibXSLT).
The Polymake interface in Sage additionally needs File::Slurp.
For full functionality including polymake's polyDB,
also install the Perl module MongoDB.

These are not provided by a Sage package.

Sage might install the Term::ReadLine::Gnu module, however, when you install polymake.
Alternatively, as of #27795, Sage will try to use system's
Term::ReadLine::Gnu, if available.


On Ubuntu/Debian, use:
 sudo apt-get install libxml-libxslt-perl libxml-writer-perl libxml2-dev libperl-dev libfile-slurp-perl libjson-perl libsvg-perl libterm-readkey-perl libterm-readline-gnu-perl libmongodb-perl

On Fedora 23, use:
 sudo yum install perl-ExtUtils-Embed perl-File-Slurp perl-JSON perl-MongoDB perl-Term-ReadLine-Gnu

On Gentoo, use
 emerge --ask XML-Writer XML-LibXML XML-LibXSLT File-Slurp dev-perl/Term-ReadLine-Gnu JSON SVG dev-perl/MongoDB

On Mac OS X, to build Term::Readline::Gnu, on macOS 10.14 (Mojave), one
needs to do the following:

 sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

or a "fatal error: 'EXTERN.h' file not found" will be signalled.


A distribution-independent way to install Perl modules (into a user's
home directory) is using CPAN.  This is also the way to install the
modules on macOS.  For this, if you don't have root access, you will
need the local::lib Perl module installed.

 cpan -i XML::Writer XML::LibXML XML::LibXSLT File::Slurp Term::ReadLine::Gnu JSON SVG MongoDB


Several Sage packages should be installed before installing the
polymake package to give a more featureful Polymake installation:
 sage -i 4ti2 latte_int topcom qhull

Software that would need to be installed manually (no Sage package
 available) for a more featureful Polymake installation:
 azove,
 porta,
 vinci,
 SplitsTree4

Information on missing Polymake prerequisites after installing
polymake:
 $ sage -sh
 (sage-sh) $ polymake
 polytope> show_unconfigured;

== Debugging polymake install problems ==

# apt-get install libdevel-trace-perl
$ cd src
$ perl -d:Trace support/configure.pl
