Commit | Line | Data |
---|---|---|
4ab63e33 KB |
1 | .\" Copyright (c) 1990 The Regents of the University of California. |
2 | .\" All rights reserved. | |
3 | .\" | |
4 | .\" Redistribution and use in source and binary forms are permitted | |
5 | .\" provided that the above copyright notice and this paragraph are | |
6 | .\" duplicated in all such forms and that any documentation, | |
7 | .\" advertising materials, and other materials related to such | |
8 | .\" distribution and use acknowledge that the software was developed | |
9 | .\" by the University of California, Berkeley. The name of the | |
10 | .\" University may not be used to endorse or promote products derived | |
11 | .\" from this software without specific prior written permission. | |
12 | .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR | |
13 | .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED | |
14 | .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
15 | .\" | |
16 | .\" @(#)make.1 5.1 (Berkeley) %G% | |
17 | .\" | |
18 | .TH MAKE 1 "" | |
19 | .UC 7 | |
20 | .SH NAME | |
21 | make \- maintain program dependencies | |
22 | .SH SYNOPSIS | |
23 | .ft B | |
24 | make [-eiknqrstv] [-D variable] [-d flags] [-f makefile ] [-I directory] | |
25 | [-j max_jobs] [variable=value] [target ...] | |
26 | .ft R | |
27 | .SH DESCRIPTION | |
28 | .I Make | |
29 | is a program designed to simplify the maintenance of other programs. | |
30 | Its input is a ``makefile'' which specifies files that programs and | |
31 | other files are dependent upon. | |
32 | .PP | |
33 | This manual page is intended as a reference document only. | |
34 | For a more thorough description of | |
35 | .I make | |
36 | and makefiles, please refer to | |
37 | .IR "Make -- A Tutorial" . | |
38 | .PP | |
39 | The options are as follows: | |
40 | .TP | |
41 | \-D variable | |
42 | Define | |
43 | .I variable | |
44 | to be 1, in the global context. | |
45 | .TP | |
46 | \-d flags | |
47 | Turn on debugging, and specify which portions of | |
48 | .I make | |
49 | are to print debugging information. | |
50 | .I Flags | |
51 | is one or more of the following: | |
52 | .RS | |
53 | .TP | |
54 | A | |
55 | Print all possible debugging information; equivalent to specifying | |
56 | all of the debugging flags. | |
57 | .TP | |
58 | a | |
59 | Print debugging information about archive searching and caching. | |
60 | .TP | |
61 | c | |
62 | Print debugging information about conditional evaluation. | |
63 | .TP | |
64 | d | |
65 | Print debugging information about directory searching and caching. | |
66 | .TP | |
67 | g1 | |
68 | Print the input graph before making anything. | |
69 | .TP | |
70 | g2 | |
71 | Print the input graph after making everything, or before exiting | |
72 | on error. | |
73 | .TP | |
74 | j | |
75 | Print debugging information about running multiple shells. | |
76 | .TP | |
77 | m | |
78 | Print debugging information about making targets, including modification | |
79 | dates. | |
80 | .TP | |
81 | s | |
82 | Print debugging information about suffix-transformation rules. | |
83 | .TP | |
84 | t | |
85 | Print debugging information about target list maintenance. | |
86 | .TP | |
87 | v | |
88 | Print debugging information about variable assignment. | |
89 | .RE | |
90 | .TP | |
91 | \-f makefile | |
92 | Specify a makefile to read. | |
93 | If no makefile is specified, the files ``makefile'' and ``Makefile'' | |
94 | are searched for, in that order. | |
95 | If | |
96 | .I makefile | |
97 | is ``\-'', standard input is read. | |
98 | Multiple makefile's may be specified, and are read in the order specified. | |
99 | .TP | |
100 | \-I directory | |
101 | Specify a directory in which to search for makefiles and included makefiles. | |
102 | The system makefile directory is automatically included as part of this | |
103 | list. | |
104 | .TP | |
105 | \-i | |
106 | Ignore non-zero exit of shell commands in the makefile. | |
107 | Equivalent to specifying ``\-'' before each command line in the makefile. | |
108 | .TP | |
109 | \-j max_jobs | |
110 | Specify the maximum number of jobs that | |
111 | .I make | |
112 | may have running at any one time. | |
113 | .TP | |
114 | \-k | |
115 | Continue processing after errors are encountered, but only on those targets | |
116 | that do not depend on the target whose creation caused the error. | |
117 | .TP | |
118 | \-n | |
119 | Display the commands that would have been executed, but do not actually | |
120 | execute them. | |
121 | .TP | |
122 | \-q | |
123 | Do not execute any commands, but exit 0 if the specified targets are | |
124 | up-to-date and 1, otherwise. | |
125 | .TP | |
126 | \-r | |
127 | Do not use the built-in rules specified in the system makefile. | |
128 | .TP | |
129 | \-s | |
130 | Do not echo any commands as they are executed. | |
131 | Equivalent to specifying ``@'' before each command line in the makefile. | |
132 | .TP | |
133 | \-t | |
134 | Rather than re-building a target as specified in the makefile, create it | |
135 | or update its modification time to make it appear up-to-date. | |
136 | .TP | |
137 | variable=value | |
138 | Set the value of the variable | |
139 | .I variable | |
140 | to | |
141 | .IR value . | |
142 | .PP | |
143 | There are six different types of lines in a makefile: file dependency | |
144 | specifications, shell commands, variable assignments, include statements, | |
145 | conditional directives, and comments. | |
146 | .PP | |
147 | In general, lines may be continued from one line to the next by ending | |
148 | them with a backslash (``\e''). | |
149 | The trailing newline character and initial whitespace on the following | |
150 | line are compressed into a single space. | |
151 | .SH "FILE DEPENDENCY SPECIFICATIONS" | |
152 | Dependency lines consist of one or more targets, an operator, and zero | |
153 | or more sources. | |
154 | This creates a relationship where the targets ``depend'' on the sources | |
155 | and are usually created from them. | |
156 | The exact relationship between the target and the source is determined | |
157 | by the operator that separates them. | |
158 | The three operators are as follows: | |
159 | .TP | |
160 | : | |
161 | A target is considered out-of-date if its modification time is less than | |
162 | those of any of its sources. | |
163 | Sources for a target accumulate over dependency lines when this operator | |
164 | is used. | |
165 | The target is removed if | |
166 | .I make | |
167 | is interrupted. | |
168 | .TP | |
169 | ! | |
170 | Targets are always re-created, but not until all sources have been | |
171 | examined and re-created as necessary. | |
172 | Sources for a target accumulate over dependency lines when this operator | |
173 | is used. | |
174 | The target is removed if | |
175 | .I make | |
176 | is interrupted. | |
177 | .TP | |
178 | :: | |
179 | If no sources are specified, the target is always re-created. | |
180 | Otherwise, a target is considered out-of-date if any of its sources has | |
181 | been modified more recently than the target. | |
182 | Sources for a target do not accumulate over dependency lines when this | |
183 | operator is used. | |
184 | The target will not be removed if | |
185 | .I make | |
186 | is interrupted. | |
187 | .PP | |
188 | Targets and sources may contain the shell wildcard values ``?'', ``*'', | |
189 | ``[]'' and ``{}''. | |
190 | The values ``?'', ``*'' and ``[]'' may only be used as part of the final | |
191 | component of the target or source, and must be used to describe existing | |
192 | files. | |
193 | The value ``{}'' need not necessarily be used to describe existing files. | |
194 | Expansion is in directory order, not alphabetically as done in the shell. | |
195 | .SH "SHELL COMMANDS" | |
196 | Each target may have associated with it a series of shell commands, normally | |
197 | used to create the target. | |
198 | Each of the commands in this script | |
199 | .B must | |
200 | be preceded by a tab. | |
201 | While any target may appear on a dependency line, only one of these | |
202 | dependencies may be followed by a creation script, unless the ``::'' | |
203 | operator is used. | |
204 | .PP | |
205 | If the first or first two characters of the command line are ``@'' and/or | |
206 | ``\-'', the command is treated specially. | |
207 | A ``@'' causes the command not to be echoed before it is executed. | |
208 | A ``\-'' causes any non-zero exit status of the command line to be ignored. | |
209 | .SH "VARIABLE ASSIGNMENTS" | |
210 | Variables in make are much like variables in the shell, and, by tradition, | |
211 | consist of all upper-case letters. | |
212 | The five operators that can be used to assign values to variables are as | |
213 | follows: | |
214 | .TP | |
215 | = | |
216 | Assign the value to the variable. | |
217 | Any previous value is overridden. | |
218 | .TP | |
219 | += | |
220 | Append the value to the current value of the variable. | |
221 | .TP | |
222 | ?= | |
223 | Assign the value to the variable if it is not already defined. | |
224 | .TP | |
225 | := | |
226 | Assign with expansion, i.e. expand the value before assigning it | |
227 | to the variable. | |
228 | Normally, expansion is not done until the variable is referenced. | |
229 | .TP | |
230 | != | |
231 | Expand the value and pass it to the shell for execution and assign | |
232 | the result to the variable. | |
233 | Any newlines in the result are replaced with spaces. | |
234 | .PP | |
235 | Any white-space before the assigned | |
236 | .I value | |
237 | is removed; if the value is being appended, a single space is inserted | |
238 | between the previous contents of the variable and the appended value. | |
239 | .PP | |
240 | Variables are expanded by surrounding the variable name with either | |
241 | curly braces (``{}'') or parenthesis (``()'') and preceding it with | |
242 | a dollar sign (``$''). | |
243 | If the variable name contains only a single letter, the surrounding | |
244 | braces or parenthesis are not required. | |
245 | This shorter form is not recommended. | |
246 | .PP | |
247 | Variable substitution occurs at two distinct times, depending on where | |
248 | the variable is being used. | |
249 | Variables in dependency lines are expanded as the line is read. | |
250 | Variables in shell commands are expanded when the shell command is | |
251 | executed. | |
252 | .PP | |
253 | The four different classes of variables (in order of increasing precedence) | |
254 | are: | |
255 | .TP | |
256 | environmental variables | |
257 | Variables defined as part of | |
258 | .IR make 's | |
259 | environment. | |
260 | .TP | |
261 | global variables | |
262 | Variables defined in the makefile or in included makefiles. | |
263 | .TP | |
264 | command line variables | |
265 | Variables defined as part of the command line. | |
266 | .TP | |
267 | local variables | |
268 | Variables that are defined specific to a certain target. | |
269 | The seven local variables are as follows: | |
270 | .RS | |
271 | .TP | |
272 | \&.ALLSRC | |
273 | The list of all sources for this target; also known as ``>''. | |
274 | .TP | |
275 | \&.ARCHIVE | |
276 | The name of the archive file. | |
277 | .TP | |
278 | \&.IMPSRC | |
279 | The name/path of the source from which the target is to be transformed | |
280 | (the ``implied'' source); also known as ``<''. | |
281 | .TP | |
282 | \&.MEMBER | |
283 | The name of the archive member. | |
284 | .TP | |
285 | \&.OODATE | |
286 | The list of sources for this target that were deemed out-of-date; also | |
287 | known as ``?''. | |
288 | .TP | |
289 | \&.PREFIX | |
290 | The file prefix of the file, containing only the file portion, no suffix | |
291 | or preceding directory components; also known as ``*'. | |
292 | .TP | |
293 | \&.TARGET | |
294 | The name of the target; also known as ``@''. | |
295 | .RE | |
296 | .PP | |
297 | The shorter forms ``@'', ``?'', ``>'' and ``*'' are permitted for backward | |
298 | compatibility with historical makefiles and are not recommended. | |
299 | The six variables ``@F'', ``@D'', ``<F'', ``<D'', ``*F'' and ``*D'' are | |
300 | permitted for compatibility with System V makefiles and are not recommended. | |
301 | .PP | |
302 | Four of the local variables may be used in sources on dependency lines | |
303 | because they expand to the proper value for each target on the line. | |
304 | These variables are ``.TARGET'', ``.PREFIX'', ``.ARCHIVE'', and ``.MEMBER''. | |
305 | .PP | |
306 | In addition, | |
307 | .I make | |
308 | sets or knows about the following variables: | |
309 | .TP | |
310 | $ | |
311 | A single dollar sign (``$''), i.e. ``$$'' expands to a single dollar | |
312 | sign. | |
313 | .TP | |
314 | \&.MAKE | |
315 | The name that | |
316 | .I make | |
317 | was executed with (argv[0]). | |
318 | .TP | |
319 | \&.CURDIR | |
320 | A path to the directory where | |
321 | .I make | |
322 | was executed. | |
323 | .TP | |
324 | MAKEFLAGS | |
325 | The environmental variable ``MAKEFLAGS'' may contain anything that | |
326 | may be specified on | |
327 | .IR make 's | |
328 | command line. | |
329 | Anything specified on | |
330 | .IR make 's | |
331 | command line is appended to the ``MAKEFLAGS'' variable which is then | |
332 | entered into the environment for all programs which | |
333 | .I make | |
334 | executes. | |
335 | .PP | |
336 | Variable expansion may be modified to select or modify each word of the | |
337 | variable (where a ``word'' is white-space delimited sequence of characters). | |
338 | The general format of a variable expansion is as follows: | |
339 | .RS | |
340 | ||
341 | ${variable[:modifier[:...]]) | |
342 | ||
343 | .RE | |
344 | Each modifier begins with a colon and one of the following | |
345 | special characters. | |
346 | The colon may be escaped with a backslash (``\e''). | |
347 | .TP | |
348 | E | |
349 | Replaces each word in the variable with its suffix. | |
350 | .TP | |
351 | H | |
352 | Replaces each word in the variable with everything but the last component. | |
353 | .TP | |
354 | Mpattern | |
355 | Select only those words that match the rest of the modifier. | |
356 | The standard shell wildcard characters (``*'', ``?'', and ``[]'') may | |
357 | be used. | |
358 | The wildcard characters may be escaped with a backslash (``\e''). | |
359 | .TP | |
360 | Npattern | |
361 | This is identical to ``M'', but selects all words which do not match | |
362 | the rest of the modifier. | |
363 | .TP | |
364 | R | |
365 | Replaces each word in the variable with everything but its suffix. | |
366 | .TP | |
367 | S/old_pattern/new_pattern/[g] | |
368 | Modify the first occurrence of | |
369 | .I old_pattern | |
370 | in each word to be replaced with | |
371 | .IR new_pattern . | |
372 | If a ``g'' is appended to the last slash of the pattern, all occurrences | |
373 | in each word are replaced. | |
374 | .RS | |
375 | If | |
376 | .I old_pattern | |
377 | begins with a carat (``^''), | |
378 | .I old_pattern | |
379 | is anchored at the beginning of each word. | |
380 | If | |
381 | .I old_pattern | |
382 | ends with a dollar sign (``$''), it is anchored at the end of each word. | |
383 | Inside | |
384 | .IR new_string , | |
385 | an ampersand (``&'') is replaced by | |
386 | .IR old_pattern. | |
387 | Any character may be used as a delimiter for the parts of the modifier | |
388 | string. | |
389 | The anchoring, ampersand and delimiter characters may be escaped with a | |
390 | backslash (``\e''). | |
391 | .sp | |
392 | Variable expansion occurs in the normal fashion inside both | |
393 | .I old_string | |
394 | and | |
395 | .I new_string | |
396 | with the single exception that a backslash is used to prevent the expansion | |
397 | of a dollar sign (``$''), not a preceding dollar sign as is usual. | |
398 | .RE | |
399 | .TP | |
400 | T | |
401 | Replaces each word in the variable with its last component. | |
402 | .TP | |
403 | old_string=new_string | |
404 | This is the System V style variable substitution. | |
405 | It must be the last modifier specified. | |
406 | .I Old_string | |
407 | is anchored at the end of each word, so only suffixes or entire | |
408 | words may be replaced. | |
409 | .SH "INCLUDE STATEMENTS AND CONDITIONALS" | |
410 | Makefile inclusion and conditional structures reminiscent of the C | |
411 | programming language are provided in | |
412 | .IR make . | |
413 | All such structures are identified by a line beginning with a single | |
414 | dot (``.'') character. | |
415 | Files are included with either ``.include <file>'' or ``.include "file"''. | |
416 | Variables between the angle brackets or double quotes are expanded | |
417 | to form the file name. | |
418 | If angle brackets are used, the included makefile is expected to be in | |
419 | the system makefile directory. | |
420 | If double quotes are used, the including makefile's directory and any | |
421 | directories specified using the -I option are searched before the system | |
422 | makefile directory. | |
423 | .PP | |
424 | Conditional expressions are also preceded by a single dot as the first | |
425 | chraracter of a line. | |
426 | The possible conditionals are as follows: | |
427 | .TP | |
428 | \&.undef variable | |
429 | Un-define the specified global variable. | |
430 | Only global variables may be un-defined. | |
431 | .TP | |
432 | \&.if [!] expression [ operator expression ... ] | |
433 | Test the value of an expression. | |
434 | .TP | |
435 | \&.ifdef [!] variable [ operator variable ... ] | |
436 | Test the value of an variable. | |
437 | .TP | |
438 | \&.ifndef [!] variable [ operator variable ... ] | |
439 | Test the value of an variable. | |
440 | .TP | |
441 | \&.ifmake [!] target [ operator target ... ] | |
442 | Test the the target being built. | |
443 | .TP | |
444 | \&.ifnmake [!] target [ operator target ... ] | |
445 | Test the target being built. | |
446 | .TP | |
447 | \&.else | |
448 | Reverse the sense of the last conditional. | |
449 | .TP | |
450 | \&.elif [!] expression [ operator expression ...] | |
451 | A combination of ``.else'' followed by ``.if''. | |
452 | .TP | |
453 | \&.elifdef [!] variable [ operator variable ...] | |
454 | A combination of ``.else'' followed by ``.ifdef''. | |
455 | .TP | |
456 | \&.elifndef [!] variable [ operator variable ...] | |
457 | A combination of ``.else'' followed by ``.ifndef''. | |
458 | .TP | |
459 | \&.elifmake [!] target [ operator target ...] | |
460 | A combination of ``.else'' followed by ``.ifmake''. | |
461 | .TP | |
462 | \&.elifnmake [!] target [ operator target ...] | |
463 | A combination of ``.else'' followed by ``.ifnmake''. | |
464 | .TP | |
465 | \&.endif | |
466 | End the body of the conditional. | |
467 | .PP | |
468 | The | |
469 | .I operator | |
470 | may be any one of the following: | |
471 | .TP | |
472 | || | |
473 | logical OR | |
474 | .TP | |
475 | && | |
476 | Logical AND; of higher precedence than ``||''. | |
477 | .PP | |
478 | As in C, | |
479 | .I make | |
480 | will only evaluate a conditional as far as is necessary to determine | |
481 | its value. | |
482 | Parenthesis may be used to change the order of evaluation. | |
483 | The boolean operator ``!'' may be used to logically negate an entire | |
484 | conditional. | |
485 | It is of higher precendence than ``&&''. | |
486 | .PP | |
487 | The value of | |
488 | .I expression | |
489 | may be any of the following: | |
490 | .TP | |
491 | defined | |
492 | Takes a variable name as an argument and evaluates to true if the variable | |
493 | has been defined. | |
494 | .TP | |
495 | make | |
496 | Takes a target name as an argument and evaluates to true if the target | |
497 | was specified as part of | |
498 | .IR make 's | |
499 | command line or was declared the default target (either implicitly or | |
500 | explicitly, see .MAIN) before the line containing the conditional. | |
501 | .TP | |
502 | empty | |
503 | Takes a variable, with possible modifiers, and evalutes to true if | |
504 | the expansion of the variable would result in an empty string. | |
505 | .TP | |
506 | exists | |
507 | Takes a file name as an argument and evaluates to true if the file exists. | |
508 | The file is searched for on the system search path (see .PATH). | |
509 | .TP | |
510 | target | |
511 | Takes a target name as an argument and evaluates to true if the target | |
512 | has been defined. | |
513 | .PP | |
514 | .I Expression | |
515 | may also be an arithmetic or string comparison, with the left-hand side | |
516 | being a variable expansion. | |
517 | The standard C relational operators are all supported, and the usual | |
518 | number/base conversion is performed. | |
519 | Note, octal numbers are not supported. | |
520 | If the righthand value of a ``=='' or ``!='' operator begins with a | |
521 | quotation mark (``"'') a string comparison is done between the expanded | |
522 | variable and the text between the quotation marks. | |
523 | If no relational operator is given, it is assumed that the expanded | |
524 | variable is being compared against 0. | |
525 | .PP | |
526 | When | |
527 | .I make | |
528 | is evaluating one of these conditional expression, and it encounters | |
529 | a word it doesn't recognize, either the ``make'' or ``defined'' | |
530 | expression is applied to it, depending on the form of the conditional. | |
531 | If the form is ``.ifdef'' or ``.ifndef'', the ``defined'' expression | |
532 | is applied. | |
533 | Similarly, if the form is ``.ifmake'' or ``.ifnmake'', the ``make'' | |
534 | expression is applied. | |
535 | .PP | |
536 | If the conditional evaluates to true the parsing of the makefile continues | |
537 | as before. | |
538 | If it evaluates to false, the following lines are skipped. | |
539 | In both cases this continues until a ``.else'' or ``.endif'' is found. | |
540 | .SH COMMENTS | |
541 | Comments begin with a hash (``#'') character, anywhere but in a shell | |
542 | command line, and continue to the end of the line. | |
543 | .SH "SPECIAL SOURCES" | |
544 | .TP | |
545 | \&.IGNORE | |
546 | Ignore any errors from the commands associated with this target, exactly | |
547 | as if they all were preceded by a dash (``\-''). | |
548 | .TP | |
549 | \&.MAKE | |
550 | Execute the commands associated with this target even if the -n or -t | |
551 | options were specified. | |
552 | Normally used to mark recursive | |
553 | .IR make 's. | |
554 | .TP | |
555 | \&.NOTMAIN | |
556 | Normally | |
557 | .I make | |
558 | selects the first target it encounters as the default target to be built | |
559 | if no target was specified. | |
560 | This source prevents this target from being selected. | |
561 | .TP | |
562 | \&.OPTIONAL | |
563 | If a target is marked with this attribute and | |
564 | .I make | |
565 | can't figure out how to create it, it will ignore this fact and assume | |
566 | the file isn't needed or already exists. | |
567 | .TP | |
568 | \&.PRECIOUS | |
569 | When | |
570 | .I make | |
571 | is interrupted, it removes any partially made targets. | |
572 | This source prevents the target from being removed. | |
573 | .TP | |
574 | \&.SILENT | |
575 | Do not echo any of the commands associated with this target, exactly | |
576 | as if they all were preceded by an at sign (``@''). | |
577 | .TP | |
578 | \&.USE | |
579 | Turn the target into | |
580 | .IR make 's | |
581 | version of a macro. | |
582 | When the target is used as a source for another target, the other target | |
583 | acquires the commands, sources, and attributes (except for .USE) of the | |
584 | source. | |
585 | If the target already has commands, the .USE target's commands are appended | |
586 | to them. | |
587 | .SH "SPECIAL TARGETS" | |
588 | Special targets may not be included with other targets, i.e. they must be | |
589 | the only target specified. | |
590 | .TP | |
591 | \&.BEGIN | |
592 | Any command lines attached to this target are executed before anything | |
593 | else is done. | |
594 | .TP | |
595 | \&.DEFAULT | |
596 | This is sort of a .USE rule for any target (that was used only as a | |
597 | source) that | |
598 | .I make | |
599 | can't figure out any other way to create. | |
600 | Only the shell script is used. | |
601 | The .IMPSRC variable of a target that inherits .DEFAULT's commands is set | |
602 | to the target's own name. | |
603 | .TP | |
604 | \&.END | |
605 | Any command lines attached to this target are executed after everything | |
606 | else is done. | |
607 | .TP | |
608 | \&.IGNORE | |
609 | Mark each of the sources with the .IGNORE attribute. | |
610 | If no sources are specified, this is the equivalent of specifying the -i | |
611 | option. | |
612 | .TP | |
613 | \&.INTERRUPT | |
614 | If | |
615 | .I make | |
616 | is interrupted, the commands for this target will be executed. | |
617 | .TP | |
618 | \&.MAIN | |
619 | If no target is specified when | |
620 | .I make | |
621 | is invoked, this target will be built. | |
622 | .TP | |
623 | \&.MAKEFLAGS | |
624 | This target provides a way to specify flags for | |
625 | .I make | |
626 | when the makefile is used. | |
627 | The flags are as if typed to the shell, though the -f option will have | |
628 | no effect. | |
629 | .TP | |
630 | \&.PATH | |
631 | The sources are directories which are to be searched for files not | |
632 | found in the current directory. | |
633 | If no sources are specified, any previously specified directories are | |
634 | deleted. | |
635 | .TP | |
636 | \&.PRECIOUS | |
637 | Apply the .PRECIOUS attribute to any specified sources. | |
638 | If no sources are specified, the .PRECIOUS attribute is applied to every | |
639 | target in the file. | |
640 | .TP | |
641 | \&.SILENT | |
642 | Apply the .SILENT attribute to any specified sources. | |
643 | If no sources are specified, the .SILENT attribute is applied to every | |
644 | command in the file. | |
645 | .TP | |
646 | \&.SUFFIXES | |
647 | Each source specifies a suffix to | |
648 | .IR make . | |
649 | If no sources are specified, any previous specifies suffices are deleted. | |
650 | .SH FILES | |
651 | .ta \w'/usr/share/mk\ \ \ 'u | |
652 | /usr/share/mk system makefile directory | |
653 | .br | |
654 | sys.mk include system makefile | |
655 | .br | |
656 | bsd.mk BSD source tree template | |
657 | .br | |
658 | subdir.mk BSD source tree subdirectory template | |
659 | .SH SEE ALSO | |
660 | .SH DIAGNOSTICS | |
661 | .SH BUGS |