DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: m

⟦fb3debfc6⟧

    Length: 36546 (0x8ec2)
    Names: »make-info-5«

Derivation

└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
    └─⟦dfec2f105⟧ »EurOpenD3/gnu/make/make-doc-3.59.tar.Z« 
        └─⟦b87f99797⟧ 
            └─⟦this⟧ »make-3.59/make-info-5« 

Hex Dump

0x0000…0020 49 6e 66 6f 20 66 69 6c 65 20 6d 61 6b 65 2d 69 6e 66 6f 2c 20 70 72 6f 64 75 63 65 64 20 62 79   ┆Info file make-info, produced by┆
0x0020…0040 20 4d 61 6b 65 69 6e 66 6f 2c 20 2d 2a 2d 20 54 65 78 74 20 2d 2a 2d 20 66 72 6f 6d 20 69 6e 70   ┆ Makeinfo, -*- Text -*- from inp┆
0x0040…0060 75 74 0a 66 69 6c 65 20 6d 61 6b 65 2e 74 65 78 69 6e 66 6f 2e 0a 0a 54 68 69 73 20 66 69 6c 65   ┆ut file make.texinfo.  This file┆
0x0060…0080 20 64 6f 63 75 6d 65 6e 74 73 20 74 68 65 20 47 4e 55 20 4d 61 6b 65 20 75 74 69 6c 69 74 79 2e   ┆ documents the GNU Make utility.┆
0x0080…00a0 0a 0a 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 38 2c 20 31 39 38 39 2c 20 31 39 39 30   ┆  Copyright (C) 1988, 1989, 1990┆
0x00a0…00c0 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a   ┆ Free Software Foundation, Inc. ┆
0x00c0…00e0 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 6e 74 65 64 20 74 6f 20 6d 61 6b 65 20 61   ┆ Permission is granted to make a┆
0x00e0…0100 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 73 20 6f 66   ┆nd distribute verbatim copies of┆
0x0100…0120 20 74 68 69 73 0a 6d 61 6e 75 61 6c 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 63 6f 70 79 72 69   ┆ this manual provided the copyri┆
0x0120…0140 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e   ┆ght notice and this permission n┆
0x0140…0160 6f 74 69 63 65 20 61 72 65 0a 70 72 65 73 65 72 76 65 64 20 6f 6e 20 61 6c 6c 20 63 6f 70 69 65   ┆otice are preserved on all copie┆
0x0160…0180 73 2e 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 6e 74 65 64 20 74 6f 20 63 6f 70   ┆s.  Permission is granted to cop┆
0x0180…01a0 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f   ┆y and distribute modified versio┆
0x01a0…01c0 6e 73 20 6f 66 0a 74 68 69 73 20 6d 61 6e 75 61 6c 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 64   ┆ns of this manual under the cond┆
0x01c0…01e0 69 74 69 6f 6e 73 20 66 6f 72 20 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 2c 20 70 72 6f   ┆itions for verbatim copying, pro┆
0x01e0…0200 76 69 64 65 64 20 61 6c 73 6f 0a 74 68 61 74 20 74 68 65 20 73 65 63 74 69 6f 6e 20 65 6e 74 69   ┆vided also that the section enti┆
0x0200…0220 74 6c 65 64 20 60 60 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73   ┆tled ``GNU General Public Licens┆
0x0220…0240 65 27 27 20 69 73 20 69 6e 63 6c 75 64 65 64 0a 65 78 61 63 74 6c 79 20 61 73 20 69 6e 20 74 68   ┆e'' is included exactly as in th┆
0x0240…0260 65 20 6f 72 69 67 69 6e 61 6c 2c 20 61 6e 64 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68   ┆e original, and provided that th┆
0x0260…0280 65 20 65 6e 74 69 72 65 20 72 65 73 75 6c 74 69 6e 67 0a 64 65 72 69 76 65 64 20 77 6f 72 6b 20   ┆e entire resulting derived work ┆
0x0280…02a0 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f   ┆is distributed under the terms o┆
0x02a0…02c0 66 20 61 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 0a 69 64 65 6e 74 69 63 61 6c 20   ┆f a permission notice identical ┆
0x02c0…02e0 74 6f 20 74 68 69 73 20 6f 6e 65 2e 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 6e   ┆to this one.  Permission is gran┆
0x02e0…0300 74 65 64 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 74 72 61 6e 73   ┆ted to copy and distribute trans┆
0x0300…0320 6c 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 0a 6d 61 6e 75 61 6c 20 69 6e 74 6f 20 61 6e 6f 74   ┆lations of this manual into anot┆
0x0320…0340 68 65 72 20 6c 61 6e 67 75 61 67 65 2c 20 75 6e 64 65 72 20 74 68 65 20 61 62 6f 76 65 20 63 6f   ┆her language, under the above co┆
0x0340…0360 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 6d 6f 64 69 66 69 65 64 0a 76 65 72 73 69 6f 6e 73 2c 20   ┆nditions for modified versions, ┆
0x0360…0380 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65 20 74 65 78 74 20 6f 66 20 74 68 65 20 74 72 61 6e   ┆except that the text of the tran┆
0x0380…03a0 73 6c 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 65 63 74 69 6f 6e 0a 65 6e 74 69 74 6c 65 64   ┆slations of the section entitled┆
0x03a0…03c0 20 60 60 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 27 27 20   ┆ ``GNU General Public License'' ┆
0x03c0…03e0 6d 75 73 74 20 62 65 20 61 70 70 72 6f 76 65 64 20 66 6f 72 20 61 63 63 75 72 61 63 79 0a 62 79   ┆must be approved for accuracy by┆
0x03e0…0400 20 74 68 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 0a 1f 0a 46 69 6c 65 3a 20 6d 61 6b 65 2d   ┆ the Foundation.     File: make-┆
0x0400…0420 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 50 61 74 74 65 72 6e 20 4d 61 74 63 68 2c 20 20 4e 65 78   ┆info,  Node: Pattern Match,  Nex┆
0x0420…0440 74 3a 20 4d 61 74 63 68 2d 41 6e 79 74 68 69 6e 67 20 52 75 6c 65 73 2c 20 20 50 72 65 76 3a 20   ┆t: Match-Anything Rules,  Prev: ┆
0x0440…0460 41 75 74 6f 6d 61 74 69 63 2c 20 20 55 70 3a 20 50 61 74 74 65 72 6e 20 52 75 6c 65 73 0a 0a 48   ┆Automatic,  Up: Pattern Rules  H┆
0x0460…0480 6f 77 20 50 61 74 74 65 72 6e 73 20 4d 61 74 63 68 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ow Patterns Match --------------┆
0x0480…04a0 2d 2d 2d 2d 0a 0a 41 20 74 61 72 67 65 74 20 70 61 74 74 65 72 6e 20 69 73 20 63 6f 6d 70 6f 73   ┆----  A target pattern is compos┆
0x04a0…04c0 65 64 20 6f 66 20 61 20 60 25 27 20 62 65 74 77 65 65 6e 20 61 20 70 72 65 66 69 78 20 61 6e 64   ┆ed of a `%' between a prefix and┆
0x04c0…04e0 20 61 20 73 75 66 66 69 78 2c 0a 65 69 74 68 65 72 20 6f 72 20 62 6f 74 68 20 6f 66 20 77 68 69   ┆ a suffix, either or both of whi┆
0x04e0…0500 63 68 20 6d 61 79 20 62 65 20 65 6d 70 74 79 2e 20 20 54 68 65 20 70 61 74 74 65 72 6e 20 6d 61   ┆ch may be empty.  The pattern ma┆
0x0500…0520 74 63 68 65 73 20 61 20 66 69 6c 65 0a 6e 61 6d 65 20 6f 6e 6c 79 20 69 66 20 74 68 65 20 66 69   ┆tches a file name only if the fi┆
0x0520…0540 6c 65 20 6e 61 6d 65 20 73 74 61 72 74 73 20 77 69 74 68 20 74 68 65 20 70 72 65 66 69 78 20 61   ┆le name starts with the prefix a┆
0x0540…0560 6e 64 20 65 6e 64 73 20 77 69 74 68 20 74 68 65 0a 73 75 66 66 69 78 2c 20 77 69 74 68 6f 75 74   ┆nd ends with the suffix, without┆
0x0560…0580 20 6f 76 65 72 6c 61 70 2e 20 20 54 68 65 20 74 65 78 74 20 62 65 74 77 65 65 6e 20 74 68 65 20   ┆ overlap.  The text between the ┆
0x0580…05a0 70 72 65 66 69 78 20 61 6e 64 20 74 68 65 20 73 75 66 66 69 78 0a 69 73 20 63 61 6c 6c 65 64 20   ┆prefix and the suffix is called ┆
0x05a0…05c0 74 68 65 20 22 73 74 65 6d 22 2e 20 20 54 68 75 73 2c 20 77 68 65 6e 20 74 68 65 20 70 61 74 74   ┆the "stem".  Thus, when the patt┆
0x05c0…05e0 65 72 6e 20 60 25 2e 6f 27 20 6d 61 74 63 68 65 73 20 74 68 65 20 66 69 6c 65 0a 6e 61 6d 65 20   ┆ern `%.o' matches the file name ┆
0x05e0…0600 60 74 65 73 74 2e 6f 27 2c 20 74 68 65 20 73 74 65 6d 20 69 73 20 60 74 65 73 74 27 2e 20 20 54   ┆`test.o', the stem is `test'.  T┆
0x0600…0620 68 65 20 70 61 74 74 65 72 6e 20 72 75 6c 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65   ┆he pattern rule dependencies are┆
0x0620…0640 0a 74 75 72 6e 65 64 20 69 6e 74 6f 20 61 63 74 75 61 6c 20 66 69 6c 65 20 6e 61 6d 65 73 20 62   ┆ turned into actual file names b┆
0x0640…0660 79 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 74 68 65 20 73 74 65 6d 20 66 6f 72 20 74 68 65 0a   ┆y substituting the stem for the ┆
0x0660…0680 63 68 61 72 61 63 74 65 72 20 60 25 27 2e 20 20 54 68 75 73 2c 20 69 66 20 69 6e 20 74 68 65 20   ┆character `%'.  Thus, if in the ┆
0x0680…06a0 73 61 6d 65 20 65 78 61 6d 70 6c 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 64 65 70 65 6e 64 65 6e   ┆same example one of the dependen┆
0x06a0…06c0 63 69 65 73 0a 69 73 20 77 72 69 74 74 65 6e 20 61 73 20 60 25 2e 63 27 2c 20 69 74 20 65 78 70   ┆cies is written as `%.c', it exp┆
0x06c0…06e0 61 6e 64 73 20 74 6f 20 60 74 65 73 74 2e 63 27 2e 0a 0a 57 68 65 6e 20 74 68 65 20 74 61 72 67   ┆ands to `test.c'.  When the targ┆
0x06e0…0700 65 74 20 70 61 74 74 65 72 6e 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 61 20 73 6c   ┆et pattern does not contain a sl┆
0x0700…0720 61 73 68 20 28 61 6e 64 20 75 73 75 61 6c 6c 79 20 69 74 20 64 6f 65 73 0a 6e 6f 74 29 2c 20 64   ┆ash (and usually it does not), d┆
0x0720…0740 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 73   ┆irectory names in the file names┆
0x0740…0760 20 61 72 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 65 0a 6e 61 6d 65 20   ┆ are removed from the file name ┆
0x0760…0780 62 65 66 6f 72 65 20 69 74 20 69 73 20 63 6f 6d 70 61 72 65 64 20 77 69 74 68 20 74 68 65 20 74   ┆before it is compared with the t┆
0x0780…07a0 61 72 67 65 74 20 70 72 65 66 69 78 20 61 6e 64 20 73 75 66 66 69 78 2e 20 20 54 68 65 0a 64 69   ┆arget prefix and suffix.  The di┆
0x07a0…07c0 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 73 6c   ┆rectory names, along with the sl┆
0x07c0…07e0 61 73 68 20 74 68 61 74 20 65 6e 64 73 20 74 68 65 6d 2c 20 61 72 65 20 61 64 64 65 64 20 62 61   ┆ash that ends them, are added ba┆
0x07e0…0800 63 6b 0a 74 6f 20 74 68 65 20 73 74 65 6d 2e 20 20 54 68 75 73 2c 20 60 65 25 74 27 20 64 6f 65   ┆ck to the stem.  Thus, `e%t' doe┆
0x0800…0820 73 20 6d 61 74 63 68 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 20 60 73 72 63 2f 65 61 74 27 2c   ┆s match the file name `src/eat',┆
0x0820…0840 20 77 69 74 68 0a 60 73 72 63 2f 61 27 20 61 73 20 74 68 65 20 73 74 65 6d 2e 20 20 57 68 65 6e   ┆ with `src/a' as the stem.  When┆
0x0840…0860 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65 20 74 75 72 6e 65 64 20 69 6e 74 6f 20 66 69   ┆ dependencies are turned into fi┆
0x0860…0880 6c 65 20 6e 61 6d 65 73 2c 0a 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 72 6f 6d 20 74   ┆le names, the directories from t┆
0x0880…08a0 68 65 20 73 74 65 6d 20 61 72 65 20 61 64 64 65 64 20 61 74 20 74 68 65 20 66 72 6f 6e 74 2c 20   ┆he stem are added at the front, ┆
0x08a0…08c0 77 68 69 6c 65 20 74 68 65 20 72 65 73 74 0a 6f 66 20 74 68 65 20 73 74 65 6d 20 69 73 20 73 75   ┆while the rest of the stem is su┆
0x08c0…08e0 62 73 74 69 74 75 74 65 64 20 66 6f 72 20 74 68 65 20 60 25 27 2e 20 20 54 68 65 20 73 74 65 6d   ┆bstituted for the `%'.  The stem┆
0x08e0…0900 20 60 73 72 63 2f 61 27 20 77 69 74 68 20 61 0a 64 65 70 65 6e 64 65 6e 63 79 20 70 61 74 74 65   ┆ `src/a' with a dependency patte┆
0x0900…0920 72 6e 20 60 63 25 72 27 20 67 69 76 65 73 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 20 60 73 72   ┆rn `c%r' gives the file name `sr┆
0x0920…0940 63 2f 63 61 72 27 2e 0a 0a 0a 1f 0a 46 69 6c 65 3a 20 6d 61 6b 65 2d 69 6e 66 6f 2c 20 20 4e 6f   ┆c/car'.     File: make-info,  No┆
0x0940…0960 64 65 3a 20 4d 61 74 63 68 2d 41 6e 79 74 68 69 6e 67 20 52 75 6c 65 73 2c 20 20 4e 65 78 74 3a   ┆de: Match-Anything Rules,  Next:┆
0x0960…0980 20 43 61 6e 63 65 6c 69 6e 67 20 52 75 6c 65 73 2c 20 20 50 72 65 76 3a 20 50 61 74 74 65 72 6e   ┆ Canceling Rules,  Prev: Pattern┆
0x0980…09a0 20 4d 61 74 63 68 2c 20 20 55 70 3a 20 50 61 74 74 65 72 6e 20 52 75 6c 65 73 0a 0a 4d 61 74 63   ┆ Match,  Up: Pattern Rules  Matc┆
0x09a0…09c0 68 2d 41 6e 79 74 68 69 6e 67 20 50 61 74 74 65 72 6e 20 52 75 6c 65 73 0a 2d 2d 2d 2d 2d 2d 2d   ┆h-Anything Pattern Rules -------┆
0x09c0…09e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 57 68 65 6e 20 61 20 70 61   ┆---------------------  When a pa┆
0x09e0…0a00 74 74 65 72 6e 20 72 75 6c 65 27 73 20 74 61 72 67 65 74 20 69 73 20 6a 75 73 74 20 60 25 27 2c   ┆ttern rule's target is just `%',┆
0x0a00…0a20 20 69 74 20 6d 61 74 63 68 65 73 20 61 6e 79 20 66 69 6c 65 6e 61 6d 65 0a 77 68 61 74 65 76 65   ┆ it matches any filename whateve┆
0x0a20…0a40 72 2e 20 20 57 65 20 63 61 6c 6c 20 74 68 65 73 65 20 72 75 6c 65 73 20 22 6d 61 74 63 68 2d 61   ┆r.  We call these rules "match-a┆
0x0a40…0a60 6e 79 74 68 69 6e 67 22 20 72 75 6c 65 73 2e 20 20 54 68 65 79 20 61 72 65 20 76 65 72 79 0a 75   ┆nything" rules.  They are very u┆
0x0a60…0a80 73 65 66 75 6c 2c 20 62 75 74 20 69 74 20 63 61 6e 20 74 61 6b 65 20 61 20 6c 6f 74 20 6f 66 20   ┆seful, but it can take a lot of ┆
0x0a80…0aa0 74 69 6d 65 20 66 6f 72 20 60 6d 61 6b 65 27 20 74 6f 20 74 68 69 6e 6b 20 61 62 6f 75 74 20 74   ┆time for `make' to think about t┆
0x0aa0…0ac0 68 65 6d 2c 0a 62 65 63 61 75 73 65 20 69 74 20 6d 75 73 74 20 63 6f 6e 73 69 64 65 72 20 65 76   ┆hem, because it must consider ev┆
0x0ac0…0ae0 65 72 79 20 73 75 63 68 20 72 75 6c 65 20 66 6f 72 20 65 61 63 68 20 66 69 6c 65 20 6e 61 6d 65   ┆ery such rule for each file name┆
0x0ae0…0b00 20 6c 69 73 74 65 64 0a 65 69 74 68 65 72 20 61 73 20 61 20 74 61 72 67 65 74 20 6f 72 20 61 73   ┆ listed either as a target or as┆
0x0b00…0b20 20 61 20 64 65 70 65 6e 64 65 6e 63 79 2e 0a 0a 53 75 70 70 6f 73 65 20 74 68 65 20 6d 61 6b 65   ┆ a dependency.  Suppose the make┆
0x0b20…0b40 66 69 6c 65 20 6d 65 6e 74 69 6f 6e 73 20 60 66 6f 6f 2e 63 27 2e 20 20 46 6f 72 20 74 68 69 73   ┆file mentions `foo.c'.  For this┆
0x0b40…0b60 20 74 61 72 67 65 74 2c 20 60 6d 61 6b 65 27 20 77 6f 75 6c 64 0a 68 61 76 65 20 74 6f 20 63 6f   ┆ target, `make' would have to co┆
0x0b60…0b80 6e 73 69 64 65 72 20 6d 61 6b 69 6e 67 20 69 74 20 62 79 20 6c 69 6e 6b 69 6e 67 20 61 6e 20 6f   ┆nsider making it by linking an o┆
0x0b80…0ba0 62 6a 65 63 74 20 66 69 6c 65 20 60 66 6f 6f 2e 63 2e 6f 27 2c 20 6f 72 20 62 79 0a 43 20 63 6f   ┆bject file `foo.c.o', or by C co┆
0x0ba0…0bc0 6d 70 69 6c 61 74 69 6f 6e 2d 61 6e 64 2d 6c 69 6e 6b 69 6e 67 20 69 6e 20 6f 6e 65 20 73 74 65   ┆mpilation-and-linking in one ste┆
0x0bc0…0be0 70 20 66 72 6f 6d 20 60 66 6f 6f 2e 63 2e 63 27 2c 20 6f 72 20 62 79 20 50 61 73 63 61 6c 0a 63   ┆p from `foo.c.c', or by Pascal c┆
0x0be0…0c00 6f 6d 70 69 6c 61 74 69 6f 6e 2d 61 6e 64 2d 6c 69 6e 6b 69 6e 67 20 66 72 6f 6d 20 60 66 6f 6f   ┆ompilation-and-linking from `foo┆
0x0c00…0c20 2e 63 2e 70 27 2c 20 61 6e 64 20 6d 61 6e 79 20 6f 74 68 65 72 20 70 6f 73 73 69 62 69 6c 69 74   ┆.c.p', and many other possibilit┆
0x0c20…0c40 69 65 73 2e 0a 0a 57 65 20 6b 6e 6f 77 20 74 68 65 73 65 20 70 6f 73 73 69 62 69 6c 69 74 69 65   ┆ies.  We know these possibilitie┆
0x0c40…0c60 73 20 61 72 65 20 72 69 64 69 63 75 6c 6f 75 73 20 73 69 6e 63 65 20 60 66 6f 6f 2e 63 27 20 69   ┆s are ridiculous since `foo.c' i┆
0x0c60…0c80 73 20 61 20 43 0a 73 6f 75 72 63 65 20 66 69 6c 65 2c 20 6e 6f 74 20 61 6e 20 65 78 65 63 75 74   ┆s a C source file, not an execut┆
0x0c80…0ca0 61 62 6c 65 2e 20 20 49 66 20 60 6d 61 6b 65 27 20 64 69 64 20 63 6f 6e 73 69 64 65 72 20 74 68   ┆able.  If `make' did consider th┆
0x0ca0…0cc0 65 73 65 0a 70 6f 73 73 69 62 69 6c 69 74 69 65 73 2c 20 69 74 20 77 6f 75 6c 64 20 75 6c 74 69   ┆ese possibilities, it would ulti┆
0x0cc0…0ce0 6d 61 74 65 6c 79 20 72 65 6a 65 63 74 20 74 68 65 6d 2c 20 62 65 63 61 75 73 65 20 66 69 6c 65   ┆mately reject them, because file┆
0x0ce0…0d00 73 20 73 75 63 68 20 61 73 0a 60 66 6f 6f 2e 63 2e 6f 27 2c 20 60 66 6f 6f 2e 63 2e 70 27 2c 20   ┆s such as `foo.c.o', `foo.c.p', ┆
0x0d00…0d20 65 74 63 2e 20 77 6f 75 6c 64 20 6e 6f 74 20 65 78 69 73 74 2e 20 20 42 75 74 20 74 68 65 73 65   ┆etc. would not exist.  But these┆
0x0d20…0d40 20 70 6f 73 73 69 62 69 6c 69 74 69 65 73 0a 61 72 65 20 73 6f 20 6e 75 6d 65 72 6f 75 73 20 74   ┆ possibilities are so numerous t┆
0x0d40…0d60 68 61 74 20 60 6d 61 6b 65 27 20 77 6f 75 6c 64 20 72 75 6e 20 76 65 72 79 20 73 6c 6f 77 6c 79   ┆hat `make' would run very slowly┆
0x0d60…0d80 20 69 66 20 69 74 20 68 61 64 20 74 6f 0a 63 6f 6e 73 69 64 65 72 20 74 68 65 6d 2e 0a 0a 54 6f   ┆ if it had to consider them.  To┆
0x0d80…0da0 20 67 61 69 6e 20 73 70 65 65 64 2c 20 77 65 20 68 61 76 65 20 70 75 74 20 76 61 72 69 6f 75 73   ┆ gain speed, we have put various┆
0x0da0…0dc0 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 6f 6e 20 74 68 65 20 77 61 79 20 60 6d 61 6b 65 27 0a 63   ┆ constraints on the way `make' c┆
0x0dc0…0de0 6f 6e 73 69 64 65 72 73 20 6d 61 74 63 68 2d 61 6e 79 74 68 69 6e 67 20 72 75 6c 65 73 2e 20 20   ┆onsiders match-anything rules.  ┆
0x0de0…0e00 54 68 65 72 65 20 61 72 65 20 74 77 6f 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6e 73 74 72 61 69   ┆There are two different constrai┆
0x0e00…0e20 6e 74 73 0a 74 68 61 74 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 2c 20 61 6e 64 20 65 61 63   ┆nts that can be applied, and eac┆
0x0e20…0e40 68 20 74 69 6d 65 20 79 6f 75 20 64 65 66 69 6e 65 20 61 20 6d 61 74 63 68 2d 61 6e 79 74 68 69   ┆h time you define a match-anythi┆
0x0e40…0e60 6e 67 20 72 75 6c 65 0a 79 6f 75 20 6d 75 73 74 20 63 68 6f 6f 73 65 20 6f 6e 65 20 6f 72 20 74   ┆ng rule you must choose one or t┆
0x0e60…0e80 68 65 20 6f 74 68 65 72 20 66 6f 72 20 74 68 61 74 20 72 75 6c 65 2e 0a 0a 4f 6e 65 20 63 68 6f   ┆he other for that rule.  One cho┆
0x0e80…0ea0 69 63 65 20 69 73 20 74 6f 20 6d 61 72 6b 20 74 68 65 20 6d 61 74 63 68 2d 61 6e 79 74 68 69 6e   ┆ice is to mark the match-anythin┆
0x0ea0…0ec0 67 20 72 75 6c 65 20 61 73 20 22 74 65 72 6d 69 6e 61 6c 22 20 62 79 0a 64 65 66 69 6e 69 6e 67   ┆g rule as "terminal" by defining┆
0x0ec0…0ee0 20 69 74 20 77 69 74 68 20 61 20 64 6f 75 62 6c 65 20 63 6f 6c 6f 6e 2e 20 20 57 68 65 6e 20 61   ┆ it with a double colon.  When a┆
0x0ee0…0f00 20 72 75 6c 65 20 69 73 20 74 65 72 6d 69 6e 61 6c 2c 20 69 74 20 64 6f 65 73 0a 6e 6f 74 20 61   ┆ rule is terminal, it does not a┆
0x0f00…0f20 70 70 6c 79 20 75 6e 6c 65 73 73 20 69 74 73 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 63 74   ┆pply unless its dependencies act┆
0x0f20…0f40 75 61 6c 6c 79 20 65 78 69 73 74 2e 20 20 44 65 70 65 6e 64 65 6e 63 69 65 73 20 74 68 61 74 0a   ┆ually exist.  Dependencies that ┆
0x0f40…0f60 63 6f 75 6c 64 20 62 65 20 6d 61 64 65 20 77 69 74 68 20 6f 74 68 65 72 20 69 6d 70 6c 69 63 69   ┆could be made with other implici┆
0x0f60…0f80 74 20 72 75 6c 65 73 20 61 72 65 20 6e 6f 74 20 67 6f 6f 64 20 65 6e 6f 75 67 68 2e 20 20 49 6e   ┆t rules are not good enough.  In┆
0x0f80…0fa0 0a 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 6e 6f 20 66 75 72 74 68 65 72 20 63 68 61 69 6e 69 6e   ┆ other words, no further chainin┆
0x0fa0…0fc0 67 20 69 73 20 61 6c 6c 6f 77 65 64 20 62 65 79 6f 6e 64 20 61 20 74 65 72 6d 69 6e 61 6c 20 72   ┆g is allowed beyond a terminal r┆
0x0fc0…0fe0 75 6c 65 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20   ┆ule.  For example, the built-in ┆
0x0fe0…1000 69 6d 70 6c 69 63 69 74 20 72 75 6c 65 73 20 66 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 73 6f   ┆implicit rules for extracting so┆
0x1000…1020 75 72 63 65 73 20 66 72 6f 6d 0a 52 43 53 20 61 6e 64 20 53 43 43 53 20 66 69 6c 65 73 20 61 72   ┆urces from RCS and SCCS files ar┆
0x1020…1040 65 20 74 65 72 6d 69 6e 61 6c 3b 20 61 73 20 61 20 72 65 73 75 6c 74 2c 20 69 66 20 74 68 65 20   ┆e terminal; as a result, if the ┆
0x1040…1060 66 69 6c 65 20 60 66 6f 6f 2e 63 2c 76 27 0a 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2c 20 60   ┆file `foo.c,v' does not exist, `┆
0x1060…1080 6d 61 6b 65 27 20 77 69 6c 6c 20 6e 6f 74 20 65 76 65 6e 20 63 6f 6e 73 69 64 65 72 20 74 72 79   ┆make' will not even consider try┆
0x1080…10a0 69 6e 67 20 74 6f 20 6d 61 6b 65 20 69 74 20 61 73 20 61 6e 0a 69 6e 74 65 72 6d 65 64 69 61 74   ┆ing to make it as an intermediat┆
0x10a0…10c0 65 20 66 69 6c 65 20 66 72 6f 6d 20 60 66 6f 6f 2e 63 2c 76 2e 6f 27 20 6f 72 20 66 72 6f 6d 20   ┆e file from `foo.c,v.o' or from ┆
0x10c0…10e0 60 52 43 53 2f 53 43 43 53 2f 73 2e 66 6f 6f 2e 63 2c 76 27 2e 20 20 52 43 53 0a 61 6e 64 20 53   ┆`RCS/SCCS/s.foo.c,v'.  RCS and S┆
0x10e0…1100 43 43 53 20 66 69 6c 65 73 20 61 72 65 20 67 65 6e 65 72 61 6c 6c 79 20 75 6c 74 69 6d 61 74 65   ┆CCS files are generally ultimate┆
0x1100…1120 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 6e 6f 74 0a   ┆ source files, which should not ┆
0x1120…1140 62 65 20 72 65 6d 61 64 65 20 66 72 6f 6d 20 61 6e 79 20 6f 74 68 65 72 20 66 69 6c 65 73 3b 20   ┆be remade from any other files; ┆
0x1140…1160 74 68 65 72 65 66 6f 72 65 2c 20 60 6d 61 6b 65 27 20 63 61 6e 20 73 61 76 65 20 74 69 6d 65 20   ┆therefore, `make' can save time ┆
0x1160…1180 62 79 0a 6e 6f 74 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 77 61 79 73 20 74 6f 20 72 65 6d 61 6b   ┆by not looking for ways to remak┆
0x1180…11a0 65 20 74 68 65 6d 2e 0a 0a 49 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 6d 61 72 6b 20 74 68 65 20   ┆e them.  If you do not mark the ┆
0x11a0…11c0 6d 61 74 63 68 2d 61 6e 79 74 68 69 6e 67 20 72 75 6c 65 20 61 73 20 74 65 72 6d 69 6e 61 6c 2c   ┆match-anything rule as terminal,┆
0x11c0…11e0 20 74 68 65 6e 20 69 74 20 69 73 0a 6e 6f 6e 74 65 72 6d 69 6e 61 6c 2e 20 20 41 20 6e 6f 6e 74   ┆ then it is nonterminal.  A nont┆
0x11e0…1200 65 72 6d 69 6e 61 6c 20 6d 61 74 63 68 2d 61 6e 79 74 68 69 6e 67 20 72 75 6c 65 20 63 61 6e 6e   ┆erminal match-anything rule cann┆
0x1200…1220 6f 74 20 61 70 70 6c 79 20 74 6f 20 61 0a 66 69 6c 65 20 6e 61 6d 65 20 74 68 61 74 20 69 6e 64   ┆ot apply to a file name that ind┆
0x1220…1240 69 63 61 74 65 73 20 61 20 73 70 65 63 69 66 69 63 20 74 79 70 65 20 6f 66 20 64 61 74 61 2e 20   ┆icates a specific type of data. ┆
0x1240…1260 20 41 20 66 69 6c 65 20 6e 61 6d 65 0a 69 6e 64 69 63 61 74 65 73 20 61 20 73 70 65 63 69 66 69   ┆ A file name indicates a specifi┆
0x1260…1280 63 20 74 79 70 65 20 6f 66 20 64 61 74 61 20 69 66 20 73 6f 6d 65 20 6e 6f 6e 2d 6d 61 74 63 68   ┆c type of data if some non-match┆
0x1280…12a0 2d 61 6e 79 74 68 69 6e 67 20 69 6d 70 6c 69 63 69 74 0a 72 75 6c 65 20 74 61 72 67 65 74 20 6d   ┆-anything implicit rule target m┆
0x12a0…12c0 61 74 63 68 65 73 20 69 74 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 69 6c   ┆atches it.  For example, the fil┆
0x12c0…12e0 65 20 6e 61 6d 65 20 60 66 6f 6f 2e 63 27 20 6d 61 74 63 68 65 73 20 74 68 65 20 74 61 72 67 65   ┆e name `foo.c' matches the targe┆
0x12e0…1300 74 20 66 6f 72 20 74 68 65 20 70 61 74 74 65 72 6e 0a 72 75 6c 65 20 60 25 2e 63 20 3a 20 25 2e   ┆t for the pattern rule `%.c : %.┆
0x1300…1320 79 27 20 28 74 68 65 20 72 75 6c 65 20 74 6f 20 72 75 6e 20 59 61 63 63 29 2e 20 20 52 65 67 61   ┆y' (the rule to run Yacc).  Rega┆
0x1320…1340 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 69 73 0a 72 75 6c 65 20 69 73 20 61   ┆rdless of whether this rule is a┆
0x1340…1360 63 74 75 61 6c 6c 79 20 61 70 70 6c 69 63 61 62 6c 65 20 28 77 68 69 63 68 20 68 61 70 70 65 6e   ┆ctually applicable (which happen┆
0x1360…1380 73 20 6f 6e 6c 79 20 69 66 20 74 68 65 72 65 20 69 73 20 61 20 66 69 6c 65 0a 60 66 6f 6f 2e 79   ┆s only if there is a file `foo.y┆
0x1380…13a0 27 29 2c 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 69 74 73 20 74 61 72 67 65 74 20 6d 61 74   ┆'), the fact that its target mat┆
0x13a0…13c0 63 68 65 73 20 69 73 20 65 6e 6f 75 67 68 20 74 6f 20 70 72 65 76 65 6e 74 0a 63 6f 6e 73 69 64   ┆ches is enough to prevent consid┆
0x13c0…13e0 65 72 61 74 69 6f 6e 20 6f 66 20 61 6e 79 20 6e 6f 6e 74 65 72 6d 69 6e 61 6c 20 6d 61 74 63 68   ┆eration of any nonterminal match┆
0x13e0…1400 2d 61 6e 79 74 68 69 6e 67 20 72 75 6c 65 73 20 66 6f 72 20 74 68 65 20 66 69 6c 65 0a 60 66 6f   ┆-anything rules for the file `fo┆
0x1400…1420 6f 2e 63 27 2e 20 20 54 68 75 73 2c 20 60 6d 61 6b 65 27 20 77 69 6c 6c 20 6e 6f 74 20 65 76 65   ┆o.c'.  Thus, `make' will not eve┆
0x1420…1440 6e 20 63 6f 6e 73 69 64 65 72 20 74 72 79 69 6e 67 20 74 6f 20 6d 61 6b 65 20 60 66 6f 6f 2e 63   ┆n consider trying to make `foo.c┆
0x1440…1460 27 0a 61 73 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 66 69 6c 65 20 66 72 6f 6d 20 60 66 6f   ┆' as an executable file from `fo┆
0x1460…1480 6f 2e 63 2e 6f 27 2c 20 60 66 6f 6f 2e 63 2e 63 27 2c 20 60 66 6f 6f 2e 63 2e 70 27 2c 20 65 74   ┆o.c.o', `foo.c.c', `foo.c.p', et┆
0x1480…14a0 63 2e 0a 0a 54 68 65 20 6d 6f 74 69 76 61 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 20 63 6f 6e 73   ┆c.  The motivation for this cons┆
0x14a0…14c0 74 72 61 69 6e 74 20 69 73 20 74 68 61 74 20 6e 6f 6e 74 65 72 6d 69 6e 61 6c 20 6d 61 74 63 68   ┆traint is that nonterminal match┆
0x14c0…14e0 2d 61 6e 79 74 68 69 6e 67 0a 72 75 6c 65 73 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 6d 61 6b   ┆-anything rules are used for mak┆
0x14e0…1500 69 6e 67 20 66 69 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 73 70 65 63 69 66 69 63 20 74 79   ┆ing files containing specific ty┆
0x1500…1520 70 65 73 20 6f 66 20 64 61 74 61 0a 28 73 75 63 68 20 61 73 20 65 78 65 63 75 74 61 62 6c 65 20   ┆pes of data (such as executable ┆
0x1520…1540 66 69 6c 65 73 29 20 61 6e 64 20 61 20 66 69 6c 65 20 6e 61 6d 65 20 77 69 74 68 20 61 20 72 65   ┆files) and a file name with a re┆
0x1540…1560 63 6f 67 6e 69 7a 65 64 20 73 75 66 66 69 78 0a 69 6e 64 69 63 61 74 65 73 20 73 6f 6d 65 20 6f   ┆cognized suffix indicates some o┆
0x1560…1580 74 68 65 72 20 73 70 65 63 69 66 69 63 20 74 79 70 65 20 6f 66 20 64 61 74 61 20 28 73 75 63 68   ┆ther specific type of data (such┆
0x1580…15a0 20 61 73 20 61 20 43 20 73 6f 75 72 63 65 20 66 69 6c 65 29 2e 0a 0a 53 70 65 63 69 61 6c 20 62   ┆ as a C source file).  Special b┆
0x15a0…15c0 75 69 6c 74 2d 69 6e 20 64 75 6d 6d 79 20 70 61 74 74 65 72 6e 20 72 75 6c 65 73 20 61 72 65 20   ┆uilt-in dummy pattern rules are ┆
0x15c0…15e0 70 72 6f 76 69 64 65 64 20 73 6f 6c 65 6c 79 20 74 6f 20 72 65 63 6f 67 6e 69 7a 65 0a 63 65 72   ┆provided solely to recognize cer┆
0x15e0…1600 74 61 69 6e 20 66 69 6c 65 20 6e 61 6d 65 73 20 73 6f 20 74 68 61 74 20 6e 6f 6e 74 65 72 6d 69   ┆tain file names so that nontermi┆
0x1600…1620 6e 61 6c 20 6d 61 74 63 68 2d 61 6e 79 74 68 69 6e 67 20 72 75 6c 65 73 20 77 6f 6e 27 74 20 62   ┆nal match-anything rules won't b┆
0x1620…1640 65 0a 63 6f 6e 73 69 64 65 72 65 64 2e 20 20 54 68 65 73 65 20 64 75 6d 6d 79 20 72 75 6c 65 73   ┆e considered.  These dummy rules┆
0x1640…1660 20 68 61 76 65 20 6e 6f 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 6e 64 20 6e 6f 20 63 6f 6d   ┆ have no dependencies and no com┆
0x1660…1680 6d 61 6e 64 73 2c 0a 61 6e 64 20 74 68 65 79 20 61 72 65 20 69 67 6e 6f 72 65 64 20 66 6f 72 20   ┆mands, and they are ignored for ┆
0x1680…16a0 61 6c 6c 20 6f 74 68 65 72 20 70 75 72 70 6f 73 65 73 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65   ┆all other purposes.  For example┆
0x16a0…16c0 2c 20 74 68 65 0a 62 75 69 6c 74 2d 69 6e 20 69 6d 70 6c 69 63 69 74 20 72 75 6c 65 0a 0a 20 20   ┆, the built-in implicit rule    ┆
0x16c0…16e0 20 20 20 25 2e 70 20 3a 0a 0a 65 78 69 73 74 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68   ┆   %.p :  exists to make sure th┆
0x16e0…1700 61 74 20 50 61 73 63 61 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 73 75 63 68 20 61 73 20 60   ┆at Pascal source files such as `┆
0x1700…1720 66 6f 6f 2e 70 27 20 6d 61 74 63 68 20 61 0a 73 70 65 63 69 66 69 63 20 74 61 72 67 65 74 20 70   ┆foo.p' match a specific target p┆
0x1720…1740 61 74 74 65 72 6e 20 61 6e 64 20 74 68 65 72 65 62 79 20 70 72 65 76 65 6e 74 20 74 69 6d 65 20   ┆attern and thereby prevent time ┆
0x1740…1760 66 72 6f 6d 20 62 65 69 6e 67 20 77 61 73 74 65 64 0a 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 60 66   ┆from being wasted looking for `f┆
0x1760…1780 6f 6f 2e 70 2e 6f 27 20 6f 72 20 60 66 6f 6f 2e 70 2e 63 27 2e 0a 0a 44 75 6d 6d 79 20 70 61 74   ┆oo.p.o' or `foo.p.c'.  Dummy pat┆
0x1780…17a0 74 65 72 6e 20 72 75 6c 65 73 20 73 75 63 68 20 61 73 20 74 68 65 20 6f 6e 65 20 66 6f 72 20 60   ┆tern rules such as the one for `┆
0x17a0…17c0 25 2e 70 27 20 61 72 65 20 6d 61 64 65 20 66 6f 72 20 65 76 65 72 79 0a 73 75 66 66 69 78 20 6c   ┆%.p' are made for every suffix l┆
0x17c0…17e0 69 73 74 65 64 20 61 73 20 76 61 6c 69 64 20 66 6f 72 20 75 73 65 20 69 6e 20 73 75 66 66 69 78   ┆isted as valid for use in suffix┆
0x17e0…1800 20 72 75 6c 65 73 2e 20 20 2a 4e 6f 74 65 20 53 75 66 66 69 78 20 52 75 6c 65 73 3a 3a 2e 0a 0a   ┆ rules.  *Note Suffix Rules::.  ┆
0x1800…1820 0a 1f 0a 46 69 6c 65 3a 20 6d 61 6b 65 2d 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 61 6e 63 65   ┆   File: make-info,  Node: Cance┆
0x1820…1840 6c 69 6e 67 20 52 75 6c 65 73 2c 20 20 50 72 65 76 3a 20 4d 61 74 63 68 2d 41 6e 79 74 68 69 6e   ┆ling Rules,  Prev: Match-Anythin┆
0x1840…1860 67 20 52 75 6c 65 73 2c 20 20 55 70 3a 20 50 61 74 74 65 72 6e 20 52 75 6c 65 73 0a 0a 43 61 6e   ┆g Rules,  Up: Pattern Rules  Can┆
0x1860…1880 63 65 6c 69 6e 67 20 49 6d 70 6c 69 63 69 74 20 52 75 6c 65 73 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆celing Implicit Rules ----------┆
0x1880…18a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 59 6f 75 20 63 61 6e 20 6f 76 65 72 72 69 64 65   ┆--------------  You can override┆
0x18a0…18c0 20 61 20 62 75 69 6c 74 2d 69 6e 20 69 6d 70 6c 69 63 69 74 20 72 75 6c 65 20 62 79 20 64 65 66   ┆ a built-in implicit rule by def┆
0x18c0…18e0 69 6e 69 6e 67 20 61 20 6e 65 77 20 70 61 74 74 65 72 6e 0a 72 75 6c 65 20 77 69 74 68 20 74 68   ┆ining a new pattern rule with th┆
0x18e0…1900 65 20 73 61 6d 65 20 74 61 72 67 65 74 20 61 6e 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20   ┆e same target and dependencies, ┆
0x1900…1920 62 75 74 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6d 6d 61 6e 64 73 2e 20 0a 57 68 65 6e 20 74 68   ┆but different commands.  When th┆
[…truncated at 200 lines…]