README
1Jam - make(1) redux
2
3 /+\
4 +\ Copyright 1993-2014 Christopher Seiwald and Perforce Software, Inc.
5 \+/
6
7 This is Release 2.6 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 rc1
148January, 2003 - release 2.5 rc2
149April, 2003 - release 2.5 rc3
150August, 2004 - release 2.5 (rc3 moniker merely dropped)
151August, 2013 - release 2.6
152
153Christopher Seiwald
154
155seiwald@perforce.com
156