On Monday, October 10, 2016 at 3:53:34 PM UTC+2, Victor Shoup wrote:
>
> Let me get this straight...
> You say that the tarball does not contain a libtool script, but rather, 
> contains a directory that contains files that will build a libtool script 
> at compile time. Is that right?

Which tarball?

NTL tarball does not contain anything providing libtool, it relies on the 
availibility of a systemwide one, which is not standard, but can be 
provided by installing some packages as John does. Unfortunately the 
mondane user will just feel lost and won't be able to perform this step (or 
does not want to pollute her system with yet another package).

The repackaged tarball Sage ships contains:
* the verbatim content of the NTL upstream tarball in a ntl folder,
* an additional libtool folder where you can run "./configure" to produce a 
"libtool" script. Note that all that is contained in this folder was 
produced running autoreconf on a configure.ac file on a "development" 
machine.

Then when one want to build Sage and its version of ntl on her machine, the 
"configure" script is run and produces a "libtool" script to be used by the 
compilation chain in the ntl folder.
So you could call this step configuration time or compilation time.

What is sure is that calling the "configure" script is performed on the 
machine where NTL will be compiled, not on the machine where "autoreconf" 
was run to produce "configure" and "ltmain.sh" from the quite empty 
"configure.ac".

In fact running "configure" on the "development" machine rather than on the 
"compilation" machine, maybe hoping to provide a universal libtool script, 
would be wrong.
The "configure" and "ltmain.sh" scripts made by autoreconf are meant to be 
portable, the "libtool" script they produce is much less.

So maybe the answer to your question is "yes": the best solution would be 
that the ntl upstream tarball contains waht is needed to produce the 
libtool script on the machine where ntl will be compiled.

And the answer to the question "how to produce that stuff easily and 
without changing all of ntl build system" is:
* make a quite empty autotools project, that is a configure.ac file like 
the one at:
  $ 
https://github.com/sagemath/sage/blob/master/build/pkgs/ntl/patches/configure.ac
* modify ntl's configure script to run the configure script that will be 
produced by autoreconf at distribution time
* modify the ntl's makefile to use the libtool script that will be produced 
by configure
* when you want to ship a new release:
  $ run autoreconf where configure.ac
  $ make your tarball

Another option would be to migrate all ntl build system to autotools but 
that would be much more time consuming... with the above steps you just 
hack to get a portable way to produce a libtool script (and not relying 
anymore on the user installing a system wide one).

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to