On 19 July 2012 01:17, Jean-Pierre Flori <
jpf...@gmail.com> wrote:
> Hi all,
>
> Sorry for the delay, but I've finally pushed two commits to tweak the build
> system.
>
> I've let the shared library end with dylib64 on Darwin 64 bits, not sure
> this is a good idea, but it used to be so in flint 1.*.
> I could not test it on such hardware, so if someone could check that the
> code actually works, that would be great.
> I could test it on Linux 64 bits and Cygwin where everything seems fine.
> The building commands on Cygwin could be modified to build a more prpoer
> library with .dll/.dll.a stuffs by passing the correct flags to gcc/ld as is
> done by libtool for MPIR/MPFR et al, but that's not needed to have something
> useable.
>
> As far as enabling or disabling shared/static libraries, i've removed the
> piece of code preventing the build of a shared library on Cygwin/Mingw.
> As far as I can tell, this is possible on Cygwin, and I guess should be on
> Mingw.
I'll try it on my system. It didn't work before. But that may have
been due to the -fPIC.
> There is no detection, of what versions of MPIR/MPFR/NTL are installed, but
> I guess it's better to let the user do what he wants rather that put
> arbitrary limitations.
> Anyway, if you really want to test these kind of things, IMHO the only
> relevant thing to do is to prevent the build of a static library if any of
> the above is only available as shared (although some hackish tricks could
> make it possible to build such a strange library).
Ok.
>
> I've modified the hash bang line of the configure script to use bash.
> IIRC Bill mentioned at some point that bash was needed anyway.
> The reason why I want to make it explicit is that I want to use "echo -e" to
> print CONFIG_DEFINES in config.h.
> Indeed, the -e flag is needed to let the "\n" be interpreted with bash,
> whereas (da?)sh does not need the -e flag and actually print it verbatim
> when it is passed.
> And on Cygwin, bash is called by default, so that the \n are printed as such
> in config.h which make "make" fail.
Unless I am mistaken, bash is available on gnu systems only and
therefore we can't use it. You'll find for example that GNU extensions
do not work on some of the GCC build farm computers.
>
> I've also quite modified the dependencies between the different make targets
> and add some magic to disable -fPIC on Cygwin.
Why did the make targets need to be changed? I'm really, really
reluctant to merge changes to these without a very specific reason.
>
> If noone objects, it would also be great to have only one copy of the
> build_dirs Makefile that would be copied everywhere by the configure script.
> Moreover, that would definitely simplify the process of modifying it and
> this change can be reverted in the future if this is needed.
>
Agreed. But let's do that for the next release. We should be making
very conservative changes at this point.
Bill.