[Ecls-list] -dir doesn't really work & build musing

Juan Jose Garcia-Ripoll Juan.Ripoll at mpq.mpg.de
Fri Dec 7 07:51:09 UTC 2001


Hi,

sorry for the delay. Since I changed job and moved I am loosing a lot of
time in stupid things like buying and building furnitures, and I still
have not a decent computer on which I can build ECLS so ...

Hannu Koivisto wrote:
> If you want to test the fresh new executable before installing. You
> you should invoke ECL from withing the build directory using the
> "-dir ./" argument to advice him about the right place to find
> header files, libraries, etc. For instance, under linux the build
> directory is "linux" and we would do
> $ ./configure --prefix=$HOME
> [...]
> $ cd build
> $ make
> [...]
> $ ./ecl -dir ./
> 
> This doesn't work.  Witness: [...]
> ecl-cmp.h is indeed not in the build/h directory.
> 
> I'm not sure what would be the best fix for this.  I find the whole
> include file business a bit messy.  For example, why GMP's headers
> are copied to the build tree but GC's headers aren't.  GMP's
> headers are not generated either (the reason for config.h et al to
> be there).  Also, headers are installed by c subdirectory's
> Makefile.  I find that somewhat odd.

Of all headers, only GMP's ones are needed at build time. We can avoid
the need for this header if we hide the details of the "struct bignum"
datatype. That will prevent us from inlining stuff for bignums, but I do
not thing that there are any inliners for bignums at all right now.

Regarding headers, to build code, the ecl binary needs to find in
"build" the same directory layout that it will find in $libdir when
installed. I admit that this is not very well done right now -- the code
for that is in gabriel/Makefile.in, which is the only place where the
ecl binary compiles something. So if you do 
> $ ./configure --prefix=$HOME
> $ cd build
> $ make
> $ (cd gabriel; rm BENCHMARK; make)
> $ ./ecl -dir ./

In any case that is something that needs to be fixed. I take note. The
most probable solution will be to link headers at configuration times.
Then configure will use "cp" instead of "ln" in platforms that do not
support the later.

> Local gmp installation can be used with ./configure
> --enable-local-gmp.  Could a similar choice be made for Boehm GC?
> I would check whether there are ECL-specific changes to it but it
> isn't imported to a vendor branch.  Why?  The same applies to GMP
> and loop2.

There are no specific changes. That is the reason why I did not use
vendor branches. Regarding the Boehm GC, the version used is rather new,
and at the time I imported it, it was not used in any platform thus I
did not use --enable-local-boehm. No other reason, and perhaps it is a
good idea to add --enable-local-boehm so that ECL takes advantage of the
fact that the collector is installed as a shared library under Debian.

Juanjo




More information about the ecl-devel mailing list