1Jam - make(1) redux 2 3 /+\ 4 +\ Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc. 5 \+/ 6 7 This is Release 2.5 of Jam, a make-like program. 8 9 License is hereby granted to use this software and distribute it 10 freely, as long as this copyright notice is retained and modifications 11 are clearly marked. 12 13 ALL WARRANTIES ARE HEREBY DISCLAIMED. 14 15FEATURES 16 17 -> Jam is a make(1) replacement that makes building simple things 18 simple and building complicated things manageable. 19 20 -> Jam's language is expressive, making Jamfiles (c.f. Makefiles) 21 compact. Here's a sample: 22 23 Main smail : main.c map.c resolve.c deliver.c 24 misc.c parser.y alias.c pw.c headers.c 25 scanner.l getpath.c str.c ; 26 27 This builds "smail" from a dozen source files. Jam handles 28 header file dependencies automatically and on-the-fly. 29 30 -> Jam is very portable: it runs on UNIX, VMS, Mac, and NT. 31 Most Jamfiles themselves are portable, like the sample above. 32 33 -> Jam is unintrusive: it is small, it has negligible CPU 34 overhead, and it doesn't create any of its own funny files 35 (c.f. Odin, nmake, SunOS make). 36 37 -> Jam can build large projects spread across many directories 38 in one pass, without recursing, tracking the relationships 39 among all files. Jam can do this with multiple, concurrent 40 processes. 41 42 -> Jam isn't under the blinkin GNU copyright, so you can 43 incorporate it into commercial products. 44 45 46INFORMATION GUIDE 47 48 Jam.html jam and language reference. 49 50 Jambase.html Reference for the Jambase boilerplate file. 51 52 Jamfile.html Easy reading on creating a Jamfile and using jam. 53 54 RELNOTES Release 2.3 release notes. 55 56 Porting Notes on porting jam to wildcat platforms. 57 58 README This file. Includes installation instructions. 59 60 jam.c Contains the jam command's main() as well as an 61 introduction to the code, for serious hackers. 62 63 64INSTALLING 65 66 The Makefile (UNIX, NT), build.com (VMS), Build.mpw (Mac MPW) are 67 for bootstrapping. Once jam is built, it can rebuild itself. 68 69 UNIX 70 71 Build jam with make(1) on: 72 73 Platform $(OS) 74 ------------------------- 75 AIX AIX * 76 BSD/386 1.0 BSDI 77 COHERENT/386 COHERENT 78 DGUX 5.4 DGUX 79 FreeBSD FREEBSD 80 HPUX 9.0 HPUX 81 IRIX 5.0 IRIX 82 Linux LINUX 83 NEXTSTEP 3.2 NEXT 84 OSF/1 OSF 85 PTX V2.1.0 PTX 86 Solaris 2 SOLARIS * 87 SunOS4.1 SUNOS 88 Ultrix 4.2 ULTRIX 89 BeOS BEOS * 90 91 * requires editing Makefile 92 93 Windows 94 95 Build jam with nmake on: 96 97 Platform $(OS) 98 ------------------------- 99 NT NT * 100 OS/2 OS2 * 101 102 The NT MAXLINE (command line length) is still set in jam.h to 103 996, which was apparently the NT 3.5 limit. On 4.0, the limit 104 is somewhere around 10K. For now, you can increase MAXLINE in 105 jam.h so that a jam running on 4.0 will use the full command 106 line length, but that jam.exe will fail miserably on the older OS. 107 108 On NT, a variable must be set before invoking jam to tell 109 it where the C compiler lives. The name of this variable 110 depends on which compiler you are using: 111 112 BCCROOT: The Borland C compiler 113 MSVCDIR: The Microsoft Compiler 6.0 (for NT) 114 MSVCNT: The Microsoft Compiler 5.0 (for NT) 115 MSVC: The Microsoft Compiler 1.5 (for Windows) 116 117 Only MSVCNT and MSVCDIR have really been tested and are known 118 to work. 119 120 Macintosh 121 122 Build jam with Build.mpw on: 123 124 Platform $(OS) 125 ------------------------- 126 Macintosh MAC 127 128 You'll need to edit Build.mpw to set CW. 129 130 VMS 131 132 Build jam with @build.com on: 133 134 Platform $(OS) 135 ------------------------- 136 VMS 5.4 VMS 137 OPENVMS OPENVMS 138 139Comments to the author! 140 141November, 1993 - release 1.0 142March, 1995 - release 2.0 143February, 1996 - release 2.1 144November, 1997 - release 2.2 145December, 2000 - release 2.3 146March, 2002 - release 2.4 147December, 2002 - release 2.5 148 149 150Christopher Seiwald 151 152seiwald@perforce.com 153