Installation¶
Installing with conda¶
This installation method assumes that you have anaconda or miniconda installed. See the getting started and miniconda download page on the conda website.
Activate the conda-forge package repository:
conda config --add channels conda-forge
Install libsemigroups
:
conda install libsemigroups
From the sources¶
Building libsemigroups
from the source files requires a C++ compiler
supporting the C++14 standard, autoconf
, and automake
.
Building the documentation from source has some additional requirements that
are detailed here.
From the github repo¶
To build libsemigroups
from the github repository:
git clone https://github.com/libsemigroups/libsemigroups
cd libsemigroups
./autogen.sh && ./configure && make -j8 && sudo make install
From a release archive¶
To build libsemigroups
from a release archive:
curl -L -O https://github.com/libsemigroups/libsemigroups/releases/latest/download/libsemigroups-2.7.0.tar.gz tar -xf libsemigroups-2.7.0.tar.gz rm -f libsemigroups-2.7.0.tar.gz cd libsemigroups-2.7.0 ./configure && make -j8 && sudo make install
Docker¶
If you have Docker installed, you can download an x86 docker image for
libsemigroups
as follows:
docker pull libsemigroups/libsemigroups-docker
or an arm docker image as follows
docker pull libsemigroups/libsemigroups-docker-arm
and run it by doing
docker run --rm -it libsemigroups/libsemigroups-docker
docker run --rm -it libsemigroups/libsemigroups-docker-arm
If you want to use a specific version of libsemigroups
, then use:
docker pull libsemigroups/libsemigroups-docker:version-1.0.9
docker run --rm -it libsemigroups/libsemigroups-docker:version-1.0.9
or, for the latest version, use:
docker pull libsemigroups/libsemigroups-docker:latest
docker run --rm -it libsemigroups/libsemigroups-docker:latest
Configuration options¶
In addition to the usual autoconf
configuration options, the following
configuration options are available for libsemigroups
:
Option |
|
–enable-code-coverage |
enable code coverage support (default=no) |
–enable-compile-warnings |
enable compiler warnings (default=no) |
–enable-debug |
enable debug mode (default=no) |
–enable-eigen |
enable |
–enable-fmt |
enable fmt (default=no) |
–enable-hpcombi |
enable |
–enable-stats |
enable statistics mode in |
–enable-verbose |
enable verbose mode (default=no) |
–with-external-fmt |
do not use the included copy of fmt (default=no) |
–with-external-eigen |
do not use the included copy of eigen (default=no) |
–disable-popcnt |
do not use __builtin_popcountl (default=yes) |
–disable-clzll |
do not use __builtin_ctzll (default=yes) |
Debug mode and verbose mode significantly degrade the performance of
libsemigroups
. Compiling with fmt
enabled increases build times
significantly. Note that the flags --enable-fmt
and --with-external-fmt
are independent of each other, and so both flags should be included to enable
fmt
and use an external fmt
.
Make install¶
By default, make install
installs the library and its pkg-config
configuration into /usr/local
. One can also specify another install
location, say, /foo/bar
, by calling ./configure
with parameter
--prefix
, e.g. ./configure --prefix=/foo/bar
. This might be
useful if sudo
is not available.
If you have pkg-config
installed, it may be called to get
libsemigroups
’s version, location, etc (see its docs for details;
this facility is used in GAP package Semigroups, which may be configured
to use the external libsemigroups
). For example,
pkg-config --modversion libsemigroups
will print the version of the installed libsemigroups
, provided it is
scanning configurations in the install location. For installation
location unknown to pkg-config
, one needs to add it to
PKG_CONFIG_PATH
(an environment variable). E.g. if it is
/foo/bar
as above then
PKG_CONFIG_PATH=/foo/bar/lib/pkgconfig pkg-config --modversion libsemigroups
will print the version of the installed libsemigroups
. (As usual,
PKG_CONFIG_PATH
may be exported, added to shell configuration, etc.)
Building the documentation¶
The following are required to be able to build the documentation:
python3
doxygen
the python packages:
sphinx bs4 lxml breathe pyyaml sphinx_rtd_theme sphinx_copybutton sphinxcontrib-bibtex
Assuming you already have python3
install, on Mac OSX you can install all of
the above by doing:
brew install doxygen sphinx
pip3 install -r docs/requirements.txt
Then it ought to be possible to just run make doc
in the libsemigroups
directory.
Issues¶
If you find any problems with libsemigroups
, or have any suggestions for
features that you’d like to see, please use the issue
tracker.