BOOST is an essential external library for CoCoA-5.
At the moment CoCoALib does not require BOOST, however if you wish to combine CoCoALib with the external library Normaliz then BOOST must also be present.
It is common for Linux computers to have the BOOST library already installed; the CoCoALib configuration script will check for this, and will give an error message if it cannot be found.
TO BE CHECKED: Probably
sudo apt-get install libboost-dev libboost-thread-dev
libboost-filesystem-dev libboost-system-dev is enough
`` sudo apt-get install libboost-dev libboost-doc libboost-thread-dev\ libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev\ libboost-program-options-dev libboost-python-dev libboost-regex-dev\ libboost-signals-dev ``
It is simplest to make a complete BOOST installation; that way you are sure to have everything you need -- but a full build can take a while, and space on your disk. Alternatively, you can try building just those sublibraries needed by CoCoA-5; at the moment CoCoA-5 uses the following BOOST sublibraries: filesystem system thread
To build BOOST you must first use their script "bootstrap.sh", and then use the script "b2" (called "bjam" in older versions).
NOTE: there is an incompatibility of Qt4 and boost-1.53 (and later) [gives: Parse error at "BOOST_JOIN"] so you need to have Qt5 (maybe) or boost-1.52.
* Create only STATIC libs so the C5 binary can be distributed *
cd <BOOST_DIR> ./bootstrap.sh sudo ./b2 architecture=x86 address-model=32_64 variant=release threading=multi link=static install
Libs in stage (instead of install)
cd <BOOST_DIR> ./bootstrap.sh --with-libraries="filesystem,system,thread" ./b2 architecture=x86 address-model=32_64 variant=release threading=multi link=static stage
(Without the "install" keyword it is necessary to set the DYLD_LIBRARY_PATH shell variable to tell the dynamic linker where to look for the BOOST dynamic libraries.)
cd CoCoALib-0.99 ./configure --with-libBOOST=<your_path_to>/libBOOST.a make
A future version of CoCoALib may use the C++ interface to BOOST, but that it not imminent.
Strictly the parts of CoCoALib which compute with small finite fields do not need the BOOST library; nevertheless we chose not to permit compilation without BOOST.
I found the following website useful: