Neil Okamoto | 1 Mar 2001 21:57

question about SubDir* rules

I'm trying to understand something about jam's SubDir* rules. As long as I build from the top level
directory everything is fine. However, if I try to build from a subdirectory in the project, any
dependencies that are not beneath the current directory in the hiearachy are not found. I'd like to be able
to build from any arbitrary directory in the project. Is that possible?

------------------------------------------------------------
--== Sent via Deja.com ==--
http://www.deja.com/

David Turner | 2 Mar 2001 20:32

Re: Jam with Windows 95/98

Hi Arnt,

Arnt Gulbrandsen a écrit :
> 
> David Turner <david.turner <at> freetype.org>
> > PS: On a related note, has anyone considered the ability to automatically
> >     generate Makefiles from Jam ? I know, I know, it's really a strange
> >     proposal :-)
> 
> Fairly easily done, if all you want is the thing I anticipate wanting.
> Say, a thirty-line perl hack.
> 
> 1. Run jam clean, taking note of the commands executed.
> 2. touch every file.
> 3. Run jam -v, taking note of all commands executed.
> 4. Write a Makefile with two targets: 'clean' that does what jam did
>    during 'jam clean' and removes all files created during the 'jam -v',
>    and 'all' that depends on every file whose atime changed during the
>    'jam -v', and whose commands are all the commands jam executed during
>    'jam -v'.
> 
> Evil? Yes. But it'll produce a working makefile, enough that people who
> don't have jam can compile the thing.
>

Well, I was thinking about generating the Makefiles from Jam itself.
Given that it knows all about dependencies, and that it has pretty good
string manipulation routines, it shouldn't be that hard..

(Also, relying on Perl or Python on the host isn't something I really
(Continue reading)

David Turner | 2 Mar 2001 20:41

Jam binaries for Windows 95/98 and OS/2

Hello,

  I've finally publicly posted my changes. Have a look at
  the following addresses:

    ftp://ftp.freetype.org/pub/contrib/jam/jam-win.zip

      contains a pre-compiled Jam binary for Windows NT
      and Windows 95/98, that supports the following
      compilers: Visual C++, Intel C++, Borland C++,
      Watcom C++, Mingw (gcc) as well as LCC-Win32

    ftp://ftp.freetype.org/pub/contrib/jam/jam-os2.zip

      contains a pre-compiled Jam binary for OS/2, that
      supports the EMX and Watcom compilers/toolsets
      (Jam 2.3 only supports Watcom). VisualAge is in
      the works..

    ftp://ftp.freetype.org/pub/contrib/jam/jam-src.zip

      is my version of the Jam sources, based on version
      2.3. they were used to build the two binaries above

  I'm releasing these files because several people have
  already asked me for the W95/98 binaries, and because
  I want to use them as soon as possible in order to get
  rid of the ugly build system in FreeType 2.

  Note that it's just a "quick hack", that many things may
(Continue reading)

Arnt Gulbrandsen | 2 Mar 2001 22:03

Re: Jam with Windows 95/98

David Turner <david.turner <at> freetype.org>
> Well, I was thinking about generating the Makefiles from Jam itself.
> Given that it knows all about dependencies, and that it has pretty good
> string manipulation routines, it shouldn't be that hard..

Probably about as hard as its current job, I'd guess.

Might I ask why you'd want to do this?

--Arnt

Beman Dawes | 4 Mar 2001 15:57
Picon
Favicon
Gravatar

Re: Win 2K path in quotes?

At 10:35 AM 2/26/2001 -0500, Beman Dawes wrote:

 >Jambase doesn't seem to have quotes around paths based on MSVCNT, as
 >required by Windows for directory and file names with embedded spaces.
 >
 >What am I missing?

What I was missing was the obvious workaround of using the old 8.3 names 
that Windows generates for each real directory and file name.  Ugly, but it 
does appear to work.

It might be a good idea to add something to the docs.  Perhaps add a final 
paragraph to jam.html - LANGUAGE - Lexical Features:

Directory and file names with embedded whitespace characters will not work 
correctly, because Jam treats the whitespace as a token separator.  The 
workaround for MS Windows is to use the 8.3 form of names.  For example, 
"c:\Program Files\Microsoft Visual Studio\vc98" might become 
"c:\progra~1\micros~2\vc98".  The exact translation to 8.3 names is system 
dependent.

--Beman

Beman Dawes | 5 Mar 2001 13:53
Picon
Favicon
Gravatar

Build multiple flavors of a library?

It is common to need to build multiple flavors of a library.  For example, 
release and debugging versions with single, multi-threaded, and dynamic 
linking.  2 * 3 = total of 6 libraries.  Each should go in a different 
directory.

How would I go about doing this with a single invocation of Jam?

Thanks,

--Beman Dawes

Leon Glozman | 5 Mar 2001 13:56

How can I count object files for any exe or lib in Jam language?

How can I count object files for any exe or lib in Jam language?

Chris Antos | 6 Mar 2001 15:14
Picon

Precompiled headers

I can't quite get the dependencies right with Jam for precompiled
headers (MSVCNT).  Anyone already have rules with proper dependencies
for the pch?

The closest I've gotten was that it worked fine as long as I let it
build "all", but if I tried to build a specific "foo.exe" then it tried
to build the Main foo : foo.cpp ; object prior to the PCH (that's the
only dep problem remaining, but it's a real bugger trying to eradicate
it).

Moving foo.cpp into a Library FOOLIB : foo.cpp otherfiles.cpp ; kind of
works except that the linker complains because I'm only linking from
libs so it doesn't know for sure the right target platform (ok,
whatever).  I can work around that a few different ways, but the bottom
line is I should just be able to get the dependencies right and have the
whole problem go away.

In an attempt to get the deps totally correct, I've tried making
surgical changes to jambase to introduce support for a SubDirPrecompHdr
rule that sets up some per-subdir variables used by the C++ rule (to
indicate the PCH name, etc) and a new Pch rule (to create the PCH).
(for whatever reason MSVC is choosing to often ignore the PCH if I use
the /YX flag for automatic pch).  This approach is not working very
well, because although it has the deps for the pch file right, the deps
are busted for everything else such that it recompiles everything (minus
the pchs) each time.

Help?

// chris 
(Continue reading)

Leon Glozman | 7 Mar 2001 14:06

Different compilation flags for dll & exe creation

I work in WATCOM project. I want to create some dllls & executables. The
problem is that compilation flags for dlls & executables are different (dll
compilation flags have -bd, exe compilation flags are without it), but "rule
C++" in Jam "don't know", if you should create objects for dll or executable
compilation.

How I can solve the problem?

Chris Antos | 10 Mar 2001 06:26
Picon

Multiple target files from one action?

I finally seem to have gotten the dependencies right for MSVC
precompiled headers (.pch) and interface files (.idl).  It was no small
task, so I feel compelled to share: if anyone wants the rules/actions,
let me know.  In particular, they work for both "jam -j" and "jam
target".  Very minor tweaks to the C++, Library, and SubDir rules.

// chris 


Gmane