Code Monkey home page Code Monkey logo

latte-distro's Introduction

This is LattE integrale "for tea, too", a source code distribution of 
of LattE integrale and 4ti2 with all prerequisite libraries.

All software included in this distribution is free software; with some
caveats regarding LiDIA (see notes at the bottom). 


To build:

Prerequisites:

 * On Linux, nothing special.  

 * On Mac OS X, you need the XCode command line tools.

 * On Windows, install Cygwin and, beyond the standard packages, also
   packages "gcc", "g++", "make", "m4".

 * On Solaris, a version of gcc.

Make sure you have unpacked this distribution in a build directory
without a space in its name (this is to work around a limitation in
libtool).  (Note that on Windows, the user's home directory usually
has a space in its name.  Use instead, for example, /cygdrive/c/latte;
this corresponds to C:\LATTE.)

If you checked out this distribution via git, you first need to
generate the autotools build system as follows:

   ./autogen.sh

Optionally, if you have Maple, make sure that the directory where the
command-line executable of Maple lives ("maple" or, on Windows,
"cmaple.exe") is in your path:

   export PATH="/path/to/maple/directory:$PATH"

Then type in the shell:

   ./configure
   make

When the build process is finished, you will find all binaries in the
directory 

   dest/bin

If supported on your operating system, LattE is built "relocatable",
that is, you can move the dest/ subdirectory to a different place, and
everything should still work.  Alternatively, you can pass the
--prefix=/SOME/ABSOLUTE/DIRECTORY/NAME option to ./configure to give a
directory where LattE integrale should be installed instead of the
dest/ subdirectory.  For example:

   ./configure --prefix=/usr/local

By default, all programs are linked statically.  To build and use
shared libraries, invoke configure with --enable-shared.  This does
not work on all platform (for example, it does not work on Cygwin.)
Also, note that shared library builds are not completely relocatable:
LattE itself (in most modes) works, but other binaries (4ti2, cddlib,
...) don't.

I hope this LattE integrale distribution works for you.  Compatibility
notes can be found below.  Please report any failures, so we can
improve the distribution and also LattE integrale itself.

Enjoy!

-- Matthias Koeppe <[email protected]>
   for the LattE team


				*  *  *

Information for building packages for Linux distributions, Sage packages, etc.:

  Do not attempt to use this "distribution" package.  Rather build
  separate packages for LattE integrale and each of the bundled
  libraries.  We use modified versions of some upstream libraries;
  consider using our versions instead of upstream for your distribution. 

  cddlib: 

    Our version adds a few more build system changes on top of the
    non-upstream version distributed as a Sage package.

  LiDIA: 

    Upstream development has ceased; download URL was defunct as of
    August 2013.  Our version is derived from an experimental Sage
    package.  Our version adds a number of build fixes for current gcc
    version.  It is also available from:

        https://github.com/mkoeppe/LiDIA

  4ti2: 

    We used to include special releases of 4ti2 only released through
    this "Latte for tea, too" distribution and not announced on 4ti2.
    As of version 1.6, we are back to standard upstream.

  
				*  *  *

Release 1.6 of LattE integrale (or a prerelease of it) has
successfully built on:

  * Mac OS X (Intel) 10.8.4 with XCode 4.6.3 (GCC 4.2.1)

  * Mac OS X (Intel) 10.8.4 with GCC 4.8.1 from Fink

  * Mac OS X (PPC)

  * Ubuntu Linux 12.04.2 LTS (x86_64) with GCC 4.6.3-1ubuntu5

  * Ubuntu Linux 11.10 "Oneiric Ocelot" (x86_64) with GCC 4.6.1-9ubuntu3

  * Gentoo Linux with GCC 4.6

  * Windows XP with Cygwin of July 2013

  * Solaris 10 (UltraSPARC) in 32 bit mode with GCC 4.5.1


