4 messages in com.perforce.jammingJam and reference areas| From | Sent On | Attachments |
|---|---|---|
| "# Cowham, Robert Exchange CowhamR@logica.com | 10 Jul 1997 05:39 | |
| Dian...@whistle.com | 10 Jul 1997 22:48 | |
| "# Cowham, Robert Exchange CowhamR@logica.com | 11 Jul 1997 01:38 | |
| "# Cowham, Robert Exchange CowhamR@logica.com | 11 Jul 1997 03:44 |
| 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)




