[perl #40817] [TODO] track generated files during the configure/make process

James Keenan via RT parrotbug-followup at parrotcode.org
Mon May 11 23:07:04 UTC 2009


I've been staring at this ticket for more than a year.  One of my
earlier patches got us part of the way there.  Applying Reini's or
something like that would get us closer.

But the more I look at this problem in light of
https://trac.parrot.org/parrot/ticket/586,
https://trac.parrot.org/parrot/ticket/434 and
https://trac.parrot.org/parrot/ticket/426, the more I believe that the
problem is more complex than we at first thought.

That's because, taking MANIFEST and MANIFEST.generated together, we use
these files for *two* distinct purposes:

1.  Determining what files a developer or user needs to build Parrot
from source.
2.  Determining what files are installed by 'make install' or 'make
install-dev'.

Purpose #1 is fulfilled exclusively by MANIFEST.  Or, to be more
precise, by the *left-hand* column in MANIFEST.  In a MANIFEST entry
like this:

  compilers/imcc/cfg.c                                        [imcc]

... only the left-hand part matters in terms of having the files one
needs for building from source.

Purpose #2, in contrast, requires both files to be fulfilled.  And it
requires *both* columns in each file to be fulfilled, because it's the
*right-hand* column that determines where a file is ultimately installed.

The patches we've applied or submitted so far automate, more or less
successfully, the identification of files *generated* by Configure.pl or
make.  But, AFAICT, so far it takes a human to determine where a file --
source or generated -- must be installed.  In other words, I don't see a
way to automate the assignment of data in the right-hand column.

Some data:

As of last night, a fresh checkout from trunk contains 2142 files.

After Configure.pl on Linux/i386, the total number of files in the build
dir has increased to 2229, an increase of 87.

After make, the total number of files has increased to 2999, an
additional increase of 770.

But if I then call 'make install', I install only 293 files.

What criteria do we have that those 293 files -- and only those 293 --
get installed?  We need to have such criteria if we're to have accurate
information in the right-hand columns of MANIFEST and
MANIFEST.generated.  Accurate information those files, in turn, is the
only way we can write tests to determine whether 'make install' and
'make install-dev' (and the programs underlying them) are doing the
right thing.

Thoughts?

Thank you very much.
kid51





More information about the parrot-dev mailing list