      ExternalLibs-Normaliz
      Copyright (c)  2010 Anna Bigatti, Christof Soeger
      GNU Free Documentation License, Version 1.2
%!includeconf: ../aux-txt2tags/config.t2t
      TeXTitle{ExternalLibs-Normaliz}{Anna Bigatti, Christof Soeger}


== User documentation ==
%======================================================================

**Normaliz** is a tool for computations in affine monoids, vector
configurations, lattice polytopes, and rational cones.

Here we should include the manual for the normaliz flags/functions,
but we wait until **libnormaliz** interface is more stable.  For the
moment look at the examples for available functions on
``NormalizCone``s and setting flags.

=== Examples ===
- [ex-Normaliz1.C ../../examples/index.html#ex-Normaliz1.C]
- [ex-Normaliz2.C ../../examples/index.html#ex-Normaliz2.C]


=== Download and compile Normaliz ===

 | [**libnormaliz** website https://www.normaliz.uni-osnabrueck.de/]

Download and compile **Normaliz** following the instructions from the website.

First time
``` git clone https://github.com/Normaliz/Normaliz.git
Update (from the Normaliz git folder)
``` git pull

==== Official instructions ====

build:
``` source/INSTALL

(needs gcc > 4.4)
for local libraries do:
```
mkdir BUILD
cd BUILD
cmake -DBOOST_ROOT=/Users/bigatti/0.99/boost_1_61_0 \
      -DGMP_INCLUDE_DIR=/Users/bigatti/0.99/gmp-6.1.0 \
      -DGMPXX_INCLUDE_DIR=/Users/bigatti/0.99/gmp-6.1.0 \
      -DGMP_LIBRARIES=/Users/bigatti/0.99/gmp-6.1.0/.libs/libgmp.a \
      -DGMPXX_LIBRARIES=/Users/bigatti/0.99/gmp-6.1.0/.libs/libgmpxx.a \
      -DGMP_STATIC_LIBRARIES=/Users/bigatti/0.99/gmp-6.1.0/.libs/libgmp.a \
      -DGMPXX_STATIC_LIBRARIES=/Users/bigatti/0.99/gmp-6.1.0/.libs/libgmpxx.a \
       ../source/
```

Finally, to make some refinements, in a terminal (not emacs!)
```
cd BUILD
ccmake .
```
and then (pressing ``enter`` in the specified line)
```
 NMZ_BUILD_STATIC                 ON                                           
 NMZ_OPENMP                       OFF  
```
then also select ``[t]`` and (press enter - insert - press enter)
```
 CMAKE_CXX_FLAGS                  -Wno-long-long
```
press ``[c]`` configure and then
press ``[g]`` generate and make

==== Personal instructions ====

I had problems following the given instructions, so I
added
```
GMPFLAGS = -I /Users/bigatti/0.99/gmp-6.1.0/ -L/Users/bigatti/0.99/gmp-6.1.0/.libs -lgmpxx -lgmp

BOOSTFLAGS = -I /Users/bigatti/0.99/boost_1_61_0/ -L/Users/bigatti/0.99/boost_1_61_0/libs
```
to ``source/Makefile.configuration`` and then
compiled with 
```OPENMP=no  make -f Makefile.classic
Then I get the error
```
ld: library not found for -lcrt0.o
```
which is solved by removing ``-static`` from the last command, for example:
```
g++  -I /Users/bigatti/0.99/gmp-6.1.0/ -L/Users/bigatti/0.99/gmp-6.1.0/.libs -lgmpxx -lgmp -I /Users/bigatti/0.99/boost_1_61_0/ -L/Users/bigatti/0.99/boost_1_61_0/libs -std=c++11 -Wall -pedantic -O3 -funroll-loops -g        -Wno-unknown-pragmas   -I .  normaliz.o libnormaliz/libnormaliz.a  -I /Users/bigatti/0.99/gmp-6.1.0/ -L/Users/bigatti/0.99/gmp-6.1.0/.libs -lgmpxx -lgmp -I /Users/bigatti/0.99/boost_1_61_0/ -L/Users/bigatti/0.99/boost_1_61_0/libs -o normaliz
```


=== Compile CoCoALib with Normaliz ===

Then configure and compile **CoCoALib** typing
``` 
cd CoCoALib-0.99
./configure --with-libnormaliz=<your_path_to>/libnormaliz.a
make
```


== Maintainer documentation ==
%======================================================================



== Bugs, shortcomings and other ideas ==
%======================================================================




== Main changes ==
%======================================================================

**2011**
- 26 July: new libnormaliz configuration (still a private copy)


**2010**
- 1 October: first inclusion


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
