Karim Belabas on Tue, 15 Nov 2005 13:59:43 +0100

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Not shipping pari.desc in the tarball and other wishlist

* Bill Allombert [2005-11-15 12:07]:
> On Tue, Nov 15, 2005 at 11:10:24AM +0100, Karim Belabas wrote:
> > * Bill Allombert [2005-11-10 22:11]:
> > > We should try to remove pari.desc from the tarball. This is
> > > useless since pari.desc can be trivially rebuild with find and cat,
> > > and is not needed for normal build.
> > > (This would save 186kB and reduce the tar.gz by 44kB ).
> > 
> > This is quite easy, the file is added explicitly in get_MANIFEST. 
> Yes, but now you need perl to build, apparently.
> cd ../src/desc && perl merge_822 ../functions/*/* > def-linux-i686-14787.tmp
> mv ../src/desc/def-linux-i686-14787.tmp ../src/desc/pari.desc
> cd ../src/desc && perl gen_proto gp pari.desc > gp_init-linux-i686-14787.tmp &&
> perl gen_help gp pari.desc >> gp_init-linux-i686-14787.tmp
> I completly for got that src/desc/merge_822 was in perl, sorry...
> Maybe the 44kb save is not worth the trouble...

I don't think you need perl. This part is only included in the $objdir Makefile
if $add_funclist is non-empty. It is empty when perl doesn't work.

I just tried 

  rm src/desc/pari.desc
  make clean
  Configure -l  \\ after editing pari.cfg to pretend I don't have perl

It does work ( and doesn't regenerate any of the header files from the
description system, of course ).

> > > Third, we should implement a top-level makefile target that take care
> > > of setting up the source tree in a way such that parallel build of 
> > > pari in separate Oxxx-xxx object dir are safe. Currently there is a
> > > small risk of two threads updating the autogenerated .h files
> > > at the same times and producing garbage.
> > 
> > I am not sure how to do this. As long as the generated files end up in
> > the source tree (even if created elsewhere), two threads may try to 'mv'
> > identical files to the same spot at the same time.
> Well, we could have a target that build all the autogenerated files.
> After running it, it should be safe to run parallel build since
> normally they should no more modify the source tree?

Ah, you meant a target that the user would invoke before launching any
parallel make. That would work. But a single 'make' (or make -j4, etc) has
the same effect right now, doesn't it ?

The point is not to launch any make for a different architecture before the
first one has generated those header files. Do we really need a separate
target in the top-level Makefile for that ?


Karim Belabas                  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux.fr/~belabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]