9 messages in com.perforce.jamming[jamming] link.exe input line too long
FromSent OnAttachments
Jacob Gorm Hansen21 Nov 2002 05:22 
Roger Lipscombe21 Nov 2002 05:53 
Ingo Weinhold21 Nov 2002 06:03 
BROSSIER Florent21 Nov 2002 06:44 
Jacob Gorm Hansen21 Nov 2002 07:14 
Jacob Gorm Hansen21 Nov 2002 07:57 
Matt Armstrong24 Nov 2002 08:36 
Jan Mikkelsen24 Nov 2002 12:21 
davi...@rcn.com24 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,