1 message in com.perforce.jammingOther questions...| From | Sent On | Attachments |
|---|---|---|
| jste...@kdc-tvcom.com jstewart@kdc-tvcom.com | 21 Aug 1997 05:11 |
| Subject: | Other questions...![]() |
|---|---|
| From: | jste...@kdc-tvcom.com jstewart@kdc-tvcom.com (jste...@kdc-tvcom.com jstewart@kdc-tvcom.com) |
| Date: | 08/21/1997 05:11:54 AM |
| List: | com.perforce.jamming |
Jammers, Has anyone kept a history of this listserver? If so, I'd like to get a copy. I'd happily place it on my web page for "general consumption". - -Joe
From wi...@cix.compulink.co.uk Thu, 21 Aug 97 16:00 BST-1 Date: Thu, 21 Aug 97 16:00 BST-1 From: Wilf Coles wi...@cix.compulink.co.uk Subject: More precise jamming questions...
In-Reply-To: <8525...@kxnts2.kdc-tvcom.com> Joe,
The base I started from was from the Perforce web-site file, jam-2.1.0.tar.gz.
I think that you would be better off with the rolling beta (2.1.plus, I think). It is really very solid and has features that make things a whole lot easier.
caused in part, I think, from trying to understand the humongous jambase included with the jam source.
I have found that trying to understand it too early and trying to write things from scratch is a mistake. It takes a while to get your head around what's going on. My advice would be to start from the existing Jambase and then add in or replace the things that you need to in your per-project Jamrules file. In actual fact my per-project Jamrules does an "include" of a site-wide rules file which will eventually form my Jambase.
In your Jamrules you can redefine rules and actions that are defined in the jambase so if you need slightly different functionality you can cut and paste from the Jambase into your Jamrules and modify to suit.
One thing that tripped me up was the fact that you can only use the values of target specific variables during actions. If you need target specific values during rules then you have to manufacture the variable name from the target name, i.e.:
$(<[1])-ClientOnly = 1 ;
and then elsewhere in a rule (with the same target):
if $(<[1])-ClientOnly { GenerateClientNames $(<[1]) ; } else { GenerateFullNames $(<[1]) ; }
(bit of a lame example, but I hope it conveys the idea).
Another thing is gristing. SOURCE_GRIST is painful and I have found (at the advice of others, thanks Laura :-) ), that is is best to null out SOURCE_GRIST and only set it explicitly when you know that there are conflicting file names.
For help on your stuff, have a look at Laura's dynamic library build example. I can provide it if you can't find a archive site for the list server (I thought Christopher said that he was going to make one available at perforce but I could be wrong).
Best of luck Wilf Coles




