added some notes in russian (sorry, i cannot into proper translations)
[k8jam.git] / doc / Jambase.html
blob4999f820d8df495086ea1be11876ed337b332807
1 <HTML>
2 <TITLE>
3 Jambase Reference
4 </TITLE>
5 <BODY>
6 <CENTER>
7 <a href=http://www.perforce.com/jam/jam.html>
8 Jam
9 </a>
10 <H1>
11 <A NAME="TOP">
12 Jambase Reference
13 </A>
14 </H1>
15 </CENTER>
16 <P>
17 Jambase is a base set of Jam rules which
18 provide roughly make(1)-like functionality for
19 <a href="Jam.html"><b>jam</b></A>, the Jam executable program.
20 This document, which started out as the Jambase(5) man page,
21 is a reference guide to the
22 <A href="#RULES">rules</A>,
23 <A href="#PSEUDOTARGETS">pseudotargets</A>,
24 and <A href="#VARS">variables</A>
25 defined in Jambase for use in Jamfiles.
26 <P>
27 For further information see:
28 <UL>
29 <LI>
30 <a href="Jamfile.html">Using Jamfiles and Jambase</A>
31 <LI>
32 <a href="Jam.html">The Jam Executable Program</A>
33 </UL>
34 <P>
35 For detailed information about any of the rules summarized below,
36 see the Jambase file itself.
37 <HR>
38 <H2>
39 <A NAME="RULES">
40 Jambase Rules
41 </A>
42 </H2>
43 <P>
44 <B>As</B> <I>obj.o</I> : <I>source.s</I> ;
45 <BLOCKQUOTE>
46 Assemble the file <I>source.s.</I> Called by the Object
47 rule.
48 </BLOCKQUOTE>
49 <B>Bulk</B> <I>directory</I> : <I>sources</I> ;
50 <BLOCKQUOTE>
51 Copies <I>sources</I> into <I>directory.</I>
52 </BLOCKQUOTE>
53 <B>Cc</B> <I>object</I> : <I>source</I> ;
54 <BLOCKQUOTE>
55 Compile the file <I>source</I> into <I>object,</I> using the C
56 compiler $(CC), its flags $(CCFLAGS) and $(OPTIM),
57 and the header file directories $(HDRS). Called by
58 the Object rule.
59 </BLOCKQUOTE>
60 <B>C++</B> <I>obj.o</I> : <I>source.cc</I> ;
61 <BLOCKQUOTE>
62 Compile the C++ source file <I>source.cc.</I> Called by
63 the Object rule.
64 </BLOCKQUOTE>
65 <B>Chmod</B> <I>target</I> ;
66 <BLOCKQUOTE>
67 <I>(Unix and VMS only.)</I>
68 Change file permissions on <I>target</I> to
69 target-specific $(MODE) value set by Link, File,
70 Install*, and Shell rules.
71 </BLOCKQUOTE>
73 <B>Clean</B> <I>clean</I> : <I>targets</I> ;
74 <BLOCKQUOTE>
75 Removes existing <I>targets</I> when <I>clean</I> is built.
76 clean is not a dependency of all, and must be built
77 explicitly for targets to be removed.
78 </BLOCKQUOTE>
79 <B>FDefines</B> <I>defines</I> ; <BLOCKQUOTE>
80 Expands a list of definitions into a list of compiler
81 (or preprocessor) switches (such as
82 -D<I>symbol</I>=<I>val</I> on Unix)
83 to pass the definitions.
84 </BLOCKQUOTE>
85 <B>File</B> <I>target</I> : <I>source</I> ;
86 <BLOCKQUOTE>
87 Copies <I>source</I> into <I>target.</I>
88 </BLOCKQUOTE>
89 <B>FIncludes</B> <I>dirs</I> ; <BLOCKQUOTE>
90 Expands a list of directories into a list of compiler
91 (or preprocessor) switches (such as -I<I>dir</I> on Unix)
92 to add the directories to the header inclusion search path.
93 </BLOCKQUOTE>
94 <B>Fortran</B> <I>obj.o</I> : <I>source.f</I> ;
95 <BLOCKQUOTE>
96 Compile the Fortran source file <I>source.f.</I> Called
97 by the Object rule.
98 </BLOCKQUOTE>
99 <B>FQuote</B> <I>files</I> ; <BLOCKQUOTE>
100 Returns each of <I>files</I> suitably quoted so as to hide shell
101 metacharacters (such as whitespace and filename matching wildcards)
102 from the shell.
103 </BLOCKQUOTE>
105 <B>GenFile</B> <I>target</I> : <I>image</I> <I>sources</I> ;
106 <BLOCKQUOTE>
107 Runs the command "<I>image</I> <I>target</I> <I>sources</I>"
108 to create <I>target</I> from <I>sources</I> and
109 <I>image</I>. (where <I>image</I> is an
110 executable built by the Main rule.)
111 </BLOCKQUOTE>
112 <B>HardLink</B> <I>target</I> : <I>source</I> ;
113 <BLOCKQUOTE>
114 Makes <I>target</I> a hard link to <I>source,</I> if it isn't one
115 already. (Unix only.)
116 </BLOCKQUOTE>
117 <B>HdrRule</B> <I>source</I> : <I>headers</I> ;
118 <BLOCKQUOTE>
119 Arranges the proper dependencies when the file
120 <I>source</I> includes the files <I>headers</I> through the
121 "#include" C preprocessor directive.
123 This rule is not intended to be called explicitly.
124 It is called automatically during header scanning on
125 sources handled by the Object rule (e.g., sources in
126 Main or Library rules).
127 </BLOCKQUOTE>
128 <B>InstallBin</B> <I>dir</I> : <I>sources</I> ; <BLOCKQUOTE>
129 Copy <I>sources</I> into <I>dir</I> with mode
130 $(EXEMODE).
131 </BLOCKQUOTE>
132 <B>InstallLib</B> <I>dir</I> : <I>sources</I> ; <BLOCKQUOTE>
133 Copy <I>sources</I> into <I>dir</I> with mode
134 $(FILEMODE).
135 </BLOCKQUOTE>
136 <B>InstallMan</B> <I>dir</I> : <I>sources</I> ; <BLOCKQUOTE>
137 Copy <I>sources</I> into the appropriate subdirectory
138 of <I>dir</I> with mode $(FILEMODE). The subdirectory
139 is man<I>s,</I> where <I>s</I> is the suffix of
140 each of sources.
141 </BLOCKQUOTE>
142 <B>InstallShell</B> <I>dir</I> : <I>sources</I> ; <BLOCKQUOTE>
143 Copy <I>sources</I> into <I>dir</I> with mode
144 $(SHELLMODE).
145 </BLOCKQUOTE>
146 <B>Lex</B> <I>source.c</I> : <I>source.l</I> ; <BLOCKQUOTE>
147 Process the lex(1) source file <I>source.l</I> and
148 rename the lex.yy.c to <I>source.c.</I> Called by
149 the Object rule.
150 </BLOCKQUOTE>
151 <B>Library</B> <I>library</I> : <I>sources</I> ; <BLOCKQUOTE>
152 Compiles <I>sources</I> and archives them into
153 <I>library.</I> The intermediate <I>objects</I>
154 are deleted. Calls Objects and LibraryFromObjects.
156 If Library is invoked with no suffix on <I>library</I>,
157 the $(SUFLIB) suffix is used.
158 </BLOCKQUOTE>
159 <B>LibraryFromObjects</B> <I>library</I> : <I>objects</I> ;
160 <BLOCKQUOTE>
161 Archives <I>objects</I> into <I>library.</I> The
162 <I>objects</I> are then deleted.
164 If <I>library</I> has no suffix, the $(SUFLIB) suffix is used.
165 </BLOCKQUOTE>
166 <B>Link</B> <I>image</I> : <I>objects</I> ;
167 <BLOCKQUOTE>
168 Links <I>image</I> from <I>objects</I> and sets
169 permissions on <I>image</I> to $(EXEMODE).
170 <I>Image</I> must be actual filename; suffix is not
171 supplied.
172 Called by Main.
174 </BLOCKQUOTE>
175 <B>LinkLibraries</B> <I>image</I> : <I>libraries</I> ;
176 <BLOCKQUOTE>
177 Makes <I>image</I> depend on <I>libraries</I> and
178 includes them during the linking.
180 <I>Image</I> may be referenced without a suffix in this
181 rule invocation; LinkLibraries supplies the suffix.
182 </BLOCKQUOTE>
183 <B>Main</B> <I>image</I> : <I>sources</I> ;
184 <BLOCKQUOTE>
185 Compiles <I>sources</I> and links them into <I>image.</I>
186 Calls Objects and MainFromObjects.
188 <I>Image</I> may be referenced without a suffix in this
189 rule invocation; Main supplies the suffix.
190 </BLOCKQUOTE>
191 <B>MainFromObjects</B> <I>image</I> : <I>objects</I> ;
192 <BLOCKQUOTE>
193 Links <I>objects</I> into <I>image.</I> Dependency
194 of exe. MainFromObjects supplies the suffix on <I>image</I>
195 filename.
196 </BLOCKQUOTE>
197 <B>MakeLocate</B> <I>target</I> : <I>dir</I> ;
198 <BLOCKQUOTE>
199 Creates <I>dir</I> and causes <I>target</I> to be built
200 into <I>dir</I>.
201 </BLOCKQUOTE>
202 <B>MkDir</B> <I>dir</I> ;
203 <BLOCKQUOTE>
204 Creates <I>dir</I> and its parent directories.
205 </BLOCKQUOTE>
206 <B>Object</B> <I>object</I> : <I>source</I> ;
207 <BLOCKQUOTE>
208 Compiles a <I>single</I> source file source into
209 <I>object.</I> The Main and Library rules use
210 this rule to compile source files.
212 Causes <I>source</I> to be scanned for "#include"
213 directives and calls HdrRule to make all included
214 files dependedencies of <I>object</I>.
216 Calls one of the following rules to do the actual
217 compiling, depending on the suffix of source:
218 <PRE>
219 *.c: Cc
220 *.cc: C++
221 *.cpp: C++
222 *.C: C++
223 *.l: Lex
224 *.y: Yacc
225 *.*: UserObject
226 </PRE>
227 </BLOCKQUOTE>
228 <B>ObjectC++Flags</B> <I>source</I> : <I>flags</I> ;
229 <BR>
230 <B>ObjectCcFlags</B> <I>source</I> : <I>flags</I> ;
231 <BLOCKQUOTE>
232 Add <I>flags</I> to the source-specific
233 value of $(CCFLAGS) or $(C++FLAGS) when compiling <I>source.</I>
234 Any file suffix on <I>source</I> is ignored.
235 </BLOCKQUOTE>
236 <B>ObjectDefines</B> <I>object</I> : <I>defines</I> ; <BLOCKQUOTE>
237 Adds preprocessor symbol definitions to the (gristed)
238 target-specific $(CCDEFS) for the <I>object</i>.
239 </BLOCKQUOTE>
240 <B>ObjectHdrs</B> <I>source</I> : <I>dirs</I> ; <BLOCKQUOTE>
241 Add <I>dirs</I> to the source-specific value of
242 $(HDRS) when scanning and compiling <I>source.</I>
243 Any file suffix on <I>source</I> is ignored.
244 </BLOCKQUOTE>
245 <B>Objects</B> <I>sources</I> ; <BLOCKQUOTE>
246 For each source file in <I>sources,</I> calls
247 Object to compile the source file into a similarly
248 named object file.
249 </BLOCKQUOTE>
250 <B>RmTemps</B> <I>targets</I> : <I>sources</I> ; <BLOCKQUOTE>
251 Marks <I>sources</I> as temporary with the TEMPORARY
252 rule, and deletes <I>sources</I> once <I>targets</I>
253 are built. Must be the last rule invoked on
254 <I>targets.</I> Used internally by LibraryFromObjects rule.
255 </BLOCKQUOTE>
256 <B>Setuid</B> <I>images</I> ; <BLOCKQUOTE>
257 Sets the setuid bit on each of <I>images</I> after
258 linking. (Unix only.)
260 </BLOCKQUOTE>
261 <B>SoftLink</B> <I>target</I> : <I>source</I> ;
262 <BLOCKQUOTE>
263 Makes <I>target</I> a symbolic link to <I>source,</I> if it isn't one
264 already. (Unix only.)
265 </BLOCKQUOTE>
266 <B>SubDir</B> <I>TOP d1 ... dn</I> ;
267 <BLOCKQUOTE>
268 Sets up housekeeping for the source files located
269 in <I><CODE>$(TOP)/d1/.../dn</CODE></I>:
270 <UL>
271 <LI>Reads in rules file associated with <I>TOP</I>,
272 if it hasn't already been read.
273 <LI>Initializes variables for search paths,
274 output directories, compiler
275 flags, and grist, using <I>d1 ... dn</I> tokens.
276 </UL>
278 <I>TOP</I> is the name of a variable;
279 <I>d1</I> thru <I>dn</I> are elements
280 of a directory path.
281 </BLOCKQUOTE>
282 <B>SubDirC++Flags</B> <I>flags</I> ;
283 <BR>
284 <B>SubDirCcFlags</B> <I>flags</I> ;
285 <BLOCKQUOTE>
286 Adds <I>flags</I> to the compiler flags for source files
287 in SubDir's directory.
288 </BLOCKQUOTE>
289 <B>SubDirHdrs</B> <I>d1 ... dn</I> ;
290 <BLOCKQUOTE>
291 Adds the path <I>d1/.../dn/</I> to the header search paths for
292 source files in SubDir's directory. <I>d1</I> through <I>dn</I>
293 are elements of a directory path.
294 </BLOCKQUOTE>
295 <B>SubInclude</B> <I>VAR d1 ... dn</I> ;
296 <BLOCKQUOTE>
297 Reads the Jamfile in <I><CODE>$(VAR)/d1/.../dn/</CODE></I>.
298 </BLOCKQUOTE>
299 <B>Shell</B> <I>image</I> : <I>source</I> ; <BLOCKQUOTE>
300 Copies <I>source</I> into the executable sh(1)
301 script <I>image.</I> Ensures that the first line of
302 the script is $(SHELLHEADER) (default #!/bin/sh).
303 </BLOCKQUOTE>
304 <B>Undefines</B> <I>images</I> : <I>symbols</I> ; <BLOCKQUOTE>
305 Adds flags to mark <I>symbols</I> as undefined
306 on link command for <I>images</I>.
307 <I>Images</I> may be referenced unsuffixed; the
308 Undefines rule supplies the suffix.
309 </BLOCKQUOTE>
310 <B>UserObject</B> <I>object</I> : <I>source</I> ; <BLOCKQUOTE>
311 This rule is called by Object for source
312 files with unknown suffixes, and should be defined
313 in Jamrules
314 with a user-provided rule to handle the source file
315 types not handled by the Object rule.
316 The Jambase UserObject rule merely issues a
317 complaint when it encounters <I>source</I> with
318 files suffixes it does not recognize.
319 </BLOCKQUOTE>
320 <B>Yacc</B> <I>source.c</I> : <I>source.y</I> ; <BLOCKQUOTE>
321 Process the yacc(1) file <I>source.y</I> and renamed
322 the resulting y.tab.c and y.tab.h to <I>source.c.</I>
323 Produces a y.tab.h and renames it to <I>source.h.</I>
324 Called by the <B>Object</B> rule.
325 </BLOCKQUOTE>
327 <HR>
328 <A NAME="PSEUDOTARGETS">
329 <H3>
330 Jambase Pseudotargets
331 </H3>
332 </A>
334 There are two kinds of Jam targets: file targets and pseudotargets.
335 File targets are objects that can be found in the filesystem.
336 Pseudotargets are symbolic, and usually represent other targets.
337 Most Jambase rules that define file targets also define pseudotargets
338 which are dependent on types of file targets. The Jambase pseudotargets
339 are:
340 <CENTER>
341 <TABLE CELLPADDING=5%>
342 <TR><TD>exe
343 <TD>Executables linked by the Main or MainFromObjects rules
345 <TR><TD>lib
346 <TD>Libraries created by the Library or LibraryFromObjects rules
348 <TR><TD>obj
349 <TD>Compiled objects used to create Main or Library targets
351 <TR><TD>dirs
352 <TD>Directories where target files are written
354 <TR><TD>file
355 <TD>Files copied by File and Bulk rules
357 <TR><TD>shell
358 <TD>Files copied by Shell rule
360 <TR><TD>clean
361 <TD>Removal of built targets (except files copied by Install* rules)
363 <TR><TD>install
364 <TD>Files copied by Install* rules
366 <TR><TD>uninstall
367 <TD>Removal of targets copied by Install* rules
369 </TABLE>
370 </CENTER>
372 In addition, Jambase makes the <b>jam</b> default target "all"
373 depend on "exe", "lib", "obj", "files", and "shell".
376 <HR>
377 <A NAME="VARS">
378 <H3>
379 Jambase Variables
380 </H3>
381 </A>
383 Most of the following variables have default values for
384 each platform; refer to the Jambase file to see what those
385 defaults are.
387 ALL_LOCATE_TARGET
388 <BLOCKQUOTE>
389 Alternative location of built targets. By default,
390 Jambase rules locate built targets in the source
391 tree. By setting $(ALL_LOCATE_TARGET)
392 in Jamrules, you can cause <b>jam</b>
393 to write built targets to a location outside
394 the source tree.
395 </BLOCKQUOTE>
399 <BLOCKQUOTE>
400 The archive command used to update Library
401 and LibraryFromObjects targets.
402 </BLOCKQUOTE>
404 <BLOCKQUOTE>
405 The assembler for As rule targets.
406 </BLOCKQUOTE>
408 ASFLAGS
410 <BLOCKQUOTE>
411 Flags handed to the assembler for As.
412 </BLOCKQUOTE>
416 <BLOCKQUOTE>
417 The name of awk interpreter, used when copying a
418 shell script for the Shell rule.
419 </BLOCKQUOTE>
421 BCCROOT
422 <BLOCKQUOTE>
423 Selects Borland compile and link actions on NT.
424 </BLOCKQUOTE>
427 BINDIR
429 <BLOCKQUOTE>
430 Not longer used.
431 (I.e., used only for backward compatibility with the
432 obsolete INSTALLBIN rule.)
433 </BLOCKQUOTE>
437 <BLOCKQUOTE>
438 C compiler used for Cc rule targets.
439 </BLOCKQUOTE>
441 CCFLAGS
443 <BLOCKQUOTE>
444 Compile flags for Cc rule targets.
445 The Cc rule sets target-specific $(CCFLAGS)
446 values on its targets.
447 </BLOCKQUOTE>
451 <BLOCKQUOTE>
452 C++ compiler used for C++ rule targets.
453 </BLOCKQUOTE>
455 C++FLAGS
457 <BLOCKQUOTE>
458 Compile flags for C++ rule targets.
459 The C++ rule sets target-specific $(C++FLAGS)
460 values on its targets.
461 </BLOCKQUOTE>
463 CHMOD
465 <BLOCKQUOTE>
466 Program (usually chmod(1)) used to set file
467 permissions for Chmod rule.
468 </BLOCKQUOTE>
472 <BLOCKQUOTE>
473 The file copy program, used by File and Install* rules.
474 </BLOCKQUOTE>
476 CRELIB
478 <BLOCKQUOTE>
479 If set, causes the Library rule to invoke the CreLib
480 rule on the target library before attempting to archive
481 any members, so that the library can be created if
482 needed.
483 </BLOCKQUOTE>
487 <BLOCKQUOTE>
488 On Macintosh, the root of the Code Warrior Pro 5 directory.
489 </BLOCKQUOTE>
491 DEFINES
493 <BLOCKQUOTE>
494 Preprocessor symbol definitions for Cc and C++ rule targets.
495 The Cc and C++ rules set target-specific $(CCDEFS)
496 values on their targets, based on $(DEFINES). (The
497 "indirection" here is required to support compilers,
498 like VMS, with baroque command line syntax for
499 setting symbols).
500 </BLOCKQUOTE>
504 <BLOCKQUOTE>
505 The operating system-specific name for the current directory.
506 </BLOCKQUOTE>
508 DOTDOT
510 <BLOCKQUOTE>
511 The operating system-specific name for the parent directory.
512 </BLOCKQUOTE>
514 EXEMODE
516 <BLOCKQUOTE>
517 Permissions for executables linked with Link, Main,
518 and MainFromObjects, on platforms with a Chmod action.
519 </BLOCKQUOTE>
521 FILEMODE
523 <BLOCKQUOTE>
524 Permissions for files copied by File or Bulk,
525 on platforms with a Chmod action.
526 </BLOCKQUOTE>
528 FORTRAN
530 <BLOCKQUOTE>
531 The Fortran compiler used by Fortran rule.
532 </BLOCKQUOTE>
534 FORTRANFLAGS
536 <BLOCKQUOTE>
537 Fortran compiler flags for Fortran rule targets.
538 </BLOCKQUOTE>
540 GROUP
542 <BLOCKQUOTE>
543 <I>(Unix only.)</I>
544 The group owner for Install* rule targets.
545 </BLOCKQUOTE>
547 HDRGRIST
549 <BLOCKQUOTE>
550 If set, used by the HdrRule to distinguish header files
551 with the same name in diffrent directories.
552 </BLOCKQUOTE>
554 HDRPATTERN
556 <BLOCKQUOTE>
557 A regular expression pattern that matches
558 C preprocessor "#include" directives in source files
559 and returns the name of the included file.
560 </BLOCKQUOTE>
562 HDRRULE
564 <BLOCKQUOTE>
565 Name of the rule to invoke with the results of header file
566 scanning. Default is "HdrRule".
568 This is a jam-special variable. If both HDRRULE and HDRSCAN
569 are set on a target,
570 that target will be scanned for lines
571 matching $(HDRSCAN), and $(HDDRULE) will be
572 invoked on included files found in the matching $(HDRSCAN) lines.
573 </BLOCKQUOTE>
575 HDRS
577 <BLOCKQUOTE>
578 Directories to be searched for header files.
579 This is used by the Object rule to:
580 <UL>
581 <LI>set up search paths for finding files returned
582 by header scans
583 <LI>add -I flags on compile commands
584 </UL>
585 (See STDHDRS.)
586 </BLOCKQUOTE>
588 HDRSCAN
590 <BLOCKQUOTE>
591 Regular expression pattern to use for header file
592 scanning. The Object rule sets this to $(HDRPATTERN).
593 This is a jam-special variable; see HDRRULE.
594 </BLOCKQUOTE>
596 HDRSEARCH
598 <BLOCKQUOTE>
599 Used by the HdrRule to fix the list of directories where
600 header files can be found for a given source file.
601 </BLOCKQUOTE>
603 INSTALLGRIST
605 <BLOCKQUOTE>
606 Used by the Install* rules to grist paths to installed
607 files; defaults to "installed".
608 </BLOCKQUOTE>
610 JAMFILE
612 <BLOCKQUOTE>
613 Default is "Jamfile"; the name of the user-written
614 rules file found in each source directory.
615 </BLOCKQUOTE>
617 JAMRULES
619 <BLOCKQUOTE>
620 Default is "Jamrules"; the name of a rule definition
621 file to be read in at the first SubDir rule invocation.
622 </BLOCKQUOTE>
624 KEEPOBJS
626 <BLOCKQUOTE>
627 If set, tells the LibraryFromObjects rule not to delete
628 object files once they are archived.
629 </BLOCKQUOTE>
633 <BLOCKQUOTE>
634 The lex(1) command and flags.
635 </BLOCKQUOTE>
637 LIBDIR
639 <BLOCKQUOTE>
640 Not longer used.
641 (I.e., used only for backward compatibility with the
642 obsolete INSTALLLIB rule.)
643 </BLOCKQUOTE>
645 LINK
647 <BLOCKQUOTE>
648 The linker. Defaults to $(CC).
649 </BLOCKQUOTE>
651 LINKFLAGS
653 <BLOCKQUOTE>
654 Flags handed to the linker. Defaults to $(CCFLAGS).
655 </BLOCKQUOTE>
657 LINKLIBS
659 <BLOCKQUOTE>
660 List of external libraries to link with. The target image
661 does not depend on these libraries.
662 </BLOCKQUOTE>
666 <BLOCKQUOTE>
667 The hard link command for HardLink rule.
668 </BLOCKQUOTE>
670 LOCATE_SOURCE
671 <BLOCKQUOTE>
672 Used to set the location of generated source files.
673 The Yacc, Lex, and GenFile rules set LOCATE on
674 their targets to $(LOCATE_SOURCE).
675 $(LOCATE_SOURCE) is initialized by the SubDir rule
676 to the source directory itself.
677 (Also, see ALL_LOCATE_TARGET.)
678 </BLOCKQUOTE>
680 LOCATE_TARGET
681 <BLOCKQUOTE>
682 Used to set the location of built binary targets.
683 The Object rule, and hence the Main and Library rules,
684 set LOCATE on their targets to $(LOCATE_TARGET).
685 $(LOCATE_TARGET) is initialized by the
686 SubDir rule to the source directory itself.
687 (See ALL_LOCATE_TARGET.)
688 </BLOCKQUOTE>
691 MANDIR
693 <BLOCKQUOTE>
694 Not longer used.
695 (I.e., used only for backward compatibility with the
696 obsolete INSTALLMAN rule.)
697 </BLOCKQUOTE>
699 MKDIR
701 <BLOCKQUOTE>
702 The 'create directory' command used for the MkDir
703 rule.
704 </BLOCKQUOTE>
706 MODE
708 <BLOCKQUOTE>
709 The target-specific file mode (permissions) for targets
710 of the Shell, Setuid, Link, and Install* rules.
711 Used by the Chmod action; hence relevant to NT and VMS
712 only.
713 </BLOCKQUOTE>
715 MSVC
716 <BLOCKQUOTE>
717 Selects Microsoft Visual C 16-bit compile & link
718 actions on NT.
719 </BLOCKQUOTE>
721 MSVCNT
722 <BLOCKQUOTE>
723 Selects Microsoft Visual C NT 5.0 and earlier compile
724 & link actions on NT.
725 </BLOCKQUOTE>
727 MSVCDIR
728 <BLOCKQUOTE>
729 Selects Microsoft Visual C NT 6.0 and later compile
730 & link actions on NT. These are identical to versions
731 5.0 and earlier -- it just seems Microsoft changed the
732 name of the variable.
733 </BLOCKQUOTE>
738 <BLOCKQUOTE>
739 The file rename command and options.
740 </BLOCKQUOTE>
742 NEEDLIBS
744 <BLOCKQUOTE>
745 The list of libraries used when linking an executable.
746 Used by the Link rule.
747 </BLOCKQUOTE>
749 NOARSCAN
751 <BLOCKQUOTE>
752 If set, indicates that library members' timestamps can't
753 be found, and prevents the individual objects from being
754 deleted, so that their timestamps can be used instead.
755 </BLOCKQUOTE>
757 NOARUPDATE
759 <BLOCKQUOTE>
760 If set, indicates that libraries can't be updated, but only
761 created whole.
762 </BLOCKQUOTE>
764 OPTIM
766 <BLOCKQUOTE>
767 The C compiler flag for optimization, used by Cc and C++
768 rules.
769 </BLOCKQUOTE>
771 OSFULL
773 <BLOCKQUOTE>
774 The concatenation of $(OS)$(OSVER)$(OSPLAT), used when jam
775 builds itself to determine the target binary directory.
776 $(OS) and $(OSPLAT) are determined by jam at its compile
777 time (in jam.h). $(OSVER) can optionally be set by the user.
779 </BLOCKQUOTE>
781 OWNER
783 <BLOCKQUOTE>
784 The owner of installed files. Used by Install* rules.
785 </BLOCKQUOTE>
787 RANLIB
789 <BLOCKQUOTE>
790 The name of the ranlib command. If set, causes
791 the Ranlib action to be applied after the
792 Archive action to targets of the Library rule.
793 </BLOCKQUOTE>
795 RELOCATE
797 <BLOCKQUOTE>
798 If set, tells the Cc rule to move the output object
799 file to its target directory because the cc command
800 has a broken -o option.
801 </BLOCKQUOTE>
805 <BLOCKQUOTE>
806 The command and options to remove a file.
807 </BLOCKQUOTE>
809 SEARCH_SOURCE
811 <BLOCKQUOTE>
812 The directory to find sources listed with Main,
813 Library, Object, Bulk, File, Shell, InstallBin,
814 InstallLib, and InstallMan rules. This works by
815 setting the jam-special variable SEARCH to the
816 value of $(SEARCH_SOURCE) for each of the rules'
817 sources. The SubDir rule initializes SEARCH_SOURCE
818 for each directory.
819 </BLOCKQUOTE>
821 SHELLHEADER
823 <BLOCKQUOTE>
824 A string inserted to the first line of every file
825 created by the Shell rule.
826 </BLOCKQUOTE>
828 SHELLMODE
830 <BLOCKQUOTE>
831 Permissions for files installed by Shell rule.
832 </BLOCKQUOTE>
834 SOURCE_GRIST
836 <BLOCKQUOTE>
837 Set by the SubDir to a value derived from the
838 directory name, and used by Objects and related
839 rules as 'grist' to perturb file names.
840 </BLOCKQUOTE>
842 STDHDRS
844 <BLOCKQUOTE>
845 Directories where headers can be found without
846 resorting to using the flag to the C compiler.
847 The $(STDHDRS) directories are used to find
848 headers during scanning, but are not passed to the
849 compiler commands as -I paths.
850 </BLOCKQUOTE>
852 SUBDIR
854 <BLOCKQUOTE>
855 The path from the current directory to the directory
856 last named by the SubDir rule.
857 </BLOCKQUOTE>
861 <BLOCKQUOTE>
862 The path from the current directory to the directory
863 that has the Jamrules file. Used by the SubDir rule.
864 </BLOCKQUOTE>
866 SUFEXE
868 <BLOCKQUOTE>
869 The suffix for executable files, if none provided.
870 Used by the Main rule.
871 </BLOCKQUOTE>
873 SUFLIB
875 <BLOCKQUOTE>
876 The suffix for libraries. Used by the Library and
877 related rules.
878 </BLOCKQUOTE>
880 SUFOBJ
882 <BLOCKQUOTE>
883 The suffix for object files. Used by the Objects
884 and related rules.
885 </BLOCKQUOTE>
887 UNDEFFLAG
889 <BLOCKQUOTE>
890 The flag prefixed to each symbol for the Undefines
891 rule (i.e., the compiler flag for undefined symbols).
892 </BLOCKQUOTE>
894 WATCOM
895 <BLOCKQUOTE>
896 Selects Watcom compile and link actions on OS2.
897 </BLOCKQUOTE>
899 YACC
901 <BLOCKQUOTE>
902 The yacc(1) command.
903 </BLOCKQUOTE>
905 YACCFILES
907 <BLOCKQUOTE>
908 The base filename generated by yacc(1).
909 </BLOCKQUOTE>
911 YACCFLAGS
913 <BLOCKQUOTE>
914 The yacc(1) command flags.
915 </BLOCKQUOTE>
917 YACCGEN
919 <BLOCKQUOTE>
920 The suffix used on generated yacc(1) output.
921 </BLOCKQUOTE>
924 <HR>
925 <A HREF="#TOP">Back to top.</A>
927 Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
928 <BR>
929 Changes and additions by Ketmar // Vampire Avalon
930 </BODY>
931 </HTML>