On Dec 1, 2003, at 8:11 AM, Andy Dougherty wrote:

On Mon, 1 Dec 2003, Leopold Toetsch wrote:

Andy Dougherty <[EMAIL PROTECTED]> wrote:

I can think of one other potential problem: What if the user wants to
mount the source read-only? Last I checked, except for this issue, it was
possible to do so. For perl5, this ability was often requested.

We are generating all kinds of files inside the parrot directory. I don't know, what you mean with "mount the source read-only". If you mean, the filesystem, where the parrot source is on, you can't build it.

Sorry, I guess I should have been more explicit. What folks apparently do
is have the sources on an NFS server mounted read-only. They then build a
symlink tree onto a local read-write filesystem and run the build there.
Thus they can create all the new files they want, but they can't touch or
change the source files. This is presumably helpful because other users
may be simultaneously mounting those same source files and may be
expecting them to remain unchanged from the distributed version.


perl5's build system is supposed to support this in two ways: First,
Configure contains code to detect when it's being run from a different
directory than that which contains the source. The Makefiles are supposed
to then do the right thing. I haven't touched that stuff in a long time,
and it would surprise me if it actually worked. Second, perl5's Configure
supports a -Dmksymlinks option which makes the symlink tree for you.


These features were added as a result of a number of user requests. I
vaguely recall it showing up in the archives under the description of
"self-modifying source". I have since found it useful and have used the
-Dmksymlinks feature regularly to test builds on multiple architectures
(or with different options).

As an extension of this, I think it would be useful to have a "build" directory (configurable, defaulting to a "build" subdirectory of the distro root) as a location for all intermediate (*.o, etc.) and generated files to live. That's even simpler than a symlink tree, and in addition to allowing read-only source has some other nice features: you can "make clean" by deleting a single dir, and you can grep the sources easily without having to take steps to avoid the generated files. I've found this sort of thing useful in the context of other projects.


JEff



Reply via email to