9 messages in com.perforce.jamming[jamming] link.exe input line too long| From | Sent On | Attachments |
|---|---|---|
| Jacob Gorm Hansen | 21 Nov 2002 05:22 | |
| Roger Lipscombe | 21 Nov 2002 05:53 | |
| Ingo Weinhold | 21 Nov 2002 06:03 | |
| BROSSIER Florent | 21 Nov 2002 06:44 | |
| Jacob Gorm Hansen | 21 Nov 2002 07:14 | |
| Jacob Gorm Hansen | 21 Nov 2002 07:57 | |
| Matt Armstrong | 24 Nov 2002 08:36 | |
| Jan Mikkelsen | 24 Nov 2002 12:21 | |
| davi...@rcn.com | 24 Nov 2002 13:05 |
| Subject: | [jamming] link.exe input line too long![]() |
|---|---|
| From: | Jan Mikkelsen (ja...@transactionware.com) |
| Date: | 11/24/2002 12:21:55 PM |
| List: | com.perforce.jamming |
Matt Armstrong wrote:
Not really, as 10240 is too big even under Win2k if the actions has more than one line. I've found CMD.EXE randomly crashing if any given line in the actions line is > 1-2k, even though NT itself can handle individual command line lengths of 10240 bytes.
I've been thinking about an extension to the actions syntax to allow for the automatic creation of response files. E.g.
actions Cc { $(CC) @{ -c -o $(<) $(CCFLAGS) $(CCDEFS) $(CCHDRS) $(>) } }
would put everything within the @{ } into a response file automatically. Jam takes care of naming, creating and deleting the response file, so the Jam rules themselves can remain simple and straightforward.
I have added a similar an extension. My syntax is slightly different; I have a special prefixes on an expressions. @^ is a single expression to a file, or you can have numbered files if you need multiple files in your action: @#0 -> @#9. I picked the sequences because they seemed unlikely anywhere else.
So, for link, where you want a command of the form "link.exe @C:/path/to/file", you would have
actions Link { $(LINK) ... @@^$(>) }
With numbered files, you can build the file from multiple expressions:
actions DoStuff { $(DOSTUFF) @#0First$(SPACE)line$(SPACE)goes$(here) @#0Second-file-line @#0Other-stuff:$(RANDOM_VARIABLE) }
This gets turned into an action like
dostuff /path/to/file
Where /path/to/file contains the result of the expressions in order.
I use multiple Jam generated response files for Java with manifest files dynamically generated by Jam.
I've been meaning to get these changes (and other) into the public respository for too long. I will submit them in the next day or so.
Regards,
Jan Mikkelsen




