4 messages in com.perforce.jammingJam and reference areas
Subject:Jam and reference areas
From: ()
Date:07/11/1997 03:44:18 AM
List:com.perforce.jamming

I've obviously not made myself clear. Here goes again:

I have a complete project setup:

<root dir> jamfile jambase jamrules <subsystem 1 dir> jamfile ss1.c ss1.h etc... <subsystem 2 dir> jamfile ss2.c ss2.h etc... <other subsystem directories each with jamfile and sources> <exe directory in which all targets are built>

The Top level jamfile is very basic and looks like:

SubDir TOP ;

SubInclude TOP ss1 ; SubInclude TOP ss2 ;

Jamrules file contains things such as:

Sets LOCATE_TARGET to ./exe directory

Defines global CCFLAGS, LINKFLAGS etc.

Defines some global variables such as library names which are used in subsystemjamfiles, e.g. UTILSLIB

Subsystem jamfiles are similar to:

SubDir TOP ss1 ;

Library $(UTILSLIB) : util1.c util2.c ;

LinkLibraries ss1 : $(UTILSLIBS) ; Main ss1 : ss1.c ss1_a.c ;

We have 10 subsystems, each with appropriate jamfile, and each of which builds a library which may or may not be used by other subsystems. Nearly 200 executables are built over all the subsystems.

If I run jam in the <root dir> then everything is fine - all objects and exectuables are happily built and linked in the <exe dir>.

What I am trying to do is setup a system where I can work in another directory tree somewhere else with a couple of modules which are part of the above structure, and use my local modules yet the project jamfile structure and modules.

For example, if I have ss1.c in my local directory, and run jam in that directory (specifying a particular target ss1.exe so as not to build everything), it will compile and build the local ss1.c in preference to the version in <root dir>/ss1. Everything should be built into ./exe in the local directory.

Where I have got to so far is to create a local jamfile like:

CURJAMDIR = CURJAMDIR: ; # We are using VMS, so this picks up a logical or # environment variable defining the current directory.

TOP = TOP: ; # More VMS syntax to define root directory of Project

SubDir TOP ;

SubInclude TOP ss1 ; SubInclude TOP ss2 ;

I have then tweaked the SubDir rule in Jambase, and changed line

SEARCH_SOURCE = $(SUBDIR) ;

to

SEARCH_SOURCE = $(CURJAMDIR) $(SUBDIR) ;

This seems to be working, though I think there are some other things I will have to tweak.

Comments?

Robert

---------- From: Diane Holt[SMTP:dia@whistle.com] Reply To: JAMMING Distribution List Sent: 11 July 1997 06:48 To: # Cowham, Robert (Exchange) Cc: jamm@perforce.com Subject: Re: Jam and reference areas

This works fine, but requires a complete list of sources for each executable (and we have 100s).

I'm not sure I understand -- where/why are you putting a list of all the sources? Which sources?

Diane (dia@whistle.com)