Skip to content

Quickly getting a working copy of Semigroups

Michael Torpey edited this page Aug 15, 2016 · 33 revisions

The following script should clone and fully compile GAP, the Semigroups package and all of its dependencies. It's verified working on Debian Testing, as of 2016-05-29. It will clone the unstable-3.0 branch (change unstable-3.0 to your preferred branch if you want a different one), which contains an interface to the C++ library SemigroupPlusPlus.

Some software is required on the target computer for everything to work. This includes: git, autoconf, curl, GMP, a C/C++ compiler, graphviz, LaTeX, libtool, and make. If you're using a Linux distribution with APT (e.g. Debian/Ubuntu/Mint) then the following command should automatically install all the software you need (texlive-full might take a while):

sudo apt-get install autoconf build-essential curl git graphviz libtool libgmp-dev texlive-full

Once you have all the right software installed, run this script or copy and paste the following lines into your terminal:

SEMIGROUPSPLUSPLUS_BR=master
DIGRAPHS_BR=stable-0.5
IO=io-4.4.6
GAPDOC=GAPDoc-1.5.1
ORB=orb-4.7.6
GENSS=genss-1.6.4
GRAPE=grape4r7

PKG_FLAGS="CFLAGS=-O3 CXXFLAGS=-O3"

git clone https://github.com/gap-packages/Semigroups.git semigroups
cd semigroups
git checkout unstable-3.0
if [ -d src ]; then cd src; git clone -b $SEMIGROUPSPLUSPLUS_BR https://github.com/james-d-mitchell/semigroupsplusplus.git; cd ..; fi
cd ..

# Download and compile GAP
git clone -b stable-4.8 https://github.com/gap-system/gap.git
cd gap
git remote add james https://github.com/james-d-mitchell/gap.git
git fetch james
git checkout -t james/fix-semi-iso
./configure --with-gmp=system
make
mkdir pkg
cd pkg
curl -O http://www.gap-system.org/pub/gap/gap4/tar.gz/packages/$GAPDOC.tar.gz
tar xzf $GAPDOC.tar.gz
rm $GAPDOC.tar.gz
curl -O http://www.gap-system.org/pub/gap/gap4/tar.gz/packages/$IO.tar.gz
tar xzf $IO.tar.gz
rm $IO.tar.gz
cd $IO
./configure $PKG_FLAGS
make
cd ..
curl -O http://www.gap-system.org/pub/gap/gap4/tar.gz/packages/$ORB.tar.gz
tar xzf $ORB.tar.gz
rm $ORB.tar.gz
cd $ORB
./configure $PKG_FLAGS
make
cd ..
curl -O http://www.gap-system.org/pub/gap/gap4/tar.gz/packages/$GENSS.tar.gz
tar xzf $GENSS.tar.gz
rm $GENSS.tar.gz
curl -O http://www.gap-system.org/pub/gap/gap4/tar.gz/packages/$GRAPE.tar.gz
tar xzf $GRAPE.tar.gz
rm $GRAPE.tar.gz
cd grape
./configure $PKG_FLAGS
make
cd ..
git clone https://github.com/gap-packages/profiling.git
cd profiling
./autogen.sh
./configure $PKG_FLAGS
make
cd ..
git clone https://github.com/gap-packages/Digraphs.git digraphs
cd digraphs
git checkout --track origin/$DIGRAPHS_BR
./autogen.sh
./configure $PKG_FLAGS
make
cd ../../..
mv semigroups gap/pkg
cd gap/pkg/semigroups
if [ -d src ]; then ./autogen.sh; ./configure; make; fi
cd ../..

make manuals
Clone this wiki locally