Menu

Tree [9c748c] default tip /
 History

Read Only access


File Date Author Commit
 Cudd 2013-01-08 Alexander Dreyer Alexander Dreyer [a89b7d] Dropped files from Cudd with possibly unfree li...
 PyPolyBoRi 2012-12-17 Michael Brickenstein Michael Brickenstein [faeba0] fixed boost::python::range disambiguity by expl...
 Singular unknown
 doc 2013-01-11 Alexander Dreyer Alexander Dreyer [5ea6a5] dividing platform dependent and independent docs
 groebner 2012-12-30 Alexander Dreyer Alexander Dreyer [566929] Fix change assertion to exception (user-trigger...
 gui 2013-01-11 Alexander Dreyer Alexander Dreyer [82d8f4] Smark hasbang lines for ipbori* and PolyGUI*, m...
 ipbori 2013-01-11 Alexander Dreyer Alexander Dreyer [82d8f4] Smark hasbang lines for ipbori* and PolyGUI*, m...
 libpolybori 2013-01-21 Alexander Dreyer Alexander Dreyer [904a6d] fixed m4ri part of spec file
 pkgs 2013-01-22 Alexander Dreyer Alexander Dreyer [fcdbf7] another syntax
 pyroot 2013-01-22 Alexander Dreyer Alexander Dreyer [fc9c68] PIL/pillow compatible Image* (suggested by Jerr...
 testsuite 2012-08-06 Alexander Dreyer Alexander Dreyer [521e34] Add polybori/embed.h
 .hgignore 2012-06-15 Alexander Dreyer Alexander Dreyer [cd1eb1] CHA: postponing work on conversion branch
 .hgtags 2013-01-29 Alexander Dreyer Alexander Dreyer [9c748c] Added tag v0.8.3 for changeset 71fae0d4ba4b
 ChangeLog 2013-01-16 Alexander Dreyer Alexander Dreyer [1de51c] Fix dependencies for documentation master html;...
 LICENSE unknown
 README 2012-08-06 Alexander Dreyer Alexander Dreyer [521e34] Add polybori/embed.h
 SConstruct 2013-01-28 Alexander Dreyer Alexander Dreyer [fb3bb2] Avoids possibly undefined variable key
 disttar.py unknown
 doxygen.py unknown
 versionnumber 2013-01-18 Alexander Dreyer Alexander Dreyer [0b7078] Start releasing 0.8.3...

Read Me

The PolyBoRi Team:
Michael Brickenstein (MFO), brickenstein@mfo.de
Alexander Dreyer (ITWM), alexander.dreyer@itwm.fraunhofer.de

PolyBoRi is a joint project of the following institutions
* Mathematisches Forschungsinstitut Oberwolfach (MFO), 
  Oberwolfach, Germany,
* University of Kaiserslautern, Department of Mathematics,
  Algebra, Geometry and Computer Algebra Group, 
  Kaiserslautern, Germany, and
* Fraunhofer Institute for Industrial Mathematics (ITWM),
  Department of System Analysis, Prognosis and Control,
  Kaiserslautern, Germany.

With contributions of:
Ket Shcherbakova (nee Kalda), Dominik Stahl

Prerequisites:
==============
For building the PolyBoRi framework, the following tools and libraries are
needed:
* gcc 3.3.0 or newer
* python 2.4 (deprecated) or python 2.5 (recommended)
* scons (v0.96 or later, recommended v0.98 or later)
* the boost library, version 1.33.1 (for python 2.4; deprecated) or 
  version 1.34.1 (for python 2.5; recommended), version 1.36.1 (for unit tests)

In addition, for running the ipbori command line tool IPython is needed.


Installation:
=============
Changing to the build directory (where you find this README file), and typing  

  scons install PREFIX=/prefix/path/ PYINSTALLPREFIX=/python/path/site-packages

should be enough to build and install PolyBoRi.
PREFIX defaults to /usr/local. The standard value from PYINSTALLPREFIX is extracted from the
corresponding python executable (customizable via PYTHON).

There are several installation locations which depend on PREFIX per default,
(e.g. INSTALLDIR and DOCDIR). But those are custumizable, too. See

  scons -h

for more information and default values. There's also an exhaustive 'ipbori'
tutorial in the DOCDIR.

If might also be useful to add some custom setting to the file 'custom.py' in
the build directory, see the following example.

--- custom.py ---
# User variables
CFLAGS = ""
CCFLAGS = "-g -O3  -ansi --pedantic -Wno-long-long -pg"
CXXFLAGS = "$CCFLAGS -ftemplate-depth-100"
LINKFLAGS=" -Xlinker -export-dynamic -pthread -ldl  -pg" 

# DEFAULT_<flags> will be appended by default. State the default flags
# explicitely, if you want to append flags afterwards, e.g.
LINKFLAGS='-Ddef1 $$DEFAULT_LINKFLAGS -Ddef2'

# See also SHCFLAGS, SHCCFLAGS, SHCXXFLAGS, and SHLINKFLAGS

LIBS=["util"]
# means that this line is not activated.
#LIBPATH = ["/custom/lib/path1", "/custom/lib/path2"]
#CPPPATH = ["/custom/include/path1", "/custom/include/path2"]
#PYPREFIX = 
#PBP = "python"
-----------------

Typing 

  scons devel-install DEVEL-PREFIX=/prefix/for/usr

generates and installs PolyBoRi headers and libraries for developers.


Type 

  scons -h

for more infos about possible custom settings.


Additional targets
==================

Type

  scons <target>

for making other targets by alias. Valid aliases are

distribute      gzipped source tarball
srpm, rpm       generate (source)-rpm from data in pkgs/rpm
prepare-debian  generate debian/ folder from data in pkgs/debian
deb             generate debian package

install         install ipbori, documentation, and python iterface
prepare-install build, what install needs

devel-install   headers and standalone libraries (without python interface)
prepare-devel   build, what devel-install needs

Usage:
======
Provided that /prefix/for/executables/bin is in your path, typing 

  ipbori

starts an IPython session with the PolyBoRi framework loaded.


Python embedding
================
For utilizing its full capabilites please use PolyBoRi via python. To simplify
embedding into C++-based software you may include the header polybori/embed.h
and use the functionality defined therein.
See testsuite/src/embedTest.cc for an extensive example.


Workaround for scons 0.96.x
===========================

Please note, that scons 0.96.x is not officially supported anymore, so the
following may be out of date

The currently used CFLAGS/CCFLAGS/CXXFLAGS mechanism was introduced in the 0.97
branch of scons. Using a version from the 0.96 branch CCFLAGS must contain all
flags for the C-compiler, while CXXFLAGS has to carry all flags for CXX.

These settings may be changed using the file custom.py described above. One has
to add the following lines:

CXXFLAGS = "-O3 -std=c++98 -ftemplate-depth-100"
CCFLAGS  = "-O3 -std=c99"

Alternatively, one can append the following lines to custom.py:

CXXFLAGS += " " + CCFLAGS
CCFLAGS += " $CFLAGS"


Sun Studio compiler
===================
We recommend to use gcc for compiling PolyBoRi, but compiling with Sun STudio's
C++ in principle possible (albeit untested) with the following settings:
CC="/opt/SUNWspro/bin/cc"
CXX="/opt/SUNWspro/bin/CC"
CXXFLAGS="-library=stlport4"
CCFLAGS="-library=stlport4"

Also CPPPATH, LIBPATH and PYTHON might be adjusted to use library/binaries, which
are compatible with the stlport4 option.


cygwin
======
In the main directory generate a file custom.py with the following content:

BOOST_PYTHON = 'boost_python-mt'
BOOST_TEST = 'boost_unit_test_framework-mt'
HAVE_L2H = False
HAVE_HEVEA = False
HAVE_TEX4HT = False
DEFAULT_LINKFLAGS=[]
SHLIBVERSIONING=False
DEVEL_LIB_PREFIX = '$EPREFIX' # dlls needs to be placed here?

====================
See also: Singular/README
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.