Matt Armstrong | 1 May 21:58 2000

Re: interprocedure optimizations

First I'd try to create a new .cpp that just #included the other two source
files.

If that own't work you'll probably want to write your own rule/action pair to
do the compiling.  The key is to use the "together" modifier on the compilation
action.  The existing rules will always call the C++ rule for .cpp files, so
you'll have to somehow avoid that.

On Sat, Apr 29, 2000 at 07:47:29PM -0500, Nikolas Kauer wrote:
> 
> I would like to facilitate more interprocedure optimizations by 
> compiling several source files in one compiler call.  I've been 
> using jam for a while essentially compiling my program like this: 
> cxx -c -O src1.cpp
> cxx -c -O src2.cpp
> cxx -c -O src3.cpp
> cxx -o executable src1.o src2.o src3.o
> 
> Say, I know code in file src1.cpp calls functions defined in file src2.cpp 
> and interprocedure optimizations would strongly increase program performance.  
> I would then manually compile in the following way:
> cxx -c -O4 src2.cpp src1.cpp
> cxx -c -O src3.cpp
> cxx -o executable src1.o src2.o src3.o
> 
> or in cases with a small number of source files (in one programming language):
> cxx -o executable -O4 src1.cpp src2.cpp src3.cpp
> 
> How would I write a Jamfile that results in these actions?  Do I need rules 
> that are not defined in the default Jambase?
(Continue reading)

Harish Chander | 3 May 09:20 2000

FW: will Jam run-on Win95


-----Original Message-----
From: Karen Yamagata [mailto:karen <at> perforce.com]
Sent: 02 May 2000 19:01
To: hchander <at> corp.phone.com
Subject: Re: will Jam run-on Win95

Hello Harish,

This message was sent to jamming-admin <at> perforce.com.  Did you mean
to send it to jamming <at> perforce.com?

-Karen

Harish Chander wrote:
> 
> Hi,
> 
> Can the NT version of Jam run on Windows 95?
> 
> Kind Regards
> 
> Harish Chander

--

-- 
Karen Yamagata
Perforce Software
(510) 864-7400

(Continue reading)

Temesgen Habtemariam | 8 May 20:07 2000

Accessing target-specific variables values inside a rule.

Hello!

 Is there any way to look at the value for a target specific variable
inside a rule. I know I can do some thing like VARNAME on TARGET = VALUE
to set the target-specific value for variable 'VARNAME'. Does any one know
if
there is a syntax for using target specific values as the right had side
of an assignment. Some thing like VARNAME_ON_TARGET = $(VARNAME on TARGET)
...

-thanks
-temesgen

Temesgen Habtemariam              NX Networks
(888) 552-3319 (voice)            445 Minnesota Street, Suite 2400
(888) 552-3302 (fax)              Saint Paul, MN 55101
                                  temesgen <at> aetherworks.com

Temesgen Habtemariam | 6 May 01:15 2000

Accessing target-specific variables values inside a rule.

Hello!

 Is there any way to look at the value for a target specific variable
inside a rule. I know I can do some thing like VARNAME on TARGET = VALUE
to set the target-specific value for variable 'VARNAME'. Does any one know
if
there is a syntax for using target specific values as the right had side
of an assignment. Some thing like VARNAME_ON_TARGET = $(VARNAME on TARGET)
...

-thanks
-temesgen

Temesgen Habtemariam              NX Networks
(888) 552-3319 (voice)            445 Minnesota Street, Suite 2400
(888) 552-3302 (fax)              Saint Paul, MN 55101
                                  temesgen <at> aetherworks.com

Matt Armstrong | 8 May 20:44 2000

Re: Accessing target-specific variables values inside a rule.

Temesgen Habtemariam wrote:
> 
> Hello!
> 
>  Is there any way to look at the value for a target specific variable
> inside a rule. I know I can do some thing like VARNAME on TARGET = VALUE
> to set the target-specific value for variable 'VARNAME'. Does any one know
> if
> there is a syntax for using target specific values as the right had side
> of an assignment. Some thing like VARNAME_ON_TARGET = $(VARNAME on TARGET)
> ...