A previous release of LattE "for tea, too" has successfully
built on:

  * Solaris 9 on SPARC in 32-bit mode with GCC 3.3.2

  * Solaris 9 on SPARC in 32-bit mode and 64-bit mode with GCC 4.1.1 and 4.2.0

    By default, 32-bit binaries are created on Solaris.
    To compile in 64-bit mode on Solaris, use: 

    ./configure CC="gcc -m64 -mptr64" CXX="g++ -m64 -mptr64"

  * Debian GNU/Linux on x86 with GCC 3.3.2

  * Fedora Core 3 Linux on x86_64 (AMD Opteron) with GCC 3.4.2

  * Fedora Core 2 Linux on x86 with GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)

  * Debian GNU/Linux 3.0 on Alpha with GCC 3.0.4

It fails to build on:

  * Non-GCC compilers, like all Forte/Workshop/Sun Studio compilers on
    Solaris).

    The reason is that the Forte/Workshop/Sun Studio compilers do not
    like the C++ part of GMP.  Use GCC instead.

  * Solaris 9 on SPARC in 64-bit mode with GCC 3.3.2

    Use 32-bit mode or a newer GCC version; for instance GCC 4.1.1.

  * Fedora Core 3 Linux on x86_64 (AMD Opteron) with GCC 4.0.0
    20041019 (Red Hat 4.0.0-0.8).

    Compiling NTL causes an internal compiler error.  Use a different
    GCC version instead.

  * Debian GNU/Linux 3.0 on Alpha with GCC 2.95.4

    This compiler cannot build CDD+.  Use a newer GCC version.


				*  *  *

Some of the C++ libraries are very picky about the version of the C++
compiler.  Older ones or newer ones might not work.  To ensure a
specific compiler is used, type:

   ./configure CC=/path/to/your/gcc CXX=/path/to/your/g++
   make

The pickiest of all C++ libraries used is LiDIA.  As a last resort,
you can turn off using LiDIA:

   ./configure --disable-lidia
   make

Likewise, you can turn off using the optional library 4ti2:

   ./configure --disable-4ti2
   make

If you have a multiprocessor machine, be sure to use it to shorten the
compile time by parallelizing the build:  For instance, on a
4-processor machine, use

   make -j4

(Because of parallelization bugs in some of the Makefiles (not ours!),
the parallelized build might get stuck; in this case, repeat the "make
-j4" until the build is finished.)

				*  *  *

Note on the license of LiDIA:

The status of LiDIA is unclear.  It comes with a "free for
non-commercial purposes" license, but developers stated that they have
agreed to release it as free software under the GPL.  See

   https://lists.debian.org/debian-legal/2007/07/msg00120.html

latte-distro's People

Contributors

mkoeppe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tunchanoky

latte-distro's Issues

Question: how to invoke `count` from C/C++ programs

Hi,

I have installed latte and can use count executable from command line. I'm wondering if I can invoke count from C/C++ programs (e.g., library function call).

Does latte have such APIs/library support?

Thanks,
Qiao

Compilation issues on Ubuntu 22.04.2 LTS (and solutions)

I had some issues with compiling this from source on Ubuntu 22.04.2 LTS.

After running ./autogen.sh and ./configure, in latte-int-1.7.5/code/latte/Makefile I had to add the -std=c++11 flag to the CXXFLAGS variable. It now reads on line 983:

CXXFLAGS = -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -std=c++11

Otherwise Make would halt with an error saying ISO C++17 does not allow dynamic exception specifications

After that, the built succeeded but I got some issues when running count. It threw errors saying: error while loading shared libraries xxx.so

Running ldconfig as root to update the cache solved that partly, but the cddlib just couldn't be found. After installing that from https://github.com/cddlib/cddlib everything worked for me.

So I can now say that LattE has been successfully built on Ubuntu Linux 22.04.2 LTS (x86_64) with GCC 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1)

exact instructions to install?

Hi,

I have downloaded this repo and am trying to install it:

git clone https://github.com/latte-int/latte-distro.git
cd latte-distro
./configure

And the ./configure command failed because there is no configure file.

What are the exact instructions to install this tool? Should I extract any/all of the tar.gz archives?

Unable to compile on Mac Apple M1

When trying to follow the instructions on my machine (Apple Mac with M1 chip), "make" ends up outputing the following:
configure: error: Oops, mp_limb_t is 64 bits, but the assembler code in this configuration expects 32 bits. make: *** [gmp-6.1.2/config.status] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.