- 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 it
- freely, as long as this copyright notice is retained and modifications
- are clearly marked.
- ALL WARRANTIES ARE HEREBY DISCLAIMED.
- FEATURES
- -> Jam is a make(1) replacement that makes building simple things
- simple 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.c
- misc.c parser.y alias.c pw.c headers.c
- scanner.l getpath.c str.c ;
- This builds "smail" from a dozen source files. Jam handles
- header 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 CPU
- overhead, 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 directories
- in one pass, without recursing, tracking the relationships
- among all files. Jam can do this with multiple, concurrent
- processes.
- -> Jam isn't under the blinkin GNU copyright, so you can
- incorporate it into commercial products.
- INFORMATION GUIDE
- Jam.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 an
- introduction to the code, for serious hackers.
- INSTALLING
- The Makefile (UNIX, NT), build.com (VMS), Build.mpw (Mac MPW) are
- for bootstrapping. Once jam is built, it can rebuild itself.
- UNIX
- Build jam with make(1) on:
- Platform $(OS)
- -------------------------
- AIX AIX *
- BSD/386 1.0 BSDI
- COHERENT/386 COHERENT
- DGUX 5.4 DGUX
- FreeBSD FREEBSD
- HPUX 9.0 HPUX
- IRIX 5.0 IRIX
- Linux LINUX
- NEXTSTEP 3.2 NEXT
- OSF/1 OSF
- PTX V2.1.0 PTX
- Solaris 2 SOLARIS *
- SunOS4.1 SUNOS
- Ultrix 4.2 ULTRIX
- BeOS BEOS *
- * requires editing Makefile
- Windows
- Build jam with nmake on:
- Platform $(OS)
- -------------------------
- NT NT *
- OS/2 OS2 *
- The NT MAXLINE (command line length) is still set in jam.h to
- 996, which was apparently the NT 3.5 limit. On 4.0, the limit
- is somewhere around 10K. For now, you can increase MAXLINE in
- jam.h so that a jam running on 4.0 will use the full command
- line length, but that jam.exe will fail miserably on the older OS.
- On NT, a variable must be set before invoking jam to tell
- it where the C compiler lives. The name of this variable
- depends on which compiler you are using:
- BCCROOT: The Borland C compiler
- MSVCDIR: 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 known
- to work.
- Macintosh
- Build jam with Build.mpw on:
- Platform $(OS)
- -------------------------
- Macintosh MAC
- You'll need to edit Build.mpw to set CW.
- VMS
- Build jam with @build.com on:
- Platform $(OS)
- -------------------------
- VMS 5.4 VMS
- OPENVMS OPENVMS
- Comments to the author!
- November, 1993 - release 1.0
- March, 1995 - release 2.0
- February, 1996 - release 2.1
- November, 1997 - release 2.2
- December, 2000 - release 2.3
- March, 2002 - release 2.4
- December, 2002 - release 2.5
- Christopher Seiwald
- seiwald@perforce.com
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 2576 | Miklos Fazekas | Integrate to jam 2.5 rc1 | 22 years ago | |
#1 | 2522 | Miklos Fazekas | Graphisoft bugfix jam | 22 years ago | |
//guest/perforce_software/jam/src/README | |||||
#6 | 2513 | rmg | Set the version number and patchlevel for the 2.5rc1 release. In RELNOTES, don't docume...nt the different behavior when a "return" is not the last statement executed in rule definition as a non-backward-compatible change (in the "Compatibility" section). « |
22 years ago | |
#5 | 2488 | rmg | Remove the /MR suffix from Jam. === computer:1666: Change 37146 by seiwald@play-seiwald... on 2002/10/21 15:23:18 « |
22 years ago | |
#4 | 1581 | rmg | README also mentions the release number - update to 2.4 and add 2.4 to the release histor...y at the bottom. « |
23 years ago | |
#3 | 1319 | rmg | Jam 2.3 + Perforce's internal changes. This change is a drop of the Perforce internal J...am changes since the 2.3 public release. The individual changes represented herein are preserved in the //guest/richard_geiger/intjam/ branch. The intent of this drop is to provide a base, from which other contributors' Jam branches may be integrated into. It is not intended to become a packaged release in this state. We will be integrating changes from other users prior to creating the next packaged release. Please refer to the src/RELNOTES file for an overview of the changes present in this integration. - Richard Geiger Open Source Engineer at Perforce « |
23 years ago | |
#2 | 486 | Perforce staff | Jam 2.3. See RELNOTES for a list of changes from 2.2.x. Just about every source... file was touched when jam got ANSI-fied. « |
24 years ago | |
#1 | 2 | laura | Add Jam/MR 2.2 source | 26 years ago |