Re: Usage
Jason Thomas <[email protected]> Tue, 23 Apr 2002 18:35:07 -0700
| Newsgroups | gmane.comp.gnu.cons.general |
|---|---|
| Message-ID | <[email protected]> |
Thanks for the prompt response. This works except the particular tool set I'm using has an archiver that sucks the life out of the system when it's passed a large number of *.o's. I'm open to modifying cons or creating an extension to get the behavior that's more optimal for my tool set. Basically I need a method to invoke the linker after the Build command has completed w/o error. So I guess I'm after an unusual way. Interested if anyone has done anything like this using the existing cons API. Would some combination of Command and Depend get me there? I need my final executable to depend on all of the *.o's but not invoke _Object for each .o in its list (since this was presumably handled by calls to Object as I mention below). Could I fool Cons by altering the compatible build commands so as not to get the duplicate build rule error, not get _Object called and retain that Program then runs after everything else? Thanks, Jason At 04:35 PM 4/23/2002 -0400, Gary Oberbrunner wrote: >The usual way to do this is to use Library in each conscript; Library is >special because it allows multiple invocations, each contributes more .o's >to the final library. > >Then you'd just use Program in one of the conscripts to link the library >in with your main.c (if any). If you do it like this your dependencies >will be correct. > >Don't use AfterBuild for this. > >-- Gary > >Jason Thomas wrote: >>I have a large hierarchical system with a conscript file in >>each directory listing the details for the files in that directory. >>I include in the conscript file a call to Objects. Most of my >>conscripts look like this: >>Import qw( CONS ); >>@SOURCES = qw( >> foo.c >>); >>Objects $CONS @SOURCES; >>In my Construct file I use the Build command to refer to all of >>the conscript files. >>This of course produces a bunch of .o's. Now I want to link >>them together. If I use Program I get a message like: >><whatever> >> built (at least) two different ways: >>If I use Command I don't see a way to assure that Command >>only executes at the end of all the objects being built. Is AfterBuild >>supposed to run at the end of all other production rules? I >>couldn't tell since I couldn't get it to run at all. >>I've arranged my system this way because I only want the top >>level Construct to know about conscript files, but not the list of >>sources contained there. I can abandon this if it's wishful thinking >>with cons. > _______________________________________________ [email protected] http://mail.gnu.org/mailman/listinfo/cons-discuss Cons URL: http://www.dsmit.com/cons/