There isn't.  It a suggested workaround somebody on this list suggested
to me was to set a different variable coded by the target name.  So
every time you set the variable you do:

FOO on $(target) = VALUE ;
FOO_on_$(target) = VALUE ;

Then when you want to read the value you use the FOO_on_$(target) copy. 
Ugly but it works.

Brian Mosher | 16 May 05:42 2000

Help compiling jam on the mac and/or need Mac Binaries...

Hello,

After working all day to get the latest version of jam to build on my G4. I
am at wit's end. I'm using a G4 with OS9.04, the latest update of Code
Warrior Pro 5, MPW 3.5 and I am compiling using Universal Headers v3.3.1

I downloaded v1.83 of CWGUSI and fixed up all of the include and lib paths
in the MPW build file. What I soon discovered was that the version of GUSI I
was using was no longer compatible with my current MSL. It seems that some
of the file routine's internals have changed.

I was able to get around this problem with a total hack where I pulled out
the GUSI routines that jam needs and built with just those. It looks as
though jam uses GUSI only for the dirent routines opendir, readdir, &
closedir. After a bunch of munging  I was able to get the whole business to
build.

Here is my problem: it doesn't work. As soon as I try to run it in mpw I
randomly get one of the following problems:

1. A Sioux window pops up with the message "Jamfile: No error". This Sioux
window opens in the context of mpw, so closing it kills mpw. There is no way
to get back to mpw and there are two menus on the menu bar, one for mpw and
one for Sioux.

2. I get the following error message in my mpw worksheet:
### MPW Shell - Unable to load code fragment "jam" of "jam".
# Fragment container format unknown (OS error -2806)

3. MPW disappears without any warning.
(Continue reading)

Scott RoLanD | 18 May 19:12 2000
Picon

Trying to justify Jam

I am a fan of Perforce and therefore have seen a couple of references
to jam as a better make. I've poked around a bit and tried to find a
concise comparison of jam vs. make but still don't understand the
difference.

Now I am looking at starting a big project at work with either Jam or
GNU make. I'd like to know if Jam is really that much better that I
should promote it, and if it is I need a quick reasoning to explain
why I chose it rather than make. The project is complex, but will only
be running on SUN Solaris systems and is actually a hardware
simulation (using Verilog, but with a bunch of perl and other
scripts).

Any advice?
--

-- 
Scott RoLanD
http://www.chat.net/~shr/

Dave Lewis | 19 May 00:38 2000

Re: Trying to justify Jam

Jam is faster than make.

The rule system means that individual Jamfiles become very
simple.

The dependency tracking is more sophisticated, and c and c++ files
are scaned for include dependencies automatically, so that info does
not need to be kept or updated.

Jam deals with dependencies across the entire build, so dependencies 
between directories are automatically dealt with.  I got to deal
with that when I converted a small system from jam to make.

On the other hand, it is different and hard to understand in some ways,
and make can do a perfectly good job and people know how to use it.

dave

Michael Graff | 19 May 02:23 2000

Re: Trying to justify Jam

One big thing is the way Jam handles subdirectories.  It knows the whole
tree at once and can automatically deal with things like .../this/subdir
needs to include headers from .../that/subdir.

The syntax is more abstract and more flexible.  It's not just targets,
dependencies, and shell lines.  It's more like a programming language.

Dependency generation is built in and automatic.
While it doesn't apply to your case with one platform, the
platform-independent syntax of the jamfiles is handy.

Scott RoLanD <shr <at> chat.net> on 2000-05-18 10:12:00

To:   jamming <at> perforce.com
cc:    (bcc: Michael Graff/HQ/dssi)
Subject:  [jamming] Trying to justify Jam

I'd like to know if Jam is really that much better that I
should promote it, and if it is I need a quick reasoning to explain
why I chose it rather than make.

Igor Boukanov | 19 May 12:02 2000
Picon
Picon

Re: Trying to justify Jam

If you need to update a big system after small changes, make output will  
be in general very cluttered and it is sometimes hard to guess was the    
build successful or not. In the same time jam will print just essential
information. This is very handy with big systems.         

Regards, Igor


Gmane