Jam - make(1) redux/+\+\ Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.\+/This is Release 2.5 of Jam, a make-like program.License is hereby granted to use this software and distribute itfreely, as long as this copyright notice is retained and modificationsare clearly marked.ALL WARRANTIES ARE HEREBY DISCLAIMED.FEATURES-> Jam is a make(1) replacement that makes building simple thingssimple and building complicated things manageable.-> Jam's language is expressive, making Jamfiles (c.f. Makefiles)compact. Here's a sample:Main smail : main.c map.c resolve.c deliver.cmisc.c parser.y alias.c pw.c headers.cscanner.l getpath.c str.c ;This builds "smail" from a dozen source files. Jam handlesheader file dependencies automatically and on-the-fly.-> Jam is very portable: it runs on UNIX, VMS, Mac, and NT.Most Jamfiles themselves are portable, like the sample above.-> Jam is unintrusive: it is small, it has negligible CPUoverhead, and it doesn't create any of its own funny files(c.f. Odin, nmake, SunOS make).-> Jam can build large projects spread across many directoriesin one pass, without recursing, tracking the relationshipsamong all files. Jam can do this with multiple, concurrentprocesses.-> Jam isn't under the blinkin GNU copyright, so you canincorporate it into commercial products.INFORMATION GUIDEJam.html jam and language reference.Jambase.html Reference for the Jambase boilerplate file.Jamfile.html Easy reading on creating a Jamfile and using jam.RELNOTES Release 2.3 release notes.Porting Notes on porting jam to wildcat platforms.README This file. Includes installation instructions.jam.c Contains the jam command's main() as well as anintroduction to the code, for serious hackers.INSTALLINGThe Makefile (UNIX, NT), build.com (VMS), Build.mpw (Mac MPW) arefor bootstrapping. Once jam is built, it can rebuild itself.UNIXBuild jam with make(1) on:Platform $(OS)-------------------------AIX AIX *BSD/386 1.0 BSDICOHERENT/386 COHERENTDGUX 5.4 DGUXFreeBSD FREEBSDHPUX 9.0 HPUXIRIX 5.0 IRIXLinux LINUXNEXTSTEP 3.2 NEXTOSF/1 OSFPTX V2.1.0 PTXSolaris 2 SOLARIS *SunOS4.1 SUNOSUltrix 4.2 ULTRIXBeOS BEOS ** requires editing MakefileWindowsBuild jam with nmake on:Platform $(OS)-------------------------NT NT *OS/2 OS2 *The NT MAXLINE (command line length) is still set in jam.h to996, which was apparently the NT 3.5 limit. On 4.0, the limitis somewhere around 10K. For now, you can increase MAXLINE injam.h so that a jam running on 4.0 will use the full commandline length, but that jam.exe will fail miserably on the older OS.On NT, a variable must be set before invoking jam to tellit where the C compiler lives. The name of this variabledepends on which compiler you are using:BCCROOT: The Borland C compilerMSVCDIR: The Microsoft Compiler 6.0 (for NT)MSVCNT: The Microsoft Compiler 5.0 (for NT)MSVC: The Microsoft Compiler 1.5 (for Windows)Only MSVCNT and MSVCDIR have really been tested and are knownto work.MacintoshBuild jam with Build.mpw on:Platform $(OS)-------------------------Macintosh MACYou'll need to edit Build.mpw to set CW.VMSBuild jam with @build.com on:Platform $(OS)-------------------------VMS 5.4 VMSOPENVMS OPENVMSComments to the author!November, 1993 - release 1.0March, 1995 - release 2.0February, 1996 - release 2.1November, 1997 - release 2.2December, 2000 - release 2.3March, 2002 - release 2.4December, 2002 - release 2.5Christopher Seiwaldseiwald@perforce.com