Re: Cross-dependencies and output folders and more

Dobes Vandermeer <dobes-1FMcoIRdraL2eFz/[email protected]>
Newsgroups gmane.comp.tools.aap.user
Message-ID <[email protected]>
Bram Moolenaar wrote:
> 
> Dobes Vandermeer wrote:
> 
> > > It could be useful.  For example, Aap already uses
> > > the $BDIR variable for the directory of the object files.  You wouldn't
> > > want to use its value on the Aap command line.  In Jam terms you would
> > > have a target $BDIR/foo.o called <bdir>foo.o.
> >
>
> $BDIR also includes the variant and other things that require the
> object file be placed somewhere else.

Er.. yes.  I suppose I interpreted you example as being literally
<bdir>foo.o, rather than <$BDIR>foo.o.  That way multiple variants of
the same file will have different names in the dependency tree.

> I see.  It seems that this means there is even less reason to add this
> feature to Aap.

Yes, indeed.  I wasn't really suggesting it, just explaining it in case
you cared.

> Well, that's one thing that Aap will do "the right way" for you
> automatically.

Yeah, thats one of the things I really like about it.

> > If you delete a source file, its not removed from the libraries/jars it
> > is in, its intermediate files aren't cleaned up, and so on.  You have to
> > clean it out by hand.  Would be nice to have a build system that
> > "remembered" what was "in there" and cleaned anything out that
> > disappeared.
> 
> Although Aap does remember what was build in the past, there currently
> is no mechanism to have a "clean" use this information.  I have been
> thinking about this, but without an actual implementation popping up
> yet.  It's also very useful for uploading files: you want to delete
> files that should no longer appear on the server.

Really these files should go away no matter what target I build -- they
have become completely useless and undesirable.  Also, since LIB is
incremental, I need to be able to remove them from the LIB file
(possibly by doing a non-incremental build when something is removed).  

I suppose the easiest way is to store the the previous inputs to the
action and compare which were added or removed.  This will solve half
the puzzle -- at least you can do a non-incremental build when the
removed list is non-empty.  

Actually removing unneeded object files is a slightly different story,
because you'd want to handle the case where one object file is used by
multiple binaries (rare though this may be).  In that case you'd have to
store a total list of all files that were built by aap, and then compare
that to all the files aap wants to build now.  Any missing files can
then be deleted.  The list would have to be variant-specific, and I'm
assuming files aren't ever the same between variants.

CU
Dobes


-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.