5 messages in com.perforce.jamming[jamming] jam2.5 & TOP?| From | Sent On | Attachments |
|---|---|---|
| Craig Allsop | 20 Jan 2003 14:38 | |
| Matt Armstrong | 20 Jan 2003 20:04 | |
| Christopher Seiwald | 24 Jan 2003 14:08 | |
| Craig Allsop | 28 Jan 2003 00:26 | |
| Matt Armstrong | 28 Jan 2003 08:24 |
| Subject: | [jamming] jam2.5 & TOP?![]() |
|---|---|
| From: | Craig Allsop (call...@sceptre.net) |
| Date: | 01/28/2003 12:26:35 AM |
| List: | com.perforce.jamming |
Hi
Sorry, it looks like I opened a can of worms.
It now includes Jamrules correctly in both my test case and the real deal, however should SUBDIR also reflect the value of TOP? In 2.4 it represented top plus the local path. If you add 'Echo SUBDIR "=" $(SUBDIR)' to jamtest\test\jamfile you'll see. Here is the difference:
[d:\jamtest\test]jam1 -v Jam 2.4. OS=NT. Copyright 1993-2002 Christopher Seiwald.
[d:\jamtest\test]jam2 -v Jam 2.5rc1. OS=NT. Copyright 1993-2002 Christopher Seiwald.
[d:\jamtest\test]set TOP=d:\jamtest
[d:\jamtest\test]jam1 Compiler is Microsoft Visual C++ Jamrules Jamfile SUBDIR = d:\jamtest\test ...found 7 target(s)...
[d:\jamtest\test]jam2 Jamrules Jamfile SUBDIR = . ...found 7 target(s)...
Another issue: Is it legal for the root to contain a Jamfile with this?
SubDir TOP ; SubInclude TOP test ;
If so, the new code includes Jamrules twice because the first time TOP-UP is set to nothing, it then hangs including .\jamfile over and over (with or without TOP set). Jam 2.4 is ok. Here is exactly what I have:
[d:\jamtest]cat jamrules Echo Jamrules ;
[d:\jamtest]cat jamfile SubDir TOP ; SubInclude TOP test ;
[d:\jamtest]cat test\jamfile SubDir TOP test ; Echo Jamfile ; Echo SUBDIR "=" $(SUBDIR) ;
[d:\jamtest]test\jam1 Compiler is Microsoft Visual C++ Jamrules Jamfile SUBDIR = d:\jamtest\test ...found 7 target(s)...
[d:\jamtest]test\jam2 Jamrules Jamrules ...hangs
The reason we've been using TOP is because we have trouble with Visual Studio in that it cannot locate debugging information when you go to a library to build it manually and then go to an executable that depends on this library and built it. I believe Visual Studio believes the symbols for this library are local to the executable. I haven't looked real closely at the issue since setting TOP results in fully qualified paths for all targets no matter where jam is launched which solves the problem.
Craig.
----- Original Message ----- From: "Christopher Seiwald" <seiw...@perforce.com> To: <call...@sceptre.net>; <jamm...@perforce.com> Sent: Saturday, January 25, 2003 8:08 AM Subject: Re: [jamming] jam2.5 & TOP?
Craig,
| In Jam 2.5rc1 (OS=NT). If TOP is set, then jam does not include | jamrules. Is this the intention?
I have a simple two-line fix for this, but because the behavior of SubDir with a pre-set TOP is so oddball, I'd either like to see your real-world example or have you try this out and see if it works for you.
The patch is below.
Christopher
==== //depot/main/jam/Jambase#209 - /usr/big/seiwald/jam/Jambase ==== *************** *** 1203,1217 **** Exit SubDir syntax error ; }
! if ! $($(_top)) { # Get path from SUBDIR (or CWD) to $(TOP)
SUBDIR_UP += $(_tokens) ;
$(_top)-UP = $(SUBDIR_UP) ; $(_top)-DOWN = $(SUBDIR_DOWN) ; ! $(_top) = [ FSubDirPath $(_top) ] ;
# File is $(TOPRULES) or $(TOP)/Jamrules. # Include $(TOPRULES) if set. --- 1203,1218 ---- Exit SubDir syntax error ; }
! if ! $($(_top)-UP) { # Get path from SUBDIR (or CWD) to $(TOP) + # $(TOP) may be set externally.
SUBDIR_UP += $(_tokens) ;
$(_top)-UP = $(SUBDIR_UP) ; $(_top)-DOWN = $(SUBDIR_DOWN) ; ! $(_top) ?= [ FSubDirPath $(_top) ] ;
# File is $(TOPRULES) or $(TOP)/Jamrules. # Include $(TOPRULES) if set.
_______________________________________________ jamming mailing list - jamm...@perforce.com http://maillist.perforce.com/mailman/listinfo/jamming




