home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 545b.lha / BMake_v1.4 / docs.LZH / docs / mdoc.tex < prev   
LaTeX Document  |  1991-09-07  |  40.1 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: LaTeX Document (document/latex).

You can browse this item here: mdoc.tex

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert LaTeX Document (document/latex) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file LaTeX document text default
99% file LaTeX document, ASCII text default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/281 LaTeX (Subdocument) default
100% detectItEasy Format: plain text[LF] default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 5c 64 6f 63 75 6d 65 6e | 74 73 74 79 6c 65 5b 6d |\documen|tstyle[m|
|00000010| 61 6e 70 61 67 65 2c 65 | 70 73 66 2c 74 77 6f 73 |anpage,e|psf,twos|
|00000020| 69 64 65 5d 7b 72 65 70 | 6f 72 74 7d 0a 0a 5c 62 |ide]{rep|ort}..\b|
|00000030| 65 67 69 6e 7b 64 6f 63 | 75 6d 65 6e 74 7d 0a 0a |egin{doc|ument}..|
|00000040| 5c 62 65 67 69 6e 7b 74 | 69 74 6c 65 70 61 67 65 |\begin{t|itlepage|
|00000050| 7d 0a 09 5c 76 73 70 61 | 63 65 2a 7b 31 2e 30 69 |}..\vspa|ce*{1.0i|
|00000060| 6e 7d 0a 09 5c 62 65 67 | 69 6e 7b 66 6c 75 73 68 |n}..\beg|in{flush|
|00000070| 72 69 67 68 74 7d 0a 09 | 09 7b 5c 68 75 67 65 5c |right}..|.{\huge\|
|00000080| 62 66 20 41 6d 69 67 61 | 20 50 72 6f 67 72 61 6d |bf Amiga| Program|
|00000090| 6d 65 72 27 73 20 4d 61 | 6b 65 7d 20 5c 5c 5b 2e |mer's Ma|ke} \\[.|
|000000a0| 32 35 63 6d 5d 0a 09 09 | 7b 5c 72 75 6c 65 5b 2e |25cm]...|{\rule[.|
|000000b0| 31 69 6e 5d 7b 34 2e 35 | 69 6e 7d 7b 2e 30 32 69 |1in]{4.5|in}{.02i|
|000000c0| 6e 7d 7d 5c 5c 5b 2e 32 | 35 63 6d 5d 0a 09 09 7b |n}}\\[.2|5cm]...{|
|000000d0| 5c 6c 61 72 67 65 5c 62 | 66 20 56 65 72 73 69 6f |\large\b|f Versio|
|000000e0| 6e 20 31 2e 34 7d 20 5c | 5c 5b 32 2e 30 63 6d 5d |n 1.4} \|\[2.0cm]|
|000000f0| 0a 09 09 7b 5c 6c 61 72 | 67 65 5c 62 66 20 52 65 |...{\lar|ge\bf Re|
|00000100| 66 65 72 65 6e 63 65 20 | 4d 61 6e 75 61 6c 7d 20 |ference |Manual} |
|00000110| 5c 5c 5b 34 2e 30 63 6d | 5d 0a 09 09 7b 5c 62 66 |\\[4.0cm|]...{\bf|
|00000120| 20 62 79 20 42 65 6e 20 | 45 6e 67 7d 5c 5c 0a 20 | by Ben |Eng}\\. |
|00000130| 20 20 20 5c 65 6e 64 7b | 66 6c 75 73 68 72 69 67 | \end{|flushrig|
|00000140| 68 74 7d 0a 09 5c 6e 65 | 77 70 61 67 65 0a 09 5c |ht}..\ne|wpage..\|
|00000150| 74 68 69 73 70 61 67 65 | 73 74 79 6c 65 7b 65 6d |thispage|style{em|
|00000160| 70 74 79 7d 0a 09 5c 63 | 65 6e 74 65 72 7b 0a 09 |pty}..\c|enter{..|
|00000170| 5c 6c 65 61 76 65 76 6d | 6f 64 65 0a 09 5c 65 70 |\leavevm|ode..\ep|
|00000180| 73 66 66 69 6c 65 7b 6c | 6f 67 6f 2e 70 73 7d 0a |sffile{l|ogo.ps}.|
|00000190| 09 7d 0a 09 5c 76 73 70 | 61 63 65 2a 7b 5c 66 69 |.}..\vsp|ace*{\fi|
|000001a0| 6c 6c 7d 0a 09 5c 62 65 | 67 69 6e 7b 66 6c 75 73 |ll}..\be|gin{flus|
|000001b0| 68 6c 65 66 74 7d 0a 09 | 09 7b 43 6f 70 79 72 69 |hleft}..|.{Copyri|
|000001c0| 67 68 74 20 5c 63 6f 70 | 79 72 69 67 68 74 20 31 |ght \cop|yright 1|
|000001d0| 39 39 31 20 42 65 6e 20 | 45 6e 67 7d 5c 5c 5b 32 |991 Ben |Eng}\\[2|
|000001e0| 2e 30 63 6d 5d 0a 09 09 | 7b 5c 62 66 20 42 65 6e |.0cm]...|{\bf Ben|
|000001f0| 20 45 6e 67 7d 5c 5c 5b | 2e 32 35 63 6d 5d 0a 09 | Eng}\\[|.25cm]..|
|00000200| 09 7b 31 35 30 20 42 65 | 76 65 72 6c 65 79 20 53 |.{150 Be|verley S|
|00000210| 74 2e 5c 20 41 70 74 2e | 5c 23 7b 7d 31 4c 7d 5c |t.\ Apt.|\#{}1L}\|
|00000220| 5c 0a 09 09 7b 54 6f 72 | 6f 6e 74 6f 2c 20 4f 6e |\...{Tor|onto, On|
|00000230| 74 61 72 69 6f 7d 5c 5c | 0a 09 09 7b 4d 35 54 20 |tario}\\|...{M5T |
|00000240| 31 59 36 7d 5c 5c 0a 09 | 09 7b 43 41 4e 41 44 41 |1Y6}\\..|.{CANADA|
|00000250| 7d 5c 5c 5b 32 2e 30 63 | 6d 5d 0a 09 09 7b 74 65 |}\\[2.0c|m]...{te|
|00000260| 6c 65 70 68 6f 6e 65 3a | 20 28 34 31 36 29 2d 2d |lephone:| (416)--|
|00000270| 39 37 39 2d 2d 38 37 36 | 31 7d 5c 5c 0a 09 09 7b |979--876|1}\\...{|
|00000280| 65 2d 6d 61 69 6c 3a 20 | 20 62 65 63 6b 65 72 21 |e-mail: | becker!|
|00000290| 6a 65 74 70 65 6e 21 62 | 65 6e 7d 5c 5c 0a 09 09 |jetpen!b|en}\\...|
|000002a0| 7b 42 49 58 3a 20 6a 65 | 74 70 65 6e 7d 5c 5c 5b |{BIX: je|tpen}\\[|
|000002b0| 32 2e 30 63 6d 5d 0a 7b | 50 65 72 6d 69 73 73 69 |2.0cm].{|Permissi|
|000002c0| 6f 6e 20 69 73 20 67 72 | 61 6e 74 65 64 20 74 6f |on is gr|anted to|
|000002d0| 20 6d 61 6b 65 20 61 6e | 64 20 64 69 73 74 72 69 | make an|d distri|
|000002e0| 62 75 74 65 20 63 6f 70 | 69 65 73 20 6f 66 20 74 |bute cop|ies of t|
|000002f0| 68 69 73 0a 6d 61 6e 75 | 61 6c 20 61 6e 64 20 74 |his.manu|al and t|
|00000300| 68 65 20 73 6f 66 74 77 | 61 72 65 20 74 68 61 74 |he softw|are that|
|00000310| 20 69 73 20 68 65 72 65 | 69 6e 20 64 65 73 63 72 | is here|in descr|
|00000320| 69 62 65 64 2c 20 70 72 | 6f 76 69 64 65 64 20 74 |ibed, pr|ovided t|
|00000330| 68 65 20 63 6f 70 79 72 | 69 67 68 74 0a 6e 6f 74 |he copyr|ight.not|
|00000340| 69 63 65 73 20 61 72 65 | 20 70 72 65 73 65 72 76 |ices are| preserv|
|00000350| 65 64 20 6f 6e 20 61 6c | 6c 20 63 6f 70 69 65 73 |ed on al|l copies|
|00000360| 2e 7d 5c 5c 0a 20 20 20 | 20 5c 65 6e 64 7b 66 6c |.}\\. | \end{fl|
|00000370| 75 73 68 6c 65 66 74 7d | 0a 5c 65 6e 64 7b 74 69 |ushleft}|.\end{ti|
|00000380| 74 6c 65 70 61 67 65 7d | 0a 0a 5c 61 64 64 74 6f |tlepage}|..\addto|
|00000390| 63 6f 6e 74 65 6e 74 73 | 7b 74 6f 63 7d 7b 5c 70 |contents|{toc}{\p|
|000003a0| 72 6f 74 65 63 74 5c 74 | 68 69 73 70 61 67 65 73 |rotect\t|hispages|
|000003b0| 74 79 6c 65 7b 65 6d 70 | 74 79 7d 7d 0a 5c 73 65 |tyle{emp|ty}}.\se|
|000003c0| 74 63 6f 75 6e 74 65 72 | 7b 70 61 67 65 7d 7b 31 |tcounter|{page}{1|
|000003d0| 7d 0a 5c 74 61 62 6c 65 | 6f 66 63 6f 6e 74 65 6e |}.\table|ofconten|
|000003e0| 74 73 0a 5c 72 65 6e 65 | 77 63 6f 6d 6d 61 6e 64 |ts.\rene|wcommand|
|000003f0| 7b 5c 74 68 65 70 61 67 | 65 7d 7b 5c 61 72 61 62 |{\thepag|e}{\arab|
|00000400| 69 63 7b 70 61 67 65 7d | 7d 0a 0a 5c 62 65 67 69 |ic{page}|}..\begi|
|00000410| 6e 7b 61 62 73 74 72 61 | 63 74 7d 0a 4d 61 6b 65 |n{abstra|ct}.Make|
|00000420| 20 69 73 20 61 20 70 72 | 6f 67 72 61 6d 6d 69 6e | is a pr|ogrammin|
|00000430| 67 20 75 74 69 6c 69 74 | 79 20 75 73 65 64 20 74 |g utilit|y used t|
|00000440| 6f 20 61 75 74 6f 6d 61 | 74 65 20 74 68 65 20 70 |o automa|te the p|
|00000450| 72 6f 63 65 73 73 20 6f | 66 20 72 65 63 6f 6d 70 |rocess o|f recomp|
|00000460| 69 6c 69 6e 67 0a 6d 75 | 6c 74 69 70 6c 65 20 69 |iling.mu|ltiple i|
|00000470| 6e 74 65 72 64 65 70 65 | 6e 64 65 6e 74 20 73 6f |nterdepe|ndent so|
|00000480| 75 72 63 65 20 66 69 6c | 65 73 20 69 6e 74 6f 20 |urce fil|es into |
|00000490| 61 6e 20 6f 75 74 70 75 | 74 20 66 69 6c 65 20 28 |an outpu|t file (|
|000004a0| 74 68 65 20 67 6f 61 6c | 29 2e 20 20 54 68 65 0a |the goal|). The.|
|000004b0| 4d 61 6b 65 20 70 72 6f | 67 72 61 6d 20 75 73 65 |Make pro|gram use|
|000004c0| 73 20 72 75 6c 65 73 20 | 6f 66 20 69 6e 66 65 72 |s rules |of infer|
|000004d0| 65 6e 63 65 20 74 6f 20 | 6d 61 6b 65 20 74 68 65 |ence to |make the|
|000004e0| 20 67 6f 61 6c 2e 20 20 | 54 68 65 20 72 75 6c 65 | goal. |The rule|
|000004f0| 73 20 66 6f 72 0a 6d 61 | 6b 69 6e 67 20 74 68 65 |s for.ma|king the|
|00000500| 20 67 6f 61 6c 20 61 72 | 65 20 65 78 70 6c 69 63 | goal ar|e explic|
|00000510| 69 74 6c 79 20 73 74 61 | 74 65 64 20 69 6e 20 61 |itly sta|ted in a|
|00000520| 6e 20 69 6e 70 75 74 20 | 66 69 6c 65 20 63 61 6c |n input |file cal|
|00000530| 6c 65 64 20 74 68 65 20 | 4d 61 6b 65 66 69 6c 65 |led the |Makefile|
|00000540| 2c 0a 61 6e 64 20 69 6d | 70 6c 69 63 69 74 6c 79 |,.and im|plicitly|
|00000550| 20 64 65 74 65 72 6d 69 | 6e 65 64 20 66 72 6f 6d | determi|ned from|
|00000560| 20 62 75 69 6c 74 69 6e | 20 72 75 6c 65 73 2e 20 | builtin| rules. |
|00000570| 20 4e 6f 72 6d 61 6c 6c | 79 2c 20 74 68 65 20 4d | Normall|y, the M|
|00000580| 61 6b 65 66 69 6c 65 20 | 66 6f 72 20 61 0a 67 6f |akefile |for a.go|
|00000590| 61 6c 20 69 73 20 77 72 | 69 74 74 65 6e 20 73 6f |al is wr|itten so|
|000005a0| 20 74 68 61 74 20 74 68 | 65 20 6f 6e 6c 79 20 74 | that th|e only t|
|000005b0| 68 69 6e 67 20 74 68 61 | 74 20 6e 65 65 64 73 20 |hing tha|t needs |
|000005c0| 74 6f 20 62 65 20 64 6f | 6e 65 20 74 6f 20 72 65 |to be do|ne to re|
|000005d0| 63 6f 6d 70 69 6c 65 0a | 6e 65 77 6c 79 20 6d 6f |compile.|newly mo|
|000005e0| 64 69 66 69 65 64 20 73 | 6f 75 72 63 65 20 66 69 |dified s|ource fi|
|000005f0| 6c 65 73 20 69 73 20 74 | 6f 20 72 75 6e 20 74 68 |les is t|o run th|
|00000600| 65 20 4d 61 6b 65 20 70 | 72 6f 67 72 61 6d 2e 0a |e Make p|rogram..|
|00000610| 5c 65 6e 64 7b 61 62 73 | 74 72 61 63 74 7d 0a 0a |\end{abs|tract}..|
|00000620| 25 5c 70 61 67 65 6e 75 | 6d 62 65 72 69 6e 67 7b |%\pagenu|mbering{|
|00000630| 61 72 61 62 69 63 7d 0a | 5c 63 68 61 70 74 65 72 |arabic}.|\chapter|
|00000640| 7b 44 69 73 74 72 69 62 | 75 74 69 6f 6e 7d 0a 0a |{Distrib|ution}..|
|00000650| 54 68 69 73 20 69 73 20 | 76 65 72 73 69 6f 6e 20 |This is |version |
|00000660| 31 2e 34 20 6f 66 20 74 | 68 65 20 4d 61 6b 65 20 |1.4 of t|he Make |
|00000670| 75 74 69 6c 69 74 79 20 | 28 42 4d 61 6b 65 29 20 |utility |(BMake) |
|00000680| 66 6f 72 20 74 68 65 20 | 41 6d 69 67 61 2e 20 20 |for the |Amiga. |
|00000690| 46 6f 72 0a 69 6e 66 6f | 72 6d 61 74 69 6f 6e 20 |For.info|rmation |
|000006a0| 72 65 67 61 72 64 69 6e | 67 20 61 6e 20 75 70 64 |regardin|g an upd|
|000006b0| 61 74 65 64 20 76 65 72 | 73 69 6f 6e 2c 20 69 66 |ated ver|sion, if|
|000006c0| 20 69 74 20 65 78 69 73 | 74 73 2c 20 70 6c 65 61 | it exis|ts, plea|
|000006d0| 73 65 20 63 6f 6e 74 61 | 63 74 20 74 68 65 0a 61 |se conta|ct the.a|
|000006e0| 75 74 68 6f 72 20 62 79 | 20 65 6c 65 63 74 72 6f |uthor by| electro|
|000006f0| 6e 69 63 20 6d 61 69 6c | 2c 20 74 65 6c 65 70 68 |nic mail|, teleph|
|00000700| 6f 6e 65 20 6f 72 20 74 | 68 72 6f 75 67 68 20 74 |one or t|hrough t|
|00000710| 68 65 20 70 6f 73 74 61 | 6c 20 73 65 72 76 69 63 |he posta|l servic|
|00000720| 65 20 69 6e 20 74 68 61 | 74 0a 6f 72 64 65 72 20 |e in tha|t.order |
|00000730| 6f 66 20 70 72 69 6f 72 | 69 74 79 2e 20 20 44 65 |of prior|ity. De|
|00000740| 74 61 69 6c 73 20 6f 66 | 20 68 6f 77 20 74 6f 20 |tails of| how to |
|00000750| 63 6f 6e 74 61 63 74 20 | 6d 65 20 63 61 6e 20 62 |contact |me can b|
|00000760| 65 20 66 6f 75 6e 64 20 | 69 6e 20 74 68 65 20 7b |e found |in the {|
|00000770| 5c 74 74 0a 52 45 41 44 | 4d 45 7d 20 66 69 6c 65 |\tt.READ|ME} file|
|00000780| 20 61 73 73 6f 63 69 61 | 74 65 64 20 77 69 74 68 | associa|ted with|
|00000790| 20 74 68 65 20 64 69 73 | 74 72 69 62 75 74 69 6f | the dis|tributio|
|000007a0| 6e 2e 0a 0a 49 66 20 79 | 6f 75 20 63 68 6f 6f 73 |n...If y|ou choos|
|000007b0| 65 20 74 6f 20 6d 61 6b | 65 20 75 73 65 20 6f 66 |e to mak|e use of|
|000007c0| 20 74 68 69 73 20 73 6f | 66 74 77 61 72 65 20 6f | this so|ftware o|
|000007d0| 72 20 64 69 73 74 72 69 | 62 75 74 65 20 74 68 69 |r distri|bute thi|
|000007e0| 73 20 73 6f 66 74 77 61 | 72 65 20 74 6f 0a 6f 74 |s softwa|re to.ot|
|000007f0| 68 65 72 20 75 73 65 72 | 73 2c 20 70 6c 65 61 73 |her user|s, pleas|
|00000800| 65 20 72 65 61 64 20 74 | 68 65 20 47 4e 55 20 47 |e read t|he GNU G|
|00000810| 65 6e 65 72 61 6c 20 50 | 75 62 6c 69 63 20 4c 69 |eneral P|ublic Li|
|00000820| 63 65 6e 73 65 20 77 68 | 69 63 68 20 69 73 20 65 |cense wh|ich is e|
|00000830| 6e 63 6c 6f 73 65 64 0a | 77 69 74 68 20 74 68 65 |nclosed.|with the|
|00000840| 20 64 69 73 74 72 69 62 | 75 74 69 6f 6e 20 61 73 | distrib|ution as|
|00000850| 20 74 68 65 20 66 69 6c | 65 20 63 61 6c 6c 65 64 | the fil|e called|
|00000860| 20 7b 5c 74 74 20 43 4f | 50 59 49 4e 47 7d 2e 0a | {\tt CO|PYING}..|
|00000870| 0a 49 66 20 79 6f 75 20 | 64 69 64 20 6e 6f 74 20 |.If you |did not |
|00000880| 72 65 63 65 69 76 65 20 | 74 68 69 73 20 73 6f 66 |receive |this sof|
|00000890| 74 77 61 72 65 20 66 72 | 6f 6d 20 74 68 65 20 61 |tware fr|om the a|
|000008a0| 75 74 68 6f 72 20 62 79 | 20 6d 61 67 6e 65 74 69 |uthor by| magneti|
|000008b0| 63 20 6d 65 64 69 61 20 | 6f 72 0a 64 69 72 65 63 |c media |or.direc|
|000008c0| 74 20 74 72 61 6e 73 6d | 69 73 73 69 6f 6e 2c 20 |t transm|ission, |
|000008d0| 74 68 65 6e 20 70 6c 65 | 61 73 65 20 74 61 6b 65 |then ple|ase take|
|000008e0| 20 74 68 65 20 74 69 6d | 65 20 74 6f 20 72 65 67 | the tim|e to reg|
|000008f0| 69 73 74 65 72 20 79 6f | 75 72 20 76 65 72 73 69 |ister yo|ur versi|
|00000900| 6f 6e 0a 73 6f 20 74 68 | 61 74 20 75 70 64 61 74 |on.so th|at updat|
|00000910| 65 73 20 77 69 6c 6c 20 | 63 6f 6e 74 69 6e 75 65 |es will |continue|
|00000920| 20 74 6f 20 62 65 20 6f | 66 66 65 72 65 64 20 69 | to be o|ffered i|
|00000930| 6e 20 74 68 65 20 66 75 | 74 75 72 65 2e 20 20 41 |n the fu|ture. A|
|00000940| 20 6c 61 63 6b 20 6f 66 | 0a 72 65 73 70 6f 6e 73 | lack of|.respons|
|00000950| 65 20 77 69 6c 6c 20 69 | 6e 64 69 63 61 74 65 20 |e will i|ndicate |
|00000960| 74 68 61 74 20 74 68 65 | 20 70 72 6f 64 75 63 74 |that the| product|
|00000970| 20 64 6f 65 73 20 6e 6f | 74 20 64 65 73 65 72 76 | does no|t deserv|
|00000980| 65 20 66 75 72 74 68 65 | 72 20 61 74 74 65 6e 74 |e furthe|r attent|
|00000990| 69 6f 6e 0a 61 6e 64 20 | 74 68 65 20 73 6f 66 74 |ion.and |the soft|
|000009a0| 77 61 72 65 20 77 69 6c | 6c 20 62 65 20 6f 72 70 |ware wil|l be orp|
|000009b0| 68 61 6e 65 64 3b 20 61 | 20 73 74 72 6f 6e 67 20 |haned; a| strong |
|000009c0| 72 65 73 70 6f 6e 73 65 | 20 77 69 6c 6c 20 64 65 |response| will de|
|000009d0| 6d 61 6e 64 20 72 61 70 | 69 64 0a 69 6d 70 72 6f |mand rap|id.impro|
|000009e0| 76 65 6d 65 6e 74 73 20 | 69 6e 20 66 75 74 75 72 |vements |in futur|
|000009f0| 65 20 75 70 67 72 61 64 | 65 73 20 6f 66 20 74 68 |e upgrad|es of th|
|00000a00| 65 20 70 72 6f 64 75 63 | 74 2e 0a 0a 54 6f 20 72 |e produc|t...To r|
|00000a10| 65 67 69 73 74 65 72 20 | 73 69 6d 70 6c 79 20 73 |egister |simply s|
|00000a20| 65 6e 64 20 61 20 6c 65 | 74 74 65 72 20 6f 72 20 |end a le|tter or |
|00000a30| 70 6f 73 74 63 61 72 64 | 20 77 69 74 68 20 79 6f |postcard| with yo|
|00000a40| 75 72 20 6e 61 6d 65 20 | 28 61 6e 64 20 63 6f 6d |ur name |(and com|
|00000a50| 70 61 6e 79 2c 0a 69 66 | 20 74 68 65 79 20 61 72 |pany,.if| they ar|
|00000a60| 65 20 75 73 69 6e 67 20 | 74 68 65 20 70 72 6f 64 |e using |the prod|
|00000a70| 75 63 74 29 2c 20 61 64 | 64 72 65 73 73 2c 20 61 |uct), ad|dress, a|
|00000a80| 6e 64 20 74 65 6c 65 70 | 68 6f 6e 65 20 6e 75 6d |nd telep|hone num|
|00000a90| 62 65 72 2c 20 61 6c 6f | 6e 67 20 77 69 74 68 0a |ber, alo|ng with.|
|00000aa0| 74 68 65 20 6e 61 6d 65 | 20 61 6e 64 20 76 65 72 |the name| and ver|
|00000ab0| 73 69 6f 6e 20 6e 75 6d | 62 65 72 20 6f 66 20 74 |sion num|ber of t|
|00000ac0| 68 65 20 70 72 6f 64 75 | 63 74 20 79 6f 75 20 61 |he produ|ct you a|
|00000ad0| 72 65 20 72 65 67 69 73 | 74 65 72 69 6e 67 2e 0a |re regis|tering..|
|00000ae0| 0a 49 66 20 79 6f 75 20 | 61 72 65 20 61 6c 72 65 |.If you |are alre|
|00000af0| 61 64 79 20 72 65 67 69 | 73 74 65 72 65 64 20 6f |ady regi|stered o|
|00000b00| 72 20 69 66 20 79 6f 75 | 20 61 72 65 20 70 72 65 |r if you| are pre|
|00000b10| 73 65 6e 74 6c 79 20 72 | 65 67 69 73 74 65 72 69 |sently r|egisteri|
|00000b20| 6e 67 2c 20 79 6f 75 20 | 6d 61 79 0a 72 65 63 65 |ng, you |may.rece|
|00000b30| 69 76 65 20 61 6e 20 75 | 70 67 72 61 64 65 20 64 |ive an u|pgrade d|
|00000b40| 69 72 65 63 74 20 66 72 | 6f 6d 20 74 68 65 20 61 |irect fr|om the a|
|00000b50| 75 74 68 6f 72 20 62 79 | 20 73 65 6e 64 69 6e 67 |uthor by| sending|
|00000b60| 20 61 20 6d 6f 6e 65 79 | 20 6f 72 64 65 72 20 69 | a money| order i|
|00000b70| 6e 20 74 68 65 0a 61 6d | 6f 75 6e 74 20 6f 66 20 |n the.am|ount of |
|00000b80| 43 44 4e 5c 24 32 30 2e | 30 30 20 28 7b 5c 62 66 |CDN\$20.|00 ({\bf|
|00000b90| 20 74 77 65 6e 74 79 20 | 43 61 6e 61 64 69 61 6e | twenty |Canadian|
|00000ba0| 20 64 6f 6c 6c 61 72 73 | 7d 29 20 70 61 79 61 62 | dollars|}) payab|
|00000bb0| 6c 65 20 74 6f 20 74 68 | 65 20 61 75 74 68 6f 72 |le to th|e author|
|00000bc0| 2c 0a 42 65 6e 20 45 6e | 67 2c 20 74 6f 20 74 68 |,.Ben En|g, to th|
|00000bd0| 65 20 61 64 64 72 65 73 | 73 20 67 69 76 65 6e 20 |e addres|s given |
|00000be0| 6f 6e 20 74 68 65 20 69 | 6e 73 69 64 65 20 63 6f |on the i|nside co|
|00000bf0| 76 65 72 20 6f 66 20 74 | 68 69 73 20 6d 61 6e 75 |ver of t|his manu|
|00000c00| 61 6c 20 6f 72 20 69 6e | 20 74 68 65 0a 7b 5c 74 |al or in| the.{\t|
|00000c10| 74 20 52 45 41 44 4d 45 | 7d 20 66 69 6c 65 2c 20 |t README|} file, |
|00000c20| 61 6c 6f 6e 67 20 77 69 | 74 68 20 61 20 6c 65 74 |along wi|th a let|
|00000c30| 74 65 72 20 72 65 71 75 | 65 73 74 69 6e 67 20 61 |ter requ|esting a|
|00000c40| 6e 20 75 70 67 72 61 64 | 65 20 28 70 6c 65 61 73 |n upgrad|e (pleas|
|00000c50| 65 2c 0a 6d 65 6e 74 69 | 6f 6e 20 74 68 65 20 6e |e,.menti|on the n|
|00000c60| 61 6d 65 20 6f 66 20 74 | 68 65 20 70 72 6f 64 75 |ame of t|he produ|
|00000c70| 63 74 29 2e 20 20 54 68 | 65 20 6c 61 74 65 73 74 |ct). Th|e latest|
|00000c80| 20 72 65 6c 65 61 73 65 | 20 6f 66 20 74 68 65 20 | release| of the |
|00000c90| 72 65 71 75 65 73 74 65 | 64 0a 70 72 6f 64 75 63 |requeste|d.produc|
|00000ca0| 74 20 77 69 6c 6c 20 62 | 65 20 70 72 6f 6d 70 74 |t will b|e prompt|
|00000cb0| 6c 79 20 73 65 6e 74 20 | 6f 75 74 20 74 6f 20 79 |ly sent |out to y|
|00000cc0| 6f 75 2c 20 6f 72 20 61 | 74 20 79 6f 75 72 20 72 |ou, or a|t your r|
|00000cd0| 65 71 75 65 73 74 20 61 | 20 6c 61 74 65 72 0a 72 |equest a| later.r|
|00000ce0| 65 6c 65 61 73 65 20 77 | 69 6c 6c 20 62 65 20 6d |elease w|ill be m|
|00000cf0| 61 69 6c 65 64 20 74 6f | 20 79 6f 75 20 77 68 65 |ailed to| you whe|
|00000d00| 6e 20 69 74 20 69 73 20 | 61 76 61 69 6c 61 62 6c |n it is |availabl|
|00000d10| 65 20 28 69 65 2e 20 20 | 69 66 20 79 6f 75 20 61 |e (ie. |if you a|
|00000d20| 72 65 20 77 61 69 74 69 | 6e 67 0a 66 6f 72 20 61 |re waiti|ng.for a|
|00000d30| 20 66 65 61 74 75 72 65 | 20 74 6f 20 62 65 20 61 | feature| to be a|
|00000d40| 64 64 65 64 29 2e 20 20 | 54 68 65 20 70 72 69 63 |dded). |The pric|
|00000d50| 65 20 63 6f 76 65 72 73 | 20 74 68 65 20 63 6f 73 |e covers| the cos|
|00000d60| 74 20 6f 66 20 74 68 65 | 20 6d 65 64 69 61 20 61 |t of the| media a|
|00000d70| 6e 64 0a 73 68 69 70 70 | 69 6e 67 2e 0a 0a 0a 5c |nd.shipp|ing....\|
|00000d80| 63 68 61 70 74 65 72 7b | 54 68 65 20 4d 61 6b 65 |chapter{|The Make|
|00000d90| 20 50 72 6f 67 72 61 6d | 7d 0a 0a 5c 73 65 63 74 | Program|}..\sect|
|00000da0| 69 6f 6e 7b 49 6e 74 72 | 6f 64 75 63 74 69 6f 6e |ion{Intr|oduction|
|00000db0| 7d 0a 0a 54 68 65 20 4d | 61 6b 65 20 70 72 6f 67 |}..The M|ake prog|
|00000dc0| 72 61 6d 20 77 61 73 20 | 77 72 69 74 74 65 6e 20 |ram was |written |
|00000dd0| 74 6f 20 72 65 64 75 63 | 65 20 74 68 65 20 74 65 |to reduc|e the te|
|00000de0| 64 69 75 6d 20 69 6e 76 | 6f 6c 76 65 64 20 69 6e |dium inv|olved in|
|00000df0| 20 64 65 76 65 6c 6f 70 | 69 6e 67 0a 73 6f 66 74 | develop|ing.soft|
|00000e00| 77 61 72 65 2e 20 20 41 | 20 70 72 6f 67 72 61 6d |ware. A| program|
|00000e10| 20 75 6e 64 65 72 20 64 | 65 76 65 6c 6f 70 6d 65 | under d|evelopme|
|00000e20| 6e 74 20 75 73 75 61 6c | 6c 79 20 6e 65 65 64 73 |nt usual|ly needs|
|00000e30| 20 74 6f 20 62 65 20 72 | 65 63 6f 6d 70 69 6c 65 | to be r|ecompile|
|00000e40| 64 0a 6d 61 6e 79 20 74 | 69 6d 65 73 20 70 65 72 |d.many t|imes per|
|00000e50| 20 64 61 79 2e 20 20 54 | 79 70 69 6e 67 20 6f 75 | day. T|yping ou|
|00000e60| 74 20 74 68 65 20 66 75 | 6c 6c 20 63 6f 6d 6d 61 |t the fu|ll comma|
|00000e70| 6e 64 20 6c 69 6e 65 20 | 66 6f 72 20 65 61 63 68 |nd line |for each|
|00000e80| 20 73 74 65 70 20 6f 66 | 20 74 68 65 0a 63 6f 6d | step of| the.com|
|00000e90| 70 69 6c 61 74 69 6f 6e | 20 62 65 63 6f 6d 65 73 |pilation| becomes|
|00000ea0| 20 65 78 63 65 65 64 69 | 6e 67 6c 79 20 74 65 64 | exceedi|ngly ted|
|00000eb0| 69 6f 75 73 2c 20 61 6e | 64 20 61 20 73 68 65 6c |ious, an|d a shel|
|00000ec0| 6c 20 73 63 72 69 70 74 | 20 69 73 20 74 6f 6f 20 |l script| is too |
|00000ed0| 63 72 75 64 65 20 74 6f | 0a 66 69 67 75 72 65 20 |crude to|.figure |
|00000ee0| 6f 75 74 20 74 68 65 20 | 6d 6f 73 74 20 65 66 66 |out the |most eff|
|00000ef0| 69 63 69 65 6e 74 20 77 | 61 79 20 74 6f 20 72 65 |icient w|ay to re|
|00000f00| 63 6f 6d 70 69 6c 65 20 | 61 20 6c 61 72 67 65 20 |compile |a large |
|00000f10| 73 65 74 20 6f 66 20 73 | 6f 75 72 63 65 20 66 69 |set of s|ource fi|
|00000f20| 6c 65 73 2e 0a 54 68 65 | 20 4d 61 6b 65 20 70 72 |les..The| Make pr|
|00000f30| 6f 67 72 61 6d 20 73 75 | 69 74 73 20 74 68 69 73 |ogram su|its this|
|00000f40| 20 70 75 72 70 6f 73 65 | 20 77 65 6c 6c 2e 0a 0a | purpose| well...|
|00000f50| 57 69 74 68 20 61 20 70 | 72 6f 70 65 72 6c 79 20 |With a p|roperly |
|00000f60| 77 72 69 74 74 65 6e 20 | 4d 61 6b 65 66 69 6c 65 |written |Makefile|
|00000f70| 20 69 6e 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 | in the |current |
|00000f80| 64 69 72 65 63 74 6f 72 | 79 2c 20 61 6c 6c 20 74 |director|y, all t|
|00000f90| 68 61 74 20 6e 65 65 64 | 73 0a 74 6f 20 62 65 20 |hat need|s.to be |
|00000fa0| 74 79 70 65 64 20 74 6f | 20 62 75 69 6c 64 20 74 |typed to| build t|
|00000fb0| 68 65 20 70 72 6f 6a 65 | 63 74 20 75 6e 64 65 72 |he proje|ct under|
|00000fc0| 20 64 65 76 65 6c 6f 70 | 6d 65 6e 74 20 69 73 20 | develop|ment is |
|00000fd0| 7b 5c 74 74 20 6d 61 6b | 65 7d 2e 20 20 54 6f 20 |{\tt mak|e}. To |
|00000fe0| 62 75 69 6c 64 0a 6f 6e | 6c 79 20 61 20 73 75 62 |build.on|ly a sub|
|00000ff0| 73 65 74 20 6f 66 20 74 | 68 65 20 70 72 6f 6a 65 |set of t|he proje|
|00001000| 63 74 20 64 65 66 69 6e | 65 64 20 69 6e 20 74 68 |ct defin|ed in th|
|00001010| 65 20 4d 61 6b 65 66 69 | 6c 65 2c 20 73 69 6d 70 |e Makefi|le, simp|
|00001020| 6c 79 20 74 79 70 65 20 | 7b 5c 74 74 0a 6d 61 6b |ly type |{\tt.mak|
|00001030| 65 7e 5c 69 74 20 67 6f | 61 6c 6e 61 6d 65 7d 2c |e~\it go|alname},|
|00001040| 20 77 68 65 72 65 20 7b | 5c 69 74 20 67 6f 61 6c | where {|\it goal|
|00001050| 6e 61 6d 65 7d 20 69 73 | 20 74 68 65 20 6e 61 6d |name} is| the nam|
|00001060| 65 20 6f 66 20 74 68 65 | 20 67 6f 61 6c 2c 20 74 |e of the| goal, t|
|00001070| 68 61 74 0a 72 65 71 75 | 69 72 65 73 20 72 65 62 |hat.requ|ires reb|
|00001080| 75 69 6c 64 69 6e 67 2e | 20 20 54 68 65 20 61 63 |uilding.| The ac|
|00001090| 74 75 61 6c 20 64 65 70 | 65 6e 64 65 6e 63 69 65 |tual dep|endencie|
|000010a0| 73 20 74 68 61 74 20 6d | 75 73 74 20 62 65 20 63 |s that m|ust be c|
|000010b0| 68 65 63 6b 65 64 20 61 | 6e 64 20 74 68 65 0a 63 |hecked a|nd the.c|
|000010c0| 6f 6d 6d 61 6e 64 73 20 | 77 68 69 63 68 20 6d 75 |ommands |which mu|
|000010d0| 73 74 20 62 65 20 65 78 | 65 63 75 74 65 64 20 61 |st be ex|ecuted a|
|000010e0| 72 65 20 61 6c 6c 20 74 | 61 6b 65 6e 20 63 61 72 |re all t|aken car|
|000010f0| 65 20 6f 66 20 69 6e 20 | 74 68 65 20 4d 61 6b 65 |e of in |the Make|
|00001100| 66 69 6c 65 20 61 6e 64 | 0a 74 68 65 20 62 75 69 |file and|.the bui|
|00001110| 6c 74 69 6e 20 72 75 6c | 65 73 2e 0a 0a 5c 73 65 |ltin rul|es...\se|
|00001120| 63 74 69 6f 6e 7b 43 6f | 6d 6d 61 6e 64 20 4c 69 |ction{Co|mmand Li|
|00001130| 6e 65 20 41 72 67 75 6d | 65 6e 74 73 7d 0a 0a 53 |ne Argum|ents}..S|
|00001140| 6f 6d 65 74 69 6d 65 73 | 20 69 74 20 69 73 20 6e |ometimes| it is n|
|00001150| 65 63 65 73 73 61 72 79 | 20 74 6f 20 61 6c 74 65 |ecessary| to alte|
|00001160| 72 20 74 68 65 20 62 65 | 68 61 76 69 6f 75 72 20 |r the be|haviour |
|00001170| 6f 66 20 74 68 65 20 4d | 61 6b 65 20 70 72 6f 67 |of the M|ake prog|
|00001180| 72 61 6d 20 64 75 65 20 | 74 6f 0a 73 70 65 63 69 |ram due |to.speci|
|00001190| 61 6c 20 63 69 72 63 75 | 6d 73 74 61 6e 63 65 73 |al circu|mstances|
|000011a0| 2e 20 20 43 6f 6d 6d 61 | 6e 64 20 6c 69 6e 65 20 |. Comma|nd line |
|000011b0| 61 72 67 75 6d 65 6e 74 | 73 20 61 72 65 20 70 72 |argument|s are pr|
|000011c0| 6f 76 69 64 65 64 20 74 | 6f 20 63 6f 6e 74 72 6f |ovided t|o contro|
|000011d0| 6c 20 68 6f 77 0a 74 68 | 65 20 4d 61 6b 65 20 70 |l how.th|e Make p|
|000011e0| 72 6f 67 72 61 6d 20 6f | 70 65 72 61 74 65 73 2e |rogram o|perates.|
|000011f0| 0a 0a 5c 62 65 67 69 6e | 7b 74 61 62 75 6c 61 72 |..\begin|{tabular|
|00001200| 7d 7b 6c 6c 7d 0a 7b 2d | 61 7d 09 26 20 6d 61 6b |}{ll}.{-|a}.& mak|
|00001210| 65 20 61 6c 6c 20 64 65 | 70 65 6e 64 65 6e 74 73 |e all de|pendents|
|00001220| 20 72 65 67 61 72 64 6c | 65 73 73 20 6f 66 20 6d | regardl|ess of m|
|00001230| 6f 64 69 66 69 63 61 74 | 69 6f 6e 20 74 69 6d 65 |odificat|ion time|
|00001240| 20 5c 5c 0a 7b 2d 62 7d | 09 26 20 64 6f 20 6e 6f | \\.{-b}|.& do no|
|00001250| 74 20 75 73 65 20 62 75 | 69 6c 74 69 6e 20 72 75 |t use bu|iltin ru|
|00001260| 6c 65 73 20 5c 5c 0a 7b | 2d 64 7d 09 26 20 64 65 |les \\.{|-d}.& de|
|00001270| 62 75 67 20 6d 6f 64 65 | 20 28 65 6e 61 62 6c 65 |bug mode| (enable|
|00001280| 20 70 72 69 6e 74 66 29 | 20 5c 5c 0a 7b 2b 6d 5c | printf)| \\.{+m\|
|00001290| 23 7d 09 26 20 73 65 74 | 73 20 74 68 65 20 6d 61 |#}.& set|s the ma|
|000012a0| 78 69 6d 75 6d 20 6c 69 | 6e 65 20 6c 65 6e 67 74 |ximum li|ne lengt|
|000012b0| 68 20 74 6f 20 5c 23 20 | 28 6d 69 6e 69 6d 75 6d |h to \# |(minimum|
|000012c0| 3d 31 30 32 34 29 20 5c | 5c 0a 7b 2d 6e 7d 09 26 |=1024) \|\.{-n}.&|
|000012d0| 20 70 72 69 6e 74 73 20 | 63 6f 6d 6d 61 6e 64 73 | prints |commands|
|000012e0| 20 74 6f 20 62 65 20 65 | 78 65 63 75 74 65 64 2c | to be e|xecuted,|
|000012f0| 20 62 75 74 20 64 6f 20 | 6e 6f 74 20 65 78 65 63 | but do |not exec|
|00001300| 75 74 65 20 74 68 65 6d | 20 5c 5c 0a 7b 2d 70 7d |ute them| \\.{-p}|
|00001310| 09 26 20 70 72 69 6e 74 | 73 20 74 68 65 20 64 61 |.& print|s the da|
|00001320| 74 61 62 61 73 65 2c 20 | 62 75 74 20 64 6f 20 6e |tabase, |but do n|
|00001330| 6f 74 20 72 75 6e 20 5c | 5c 0a 7b 2d 74 7d 09 26 |ot run \|\.{-t}.&|
|00001340| 20 6d 61 6b 65 20 74 61 | 72 67 65 74 73 20 75 70 | make ta|rgets up|
|00001350| 2d 74 6f 2d 64 61 74 65 | 20 62 79 20 74 6f 75 63 |-to-date| by touc|
|00001360| 68 69 6e 67 20 28 63 6f | 6d 6d 61 6e 64 73 20 6e |hing (co|mmands n|
|00001370| 6f 74 20 65 78 65 63 75 | 74 65 64 29 20 5c 5c 0a |ot execu|ted) \\.|
|00001380| 7b 2d 76 5c 23 7d 09 26 | 20 73 65 74 20 76 65 72 |{-v\#}.&| set ver|
|00001390| 62 6f 73 65 20 6c 65 76 | 65 6c 20 74 6f 20 5c 23 |bose lev|el to \#|
|000013a0| 3b 20 30 3d 73 69 6c 65 | 6e 74 20 5c 5c 0a 7b 2d |; 0=sile|nt \\.{-|
|000013b0| 66 7b 5c 65 6d 20 6d 61 | 6b 65 66 69 6c 65 7d 7d |f{\em ma|kefile}}|
|000013c0| 09 26 20 73 70 65 63 69 | 66 79 20 74 68 65 20 6d |.& speci|fy the m|
|000013d0| 61 6b 65 66 69 6c 65 20 | 74 6f 20 72 75 6e 20 5c |akefile |to run \|
|000013e0| 5c 0a 7b 7b 5c 62 66 20 | 76 61 72 7d 3d 7b 5c 65 |\.{{\bf |var}={\e|
|000013f0| 6d 20 76 61 6c 75 65 7d | 7d 09 26 20 61 73 73 69 |m value}|}.& assi|
|00001400| 67 6e 73 20 74 68 65 20 | 76 61 6c 75 65 20 74 6f |gns the |value to|
|00001410| 20 61 20 76 61 72 69 61 | 62 6c 65 20 5c 5c 0a 7b | a varia|ble \\.{|
|00001420| 7b 5c 65 6d 20 77 69 6c | 64 63 61 72 64 73 7d 7d |{\em wil|dcards}}|
|00001430| 09 26 20 73 70 65 63 69 | 66 79 20 74 61 72 67 65 |.& speci|fy targe|
|00001440| 74 73 20 74 6f 20 6d 61 | 6b 65 0a 5c 65 6e 64 7b |ts to ma|ke.\end{|
|00001450| 74 61 62 75 6c 61 72 7d | 0a 0a 54 68 65 20 4d 61 |tabular}|..The Ma|
|00001460| 6b 65 20 70 72 6f 67 72 | 61 6d 20 72 65 71 75 69 |ke progr|am requi|
|00001470| 72 65 73 20 41 6d 69 67 | 61 20 4f 53 20 32 2e 30 |res Amig|a OS 2.0|
|00001480| 20 74 6f 20 72 75 6e 20 | 77 69 74 68 20 6d 61 78 | to run |with max|
|00001490| 69 6d 75 6d 20 63 61 70 | 61 62 69 6c 69 74 79 2e |imum cap|ability.|
|000014a0| 0a 55 6e 64 65 72 20 41 | 6d 69 67 61 20 4f 53 20 |.Under A|miga OS |
|000014b0| 31 2e 33 2c 20 74 68 65 | 72 65 20 69 73 20 6e 6f |1.3, the|re is no|
|000014c0| 20 77 69 6c 64 63 61 72 | 64 20 73 75 70 70 6f 72 | wildcar|d suppor|
|000014d0| 74 2e 20 20 52 75 6e 20 | 74 68 65 20 70 72 6f 67 |t. Run |the prog|
|000014e0| 72 61 6d 20 77 69 74 68 | 20 74 68 65 0a 61 72 67 |ram with| the.arg|
|000014f0| 75 6d 65 6e 74 20 7b 5c | 74 74 20 3f 7d 20 74 6f |ument {\|tt ?} to|
|00001500| 20 73 65 65 20 69 74 73 | 20 75 73 61 67 65 2c 20 | see its| usage, |
|00001510| 6f 72 20 7b 5c 74 74 20 | 2d 68 7d 20 74 6f 20 67 |or {\tt |-h} to g|
|00001520| 65 74 20 6d 6f 72 65 20 | 64 65 73 63 72 69 70 74 |et more |descript|
|00001530| 69 76 65 20 68 65 6c 70 | 0a 6f 6e 20 61 63 63 65 |ive help|.on acce|
|00001540| 70 74 61 62 6c 65 20 63 | 6f 6d 6d 61 6e 64 20 6c |ptable c|ommand l|
|00001550| 69 6e 65 20 61 72 67 75 | 6d 65 6e 74 73 2e 0a 0a |ine argu|ments...|
|00001560| 54 68 65 20 65 6e 76 69 | 72 6f 6e 6d 65 6e 74 20 |The envi|ronment |
|00001570| 76 61 72 69 61 62 6c 65 | 20 7b 5c 74 74 20 45 4e |variable| {\tt EN|
|00001580| 56 3a 73 79 73 74 65 6d | 7d 20 63 61 6e 20 62 65 |V:system|} can be|
|00001590| 20 73 65 74 20 74 6f 20 | 7b 5c 74 74 20 79 65 73 | set to |{\tt yes|
|000015a0| 7d 20 69 66 20 79 6f 75 | 0a 77 69 73 68 20 74 68 |} if you|.wish th|
|000015b0| 65 20 63 6f 6d 6d 61 6e | 64 20 65 78 65 63 75 74 |e comman|d execut|
|000015c0| 69 6f 6e 20 74 6f 20 75 | 73 65 20 74 68 65 20 41 |ion to u|se the A|
|000015d0| 6d 69 67 61 20 4f 53 20 | 32 2e 30 20 53 79 73 74 |miga OS |2.0 Syst|
|000015e0| 65 6d 28 29 20 63 61 6c | 6c 2e 20 20 49 66 0a 7b |em() cal|l. If.{|
|000015f0| 5c 74 74 20 45 4e 56 3a | 73 79 73 74 65 6d 7d 20 |\tt ENV:|system} |
|00001600| 69 73 20 73 65 74 20 74 | 6f 20 7b 5c 74 74 20 6e |is set t|o {\tt n|
|00001610| 6f 7d 2c 20 74 68 65 20 | 41 6d 69 67 61 20 4f 53 |o}, the |Amiga OS|
|00001620| 20 45 78 65 63 75 74 65 | 28 29 20 63 61 6c 6c 20 | Execute|() call |
|00001630| 69 73 20 75 73 65 64 2e | 0a 54 68 65 20 6c 61 74 |is used.|.The lat|
|00001640| 74 65 72 20 69 73 20 64 | 65 73 69 72 61 62 6c 65 |ter is d|esirable|
|00001650| 20 69 66 20 79 6f 75 20 | 61 72 65 20 73 74 69 6c | if you |are stil|
|00001660| 6c 20 72 75 6e 6e 69 6e | 67 20 77 69 74 68 20 61 |l runnin|g with a|
|00001670| 20 73 68 65 6c 6c 20 74 | 68 61 74 20 64 6f 65 73 | shell t|hat does|
|00001680| 20 6e 6f 74 0a 73 75 70 | 70 6f 72 74 20 74 68 65 | not.sup|port the|
|00001690| 20 32 2e 30 20 63 6f 6e | 76 65 6e 74 69 6f 6e 73 | 2.0 con|ventions|
|000016a0| 20 28 57 53 68 65 6c 6c | 20 31 2e 32 20 66 61 6c | (WShell| 1.2 fal|
|000016b0| 6c 73 20 75 6e 64 65 72 | 20 74 68 69 73 20 63 61 |ls under| this ca|
|000016c0| 74 65 67 6f 72 79 29 2e | 0a 0a 0a 5c 63 68 61 70 |tegory).|...\chap|
|000016d0| 74 65 72 7b 54 68 65 20 | 4d 61 6b 65 66 69 6c 65 |ter{The |Makefile|
|000016e0| 7d 0a 0a 5c 73 65 63 74 | 69 6f 6e 7b 49 6e 74 72 |}..\sect|ion{Intr|
|000016f0| 6f 64 75 63 74 69 6f 6e | 7d 0a 0a 54 68 65 20 4d |oduction|}..The M|
|00001700| 61 6b 65 66 69 6c 65 20 | 69 73 20 61 20 74 65 78 |akefile |is a tex|
|00001710| 74 20 66 69 6c 65 20 77 | 72 69 74 74 65 6e 20 74 |t file w|ritten t|
|00001720| 6f 20 6d 61 69 6e 74 61 | 69 6e 20 74 68 65 20 63 |o mainta|in the c|
|00001730| 6f 6e 73 74 72 75 63 74 | 69 6f 6e 20 6f 66 20 61 |onstruct|ion of a|
|00001740| 6e 0a 6f 75 74 70 75 74 | 20 66 69 6c 65 20 66 72 |n.output| file fr|
|00001750| 6f 6d 20 61 20 73 65 74 | 20 6f 66 20 73 6f 75 72 |om a set| of sour|
|00001760| 63 65 20 66 69 6c 65 73 | 2e 20 20 4e 6f 72 6d 61 |ce files|. Norma|
|00001770| 6c 6c 79 2c 20 61 20 4d | 61 6b 65 66 69 6c 65 20 |lly, a M|akefile |
|00001780| 69 73 20 75 73 65 64 20 | 74 6f 0a 64 65 66 69 6e |is used |to.defin|
|00001790| 65 20 74 68 65 20 72 75 | 6c 65 73 20 66 6f 72 20 |e the ru|les for |
|000017a0| 62 75 69 6c 64 69 6e 67 | 20 61 6e 20 65 78 65 63 |building| an exec|
|000017b0| 75 74 61 62 6c 65 20 62 | 69 6e 61 72 79 20 66 69 |utable b|inary fi|
|000017c0| 6c 65 20 66 72 6f 6d 20 | 61 20 73 65 74 20 6f 66 |le from |a set of|
|000017d0| 0a 6f 62 6a 65 63 74 20 | 66 69 6c 65 73 2c 20 77 |.object |files, w|
|000017e0| 68 69 63 68 20 61 72 65 | 20 63 72 65 61 74 65 64 |hich are| created|
|000017f0| 20 62 79 20 63 6f 6d 70 | 69 6c 69 6e 67 20 73 6f | by comp|iling so|
|00001800| 75 72 63 65 20 66 69 6c | 65 73 2e 0a 0a 54 68 65 |urce fil|es...The|
|00001810| 20 4d 61 6b 65 20 70 72 | 6f 67 72 61 6d 20 77 69 | Make pr|ogram wi|
|00001820| 6c 6c 20 72 65 61 64 20 | 69 6e 20 74 68 65 20 4d |ll read |in the M|
|00001830| 61 6b 65 66 69 6c 65 20 | 61 6e 64 20 75 73 65 20 |akefile |and use |
|00001840| 74 68 65 20 72 75 6c 65 | 73 20 74 6f 20 64 65 74 |the rule|s to det|
|00001850| 65 72 6d 69 6e 65 0a 77 | 68 69 63 68 20 73 6f 75 |ermine.w|hich sou|
|00001860| 72 63 65 20 66 69 6c 65 | 73 20 72 65 71 75 69 72 |rce file|s requir|
|00001870| 65 20 72 65 63 6f 6d 70 | 69 6c 61 74 69 6f 6e 2c |e recomp|ilation,|
|00001880| 20 61 6e 64 20 77 68 65 | 74 68 65 72 20 6f 72 20 | and whe|ther or |
|00001890| 6e 6f 74 20 74 68 65 20 | 65 78 65 63 75 74 61 62 |not the |executab|
|000018a0| 6c 65 0a 66 69 6c 65 20 | 6e 65 65 64 73 20 74 6f |le.file |needs to|
|000018b0| 20 62 65 20 72 65 6c 69 | 6e 6b 65 64 2e 20 20 46 | be reli|nked. F|
|000018c0| 6f 72 20 6c 61 72 67 65 | 20 70 72 6f 6a 65 63 74 |or large| project|
|000018d0| 73 20 77 69 74 68 20 64 | 6f 7a 65 6e 73 20 6f 66 |s with d|ozens of|
|000018e0| 20 73 6f 75 72 63 65 20 | 66 69 6c 65 73 2c 0a 61 | source |files,.a|
|000018f0| 6e 64 20 63 6f 6d 70 6c | 65 78 20 69 6e 74 65 72 |nd compl|ex inter|
|00001900| 64 65 70 65 6e 64 65 6e | 63 69 65 73 20 62 65 74 |dependen|cies bet|
|00001910| 77 65 65 6e 20 74 68 65 | 20 73 6f 75 72 63 65 20 |ween the| source |
|00001920| 61 6e 64 20 69 6e 63 6c | 75 64 65 20 66 69 6c 65 |and incl|ude file|
|00001930| 73 2c 20 74 68 65 20 75 | 73 65 0a 6f 66 20 61 20 |s, the u|se.of a |
|00001940| 4d 61 6b 65 20 70 72 6f | 67 72 61 6d 20 77 69 74 |Make pro|gram wit|
|00001950| 68 20 61 20 70 72 6f 70 | 65 72 6c 79 20 77 72 69 |h a prop|erly wri|
|00001960| 74 74 65 6e 20 4d 61 6b | 65 66 69 6c 65 20 69 73 |tten Mak|efile is|
|00001970| 20 65 73 73 65 6e 74 69 | 61 6c 20 66 6f 72 0a 65 | essenti|al for.e|
|00001980| 6e 73 75 72 69 6e 67 20 | 74 68 61 74 20 74 68 65 |nsuring |that the|
|00001990| 20 65 78 65 63 75 74 61 | 62 6c 65 20 69 73 20 75 | executa|ble is u|
|000019a0| 70 2d 74 6f 2d 64 61 74 | 65 2e 20 20 44 75 72 69 |p-to-dat|e. Duri|
|000019b0| 6e 67 20 74 68 65 20 64 | 65 76 65 6c 6f 70 6d 65 |ng the d|evelopme|
|000019c0| 6e 74 20 63 79 63 6c 65 | 2c 0a 74 68 65 20 74 65 |nt cycle|,.the te|
|000019d0| 64 69 75 6d 20 6f 66 20 | 6d 61 6e 75 61 6c 6c 79 |dium of |manually|
|000019e0| 20 72 65 63 6f 6d 70 69 | 6c 69 6e 67 20 6e 65 77 | recompi|ling new|
|000019f0| 6c 79 20 6d 6f 64 69 66 | 69 65 64 20 73 6f 75 72 |ly modif|ied sour|
|00001a00| 63 65 20 66 69 6c 65 73 | 20 69 73 20 72 65 6d 6f |ce files| is remo|
|00001a10| 76 65 64 0a 66 72 6f 6d | 20 74 68 65 20 70 72 6f |ved.from| the pro|
|00001a20| 67 72 61 6d 6d 65 72 27 | 73 20 72 65 73 70 6f 6e |grammer'|s respon|
|00001a30| 73 69 62 6c 69 74 79 2e | 20 20 54 68 65 20 70 72 |siblity.| The pr|
|00001a40| 6f 63 65 64 75 72 65 20 | 69 73 20 61 75 74 6f 6d |ocedure |is autom|
|00001a50| 61 74 65 64 20 62 79 20 | 74 68 65 0a 4d 61 6b 65 |ated by |the.Make|
|00001a60| 20 70 72 6f 67 72 61 6d | 2c 20 73 6f 20 74 68 61 | program|, so tha|
|00001a70| 74 20 74 68 65 20 70 72 | 6f 67 72 61 6d 6d 65 72 |t the pr|ogrammer|
|00001a80| 20 64 6f 65 73 20 6e 6f | 74 20 6e 65 65 64 20 74 | does no|t need t|
|00001a90| 6f 20 77 6f 72 72 79 20 | 61 62 6f 75 74 20 77 68 |o worry |about wh|
|00001aa0| 69 63 68 0a 66 69 6c 65 | 73 20 6e 65 65 64 20 74 |ich.file|s need t|
|00001ab0| 6f 20 62 65 20 75 70 64 | 61 74 65 64 20 61 6e 64 |o be upd|ated and|
|00001ac0| 20 68 6f 77 20 74 6f 20 | 70 65 72 66 6f 72 6d 20 | how to |perform |
|00001ad0| 74 68 65 20 75 70 64 61 | 74 69 6e 67 2e 0a 0a 46 |the upda|ting...F|
|00001ae0| 6f 72 20 6d 6f 73 74 20 | 61 70 70 6c 69 63 61 74 |or most |applicat|
|00001af0| 69 6f 6e 73 20 61 20 4d | 61 6b 65 66 69 6c 65 20 |ions a M|akefile |
|00001b00| 69 73 20 65 61 73 79 20 | 74 6f 20 77 72 69 74 65 |is easy |to write|
|00001b10| 2e 20 20 41 20 66 65 77 | 20 6d 69 6e 75 74 65 73 |. A few| minutes|
|00001b20| 20 73 70 65 6e 74 0a 77 | 72 69 74 69 6e 67 20 61 | spent.w|riting a|
|00001b30| 20 4d 61 6b 65 66 69 6c | 65 20 63 61 6e 20 73 61 | Makefil|e can sa|
|00001b40| 76 65 20 74 68 65 20 70 | 72 6f 67 72 61 6d 6d 65 |ve the p|rogramme|
|00001b50| 72 20 61 20 67 72 65 61 | 74 20 64 65 61 6c 20 6f |r a grea|t deal o|
|00001b60| 66 20 74 69 6d 65 20 74 | 68 61 74 20 6d 61 79 0a |f time t|hat may.|
|00001b70| 68 61 76 65 20 62 65 65 | 6e 20 77 61 73 74 65 64 |have bee|n wasted|
|00001b80| 20 74 65 64 69 6f 75 73 | 6c 79 20 74 79 70 69 6e | tedious|ly typin|
|00001b90| 67 20 69 6e 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e |g in com|mand lin|
|00001ba0| 65 73 20 74 6f 20 72 65 | 63 6f 6d 70 69 6c 65 20 |es to re|compile |
|00001bb0| 61 20 70 72 6f 6a 65 63 | 74 2e 0a 54 68 65 20 4d |a projec|t..The M|
|00001bc0| 61 6b 65 20 70 72 6f 67 | 72 61 6d 20 77 61 73 20 |ake prog|ram was |
|00001bd0| 64 65 73 69 67 6e 65 64 | 20 74 6f 20 6d 61 6b 65 |designed| to make|
|00001be0| 20 74 68 65 20 72 65 62 | 75 69 6c 64 69 6e 67 20 | the reb|uilding |
|00001bf0| 70 72 6f 63 65 64 75 72 | 65 20 74 72 69 76 69 61 |procedur|e trivia|
|00001c00| 6c 20 61 6e 64 0a 72 65 | 6c 69 61 62 6c 65 2e 0a |l and.re|liable..|
|00001c10| 0a 5c 73 65 63 74 69 6f | 6e 7b 44 65 73 63 72 69 |.\sectio|n{Descri|
|00001c20| 70 74 69 6f 6e 7d 0a 0a | 41 20 74 79 70 69 63 61 |ption}..|A typica|
|00001c30| 6c 20 4d 61 6b 65 66 69 | 6c 65 20 69 73 20 63 6f |l Makefi|le is co|
|00001c40| 6d 70 6f 73 65 64 20 6f | 66 20 74 68 72 65 65 20 |mposed o|f three |
|00001c50| 62 61 73 69 63 20 63 6f | 6e 73 74 72 75 63 74 73 |basic co|nstructs|
|00001c60| 3a 20 20 63 6f 6d 6d 65 | 6e 74 73 2c 0a 76 61 72 |: comme|nts,.var|
|00001c70| 69 61 62 6c 65 20 64 65 | 66 69 6e 69 74 69 6f 6e |iable de|finition|
|00001c80| 73 20 61 6e 64 20 72 75 | 6c 65 73 2e 20 20 41 6e |s and ru|les. An|
|00001c90| 79 20 6c 69 6e 65 20 62 | 65 67 69 6e 6e 69 6e 67 |y line b|eginning|
|00001ca0| 20 77 69 74 68 20 61 20 | 7b 5c 74 74 20 5c 23 7d | with a |{\tt \#}|
|00001cb0| 0a 63 68 61 72 61 63 74 | 65 72 20 69 73 20 63 6f |.charact|er is co|
|00001cc0| 6e 73 69 64 65 72 65 64 | 20 74 6f 20 62 65 20 61 |nsidered| to be a|
|00001cd0| 20 63 6f 6d 6d 65 6e 74 | 20 6c 69 6e 65 2e 20 20 | comment| line. |
|00001ce0| 43 6f 6d 6d 65 6e 74 20 | 6c 69 6e 65 73 20 61 72 |Comment |lines ar|
|00001cf0| 65 20 69 67 6e 6f 72 65 | 64 20 62 79 0a 74 68 65 |e ignore|d by.the|
|00001d00| 20 4d 61 6b 65 20 70 72 | 6f 67 72 61 6d 2e 20 20 | Make pr|ogram. |
|00001d10| 56 61 72 69 61 62 6c 65 | 73 20 28 61 6c 73 6f 20 |Variable|s (also |
|00001d20| 6b 6e 6f 77 6e 20 61 73 | 20 6d 61 63 72 6f 73 29 |known as| macros)|
|00001d30| 20 61 6e 64 20 72 75 6c | 65 73 20 61 72 65 0a 63 | and rul|es are.c|
|00001d40| 6f 6d 70 6c 69 63 61 74 | 65 64 20 74 6f 70 69 63 |omplicat|ed topic|
|00001d50| 73 20 61 6e 64 20 74 68 | 65 79 20 77 69 6c 6c 20 |s and th|ey will |
|00001d60| 62 65 20 64 69 73 63 75 | 73 73 65 64 20 69 6e 20 |be discu|ssed in |
|00001d70| 73 65 70 61 72 61 74 65 | 20 73 65 63 74 69 6f 6e |separate| section|
|00001d80| 73 2e 0a 0a 54 68 65 20 | 4d 61 6b 65 66 69 6c 65 |s...The |Makefile|
|00001d90| 20 69 73 20 77 72 69 74 | 74 65 6e 20 74 6f 20 64 | is writ|ten to d|
|00001da0| 65 66 69 6e 65 20 74 68 | 65 20 72 75 6c 65 73 20 |efine th|e rules |
|00001db0| 66 6f 72 20 6d 61 6b 69 | 6e 67 20 61 20 67 6f 61 |for maki|ng a goa|
|00001dc0| 6c 20 75 70 2d 74 6f 2d | 64 61 74 65 2e 0a 41 20 |l up-to-|date..A |
|00001dd0| 67 6f 61 6c 20 66 69 6c | 65 20 69 73 20 75 70 2d |goal fil|e is up-|
|00001de0| 74 6f 2d 64 61 74 65 20 | 69 66 20 69 74 20 68 61 |to-date |if it ha|
|00001df0| 73 20 61 20 6d 6f 64 69 | 66 69 63 61 74 69 6f 6e |s a modi|fication|
|00001e00| 20 64 61 74 65 73 74 61 | 6d 70 20 74 68 61 74 20 | datesta|mp that |
|00001e10| 69 73 20 6d 6f 72 65 0a | 72 65 63 65 6e 74 20 74 |is more.|recent t|
|00001e20| 68 61 6e 20 61 6c 6c 20 | 6f 66 20 69 74 73 20 64 |han all |of its d|
|00001e30| 65 70 65 6e 64 65 6e 74 | 73 2c 20 61 66 74 65 72 |ependent|s, after|
|00001e40| 20 61 6c 6c 20 64 65 70 | 65 6e 64 65 6e 74 73 20 | all dep|endents |
|00001e50| 61 72 65 20 75 70 64 61 | 74 65 64 20 77 69 74 68 |are upda|ted with|
|00001e60| 0a 72 65 73 70 65 63 74 | 20 74 6f 20 74 68 65 69 |.respect| to thei|
|00001e70| 72 20 64 65 70 65 6e 64 | 65 6e 74 73 2e 20 20 54 |r depend|ents. T|
|00001e80| 68 69 73 20 63 72 69 74 | 65 72 69 6f 6e 20 69 73 |his crit|erion is|
|00001e90| 20 61 70 70 6c 69 65 64 | 20 72 65 63 75 72 73 69 | applied| recursi|
|00001ea0| 76 65 6c 79 2c 20 73 75 | 63 68 0a 74 68 61 74 20 |vely, su|ch.that |
|00001eb0| 74 68 65 20 6d 6f 73 74 | 20 64 65 65 70 6c 79 20 |the most| deeply |
|00001ec0| 6e 65 73 74 65 64 20 64 | 65 70 65 6e 64 65 6e 74 |nested d|ependent|
|00001ed0| 20 77 69 6c 6c 20 62 65 | 20 6d 61 64 65 20 62 65 | will be| made be|
|00001ee0| 66 6f 72 65 20 61 6e 79 | 20 74 61 72 67 65 74 20 |fore any| target |
|00001ef0| 66 69 6c 65 0a 74 68 61 | 74 20 64 65 70 65 6e 64 |file.tha|t depend|
|00001f00| 73 20 6f 6e 20 69 74 2e | 0a 0a 5c 73 65 63 74 69 |s on it.|..\secti|
|00001f10| 6f 6e 7b 52 75 6c 65 73 | 20 69 6e 20 61 20 4d 61 |on{Rules| in a Ma|
|00001f20| 6b 65 66 69 6c 65 7d 0a | 0a 53 65 76 65 72 61 6c |kefile}.|.Several|
|00001f30| 20 74 79 70 65 73 20 6f | 66 20 72 75 6c 65 73 20 | types o|f rules |
|00001f40| 61 72 65 20 72 65 63 6f | 67 6e 69 7a 65 64 20 62 |are reco|gnized b|
|00001f50| 79 20 74 68 65 20 4d 61 | 6b 65 20 70 72 6f 67 72 |y the Ma|ke progr|
|00001f60| 61 6d 3b 20 74 68 65 79 | 20 63 61 6e 20 62 65 0a |am; they| can be.|
|00001f70| 67 72 6f 75 70 65 64 20 | 69 6e 74 6f 20 74 77 6f |grouped |into two|
|00001f80| 20 63 61 74 65 67 6f 72 | 69 65 73 3a 20 20 65 78 | categor|ies: ex|
|00001f90| 70 6c 69 63 69 74 20 72 | 75 6c 65 73 20 61 6e 64 |plicit r|ules and|
|00001fa0| 20 69 6d 70 6c 69 63 69 | 74 20 72 75 6c 65 73 2e | implici|t rules.|
|00001fb0| 20 20 54 68 65 0a 65 78 | 70 6c 69 63 69 74 20 72 | The.ex|plicit r|
|00001fc0| 75 6c 65 73 20 61 72 65 | 20 6b 6e 6f 77 6e 20 61 |ules are| known a|
|00001fd0| 73 20 74 61 72 67 65 74 | 20 72 75 6c 65 73 2e 20 |s target| rules. |
|00001fe0| 20 54 68 65 20 69 6d 70 | 6c 69 63 69 74 20 72 75 | The imp|licit ru|
|00001ff0| 6c 65 73 20 65 78 69 73 | 74 20 61 73 0a 73 75 66 |les exis|t as.suf|
|00002000| 66 69 78 20 72 75 6c 65 | 73 20 61 6e 64 20 70 61 |fix rule|s and pa|
|00002010| 74 74 65 72 6e 20 72 75 | 6c 65 73 20 28 69 6e 74 |ttern ru|les (int|
|00002020| 65 72 6e 61 6c 6c 79 20 | 74 68 65 73 65 20 74 77 |ernally |these tw|
|00002030| 6f 20 74 79 70 65 73 20 | 6f 66 20 72 75 6c 65 73 |o types |of rules|
|00002040| 20 61 72 65 0a 72 65 70 | 72 65 73 65 6e 74 65 64 | are.rep|resented|
|00002050| 20 69 6e 20 74 68 65 20 | 73 61 6d 65 20 77 61 79 | in the |same way|
|00002060| 29 2e 0a 0a 5c 73 75 62 | 73 65 63 74 69 6f 6e 7b |)...\sub|section{|
|00002070| 45 78 70 6c 69 63 69 74 | 20 52 75 6c 65 73 7d 0a |Explicit| Rules}.|
|00002080| 0a 54 61 72 67 65 74 20 | 72 75 6c 65 73 20 61 72 |.Target |rules ar|
|00002090| 65 20 64 65 66 69 6e 65 | 64 20 62 79 20 61 20 6c |e define|d by a l|
|000020a0| 69 6e 65 20 74 68 61 74 | 20 62 65 67 69 6e 73 20 |ine that| begins |
|000020b0| 77 69 74 68 20 6f 6e 65 | 20 6f 72 20 6d 6f 72 65 |with one| or more|
|000020c0| 20 74 61 72 67 65 74 0a | 6e 61 6d 65 73 2c 20 66 | target.|names, f|
|000020d0| 6f 6c 6c 6f 77 65 64 20 | 62 79 20 61 20 63 6f 6c |ollowed |by a col|
|000020e0| 6f 6e 2c 20 61 6e 20 6f | 70 74 69 6f 6e 61 6c 20 |on, an o|ptional |
|000020f0| 6c 69 73 74 20 6f 66 20 | 64 65 70 65 6e 64 65 6e |list of |dependen|
|00002100| 74 20 66 69 6c 65 6e 61 | 6d 65 73 2c 20 61 6e 0a |t filena|mes, an.|
|00002110| 6f 70 74 69 6f 6e 61 6c | 20 73 65 6d 69 63 6f 6c |optional| semicol|
|00002120| 6f 6e 20 61 6e 64 20 61 | 6e 20 6f 70 74 69 6f 6e |on and a|n option|
|00002130| 61 6c 20 63 6f 6d 6d 61 | 6e 64 2e 20 20 53 75 62 |al comma|nd. Sub|
|00002140| 73 65 71 75 65 6e 74 20 | 6c 69 6e 65 73 20 74 68 |sequent |lines th|
|00002150| 61 74 20 62 65 67 69 6e | 0a 77 69 74 68 20 61 20 |at begin|.with a |
|00002160| 74 61 62 20 63 68 61 72 | 61 63 74 65 72 20 61 72 |tab char|acter ar|
|00002170| 65 20 63 6f 6d 6d 61 6e | 64 20 6c 69 6e 65 73 20 |e comman|d lines |
|00002180| 61 73 73 6f 63 69 61 74 | 65 64 20 77 69 74 68 20 |associat|ed with |
|00002190| 74 68 65 20 72 75 6c 65 | 2e 20 20 54 68 65 20 6e |the rule|. The n|
|000021a0| 65 78 74 0a 6c 69 6e 65 | 20 74 68 61 74 20 64 6f |ext.line| that do|
|000021b0| 65 73 20 6e 6f 74 20 62 | 65 67 69 6e 20 77 69 74 |es not b|egin wit|
|000021c0| 68 20 61 20 74 61 62 20 | 63 68 61 72 61 63 74 65 |h a tab |characte|
|000021d0| 72 20 69 6e 64 69 63 61 | 74 65 73 20 74 68 65 20 |r indica|tes the |
|000021e0| 65 6e 64 20 6f 66 20 74 | 68 65 0a 63 75 72 72 65 |end of t|he.curre|
|000021f0| 6e 74 20 72 75 6c 65 20 | 61 6e 64 20 74 68 65 20 |nt rule |and the |
|00002200| 62 65 67 69 6e 6e 69 6e | 67 20 6f 66 20 61 20 6e |beginnin|g of a n|
|00002210| 65 77 20 72 75 6c 65 2e | 0a 0a 5c 62 65 67 69 6e |ew rule.|..\begin|
|00002220| 7b 76 65 72 62 61 74 69 | 6d 7d 0a 67 6f 61 6c 3a |{verbati|m}.goal:|
|00002230| 20 74 61 72 67 65 74 2e | 6f 20 3b 20 63 6f 6d 6d | target.|o ; comm|
|00002240| 61 6e 64 20 74 68 72 65 | 65 0a 0a 74 61 72 67 65 |and thre|e..targe|
|00002250| 74 2e 6f 3a 20 73 6f 75 | 72 63 65 2e 63 20 68 65 |t.o: sou|rce.c he|
|00002260| 61 64 65 72 2e 68 0a 20 | 20 20 20 63 6f 6d 6d 61 |ader.h. | comma|
|00002270| 6e 64 20 6f 6e 65 0a 20 | 20 20 20 63 6f 6d 6d 61 |nd one. | comma|
|00002280| 6e 64 20 74 77 6f 0a 5c | 65 6e 64 7b 76 65 72 62 |nd two.\|end{verb|
|00002290| 61 74 69 6d 7d 0a 0a 49 | 6e 20 74 68 65 20 61 62 |atim}..I|n the ab|
|000022a0| 6f 76 65 20 65 78 61 6d | 70 6c 65 2c 20 74 68 65 |ove exam|ple, the|
|000022b0| 20 4d 61 6b 65 20 70 72 | 6f 67 72 61 6d 20 77 69 | Make pr|ogram wi|
|000022c0| 6c 6c 20 72 65 61 64 20 | 74 68 65 20 4d 61 6b 65 |ll read |the Make|
|000022d0| 66 69 6c 65 20 61 6e 64 | 20 66 69 6e 64 20 74 68 |file and| find th|
|000022e0| 65 0a 66 69 72 73 74 20 | 74 61 72 67 65 74 20 66 |e.first |target f|
|000022f0| 69 6c 65 6e 61 6d 65 20 | 74 6f 20 62 65 20 7b 5c |ilename |to be {\|
|00002300| 74 74 20 67 6f 61 6c 7d | 2e 20 20 49 74 20 77 69 |tt goal}|. It wi|
|00002310| 6c 6c 20 74 68 65 6e 20 | 61 74 74 65 6d 70 74 20 |ll then |attempt |
|00002320| 74 6f 20 6d 61 6b 65 20 | 7b 5c 74 74 0a 67 6f 61 |to make |{\tt.goa|
|00002330| 6c 7d 20 75 70 2d 74 6f | 2d 64 61 74 65 20 62 79 |l} up-to|-date by|
|00002340| 20 66 69 72 73 74 20 6d | 61 6b 69 6e 67 20 69 74 | first m|aking it|
|00002350| 73 20 64 65 70 65 6e 64 | 65 6e 74 73 20 28 6e 61 |s depend|ents (na|
|00002360| 6d 65 6c 79 2c 20 7b 5c | 74 74 20 74 61 72 67 65 |mely, {\|tt targe|
|00002370| 74 2e 6f 7d 29 0a 75 70 | 2d 74 6f 2d 64 61 74 65 |t.o}).up|-to-date|
|00002380| 2e 20 20 49 6e 20 6f 72 | 64 65 72 20 74 6f 20 6d |. In or|der to m|
|00002390| 61 6b 65 20 7b 5c 74 74 | 20 74 61 72 67 65 74 2e |ake {\tt| target.|
|000023a0| 6f 7d 20 75 70 2d 74 6f | 2d 64 61 74 65 2c 20 4d |o} up-to|-date, M|
|000023b0| 61 6b 65 20 72 65 71 75 | 69 72 65 73 20 61 0a 72 |ake requ|ires a.r|
|000023c0| 75 6c 65 20 74 68 61 74 | 20 63 6f 6e 74 61 69 6e |ule that| contain|
|000023d0| 73 20 7b 5c 74 74 20 74 | 61 72 67 65 74 2e 6f 7d |s {\tt t|arget.o}|
|000023e0| 20 61 73 20 61 20 74 61 | 72 67 65 74 20 66 69 6c | as a ta|rget fil|
|000023f0| 65 6e 61 6d 65 2e 20 20 | 53 75 63 68 20 61 20 72 |ename. |Such a r|
|00002400| 75 6c 65 20 65 78 69 73 | 74 73 0a 69 6e 20 74 68 |ule exis|ts.in th|
|00002410| 65 20 65 78 61 6d 70 6c | 65 20 4d 61 6b 65 66 69 |e exampl|e Makefi|
|00002420| 6c 65 20 77 69 74 68 20 | 64 65 70 65 6e 64 65 6e |le with |dependen|
|00002430| 74 73 20 7b 5c 74 74 20 | 73 6f 75 72 63 65 2e 63 |ts {\tt |source.c|
|00002440| 7d 20 61 6e 64 20 7b 5c | 74 74 20 68 65 61 64 65 |} and {\|tt heade|
|00002450| 72 2e 68 7d 2c 0a 77 68 | 69 63 68 20 6d 75 73 74 |r.h},.wh|ich must|
|00002460| 20 69 6e 20 74 75 72 6e | 20 62 65 20 6d 61 64 65 | in turn| be made|
|00002470| 20 62 65 66 6f 72 65 20 | 7b 5c 74 74 20 74 61 72 | before |{\tt tar|
|00002480| 67 65 74 2e 6f 7d 20 63 | 61 6e 20 62 65 20 6d 61 |get.o} c|an be ma|
|00002490| 64 65 20 75 70 2d 74 6f | 2d 64 61 74 65 2e 0a 53 |de up-to|-date..S|
|000024a0| 69 6e 63 65 20 7b 5c 74 | 74 20 73 6f 75 72 63 65 |ince {\t|t source|
|000024b0| 2e 63 7d 20 61 6e 64 20 | 7b 5c 74 74 20 68 65 61 |.c} and |{\tt hea|
|000024c0| 64 65 72 2e 68 7d 20 61 | 72 65 20 6e 6f 74 20 64 |der.h} a|re not d|
|000024d0| 65 66 69 6e 65 64 20 61 | 73 20 74 61 72 67 65 74 |efined a|s target|
|000024e0| 73 20 69 6e 20 74 68 65 | 0a 4d 61 6b 65 66 69 6c |s in the|.Makefil|
|000024f0| 65 2c 20 74 68 65 20 4d | 61 6b 65 20 70 72 6f 67 |e, the M|ake prog|
|00002500| 72 61 6d 20 6d 75 73 74 | 20 75 73 65 20 62 75 69 |ram must| use bui|
|00002510| 6c 74 69 6e 20 72 75 6c | 65 73 20 6f 66 20 69 6e |ltin rul|es of in|
|00002520| 66 65 72 65 6e 63 65 20 | 74 6f 20 6d 61 6b 65 0a |ference |to make.|
|00002530| 74 68 6f 73 65 20 66 69 | 6c 65 73 20 75 70 2d 74 |those fi|les up-t|
|00002540| 6f 2d 64 61 74 65 2c 20 | 6f 72 20 69 74 20 6d 75 |o-date, |or it mu|
|00002550| 73 74 20 67 69 76 65 20 | 75 70 20 61 6e 64 20 72 |st give |up and r|
|00002560| 65 70 6f 72 74 20 74 68 | 61 74 20 69 73 20 64 6f |eport th|at is do|
|00002570| 65 73 6e 27 74 20 6b 6e | 6f 77 0a 68 6f 77 20 74 |esn't kn|ow.how t|
|00002580| 6f 20 6d 61 6b 65 20 74 | 68 65 20 74 61 72 67 65 |o make t|he targe|
|00002590| 74 2e 20 20 41 73 20 69 | 74 20 74 75 72 6e 73 20 |t. As i|t turns |
|000025a0| 6f 75 74 2c 20 74 68 65 | 20 73 6f 75 72 63 65 20 |out, the| source |
|000025b0| 61 6e 64 20 68 65 61 64 | 65 72 20 66 69 6c 65 73 |and head|er files|
|000025c0| 20 61 72 65 0a 6b 6e 6f | 77 6e 20 62 79 20 62 75 | are.kno|wn by bu|
|000025d0| 69 6c 74 69 6e 20 72 75 | 6c 65 73 20 6f 66 20 69 |iltin ru|les of i|
|000025e0| 6e 66 65 72 65 6e 63 65 | 20 74 6f 20 72 65 71 75 |nference| to requ|
|000025f0| 69 72 65 20 6e 6f 20 66 | 75 72 74 68 65 72 20 61 |ire no f|urther a|
|00002600| 63 74 69 6f 6e 20 74 6f | 20 62 65 20 6d 61 64 65 |ction to| be made|
|00002610| 0a 75 70 2d 74 6f 2d 64 | 61 74 65 2c 20 73 6f 20 |.up-to-d|ate, so |
|00002620| 74 68 65 20 4d 61 6b 65 | 20 70 72 6f 67 72 61 6d |the Make| program|
|00002630| 20 63 61 6e 20 63 6f 6e | 74 69 6e 75 65 20 74 6f | can con|tinue to|
|00002640| 20 6d 61 6b 65 20 7b 5c | 74 74 20 74 61 72 67 65 | make {\|tt targe|
|00002650| 74 2e 6f 7d 20 6e 6f 77 | 0a 74 68 61 74 20 69 74 |t.o} now|.that it|
|00002660| 73 20 64 65 70 65 6e 64 | 65 6e 63 69 65 73 20 68 |s depend|encies h|
|00002670| 61 76 65 20 66 75 6c 66 | 69 6c 6c 65 64 20 74 68 |ave fulf|illed th|
|00002680| 65 69 72 20 72 65 71 75 | 69 72 65 6d 65 6e 74 73 |eir requ|irements|
|00002690| 2e 20 20 49 6e 20 6f 72 | 64 65 72 20 74 6f 20 6d |. In or|der to m|
|000026a0| 61 6b 65 0a 7b 5c 74 74 | 20 74 61 72 67 65 74 2e |ake.{\tt| target.|
|000026b0| 6f 7d 20 75 70 2d 74 6f | 2d 64 61 74 65 2c 20 7b |o} up-to|-date, {|
|000026c0| 5c 74 74 20 63 6f 6d 6d | 61 6e 64 20 6f 6e 65 7d |\tt comm|and one}|
|000026d0| 20 6d 75 73 74 20 62 65 | 20 65 78 65 63 75 74 65 | must be| execute|
|000026e0| 64 20 73 75 63 63 65 73 | 73 66 75 6c 6c 79 2c 0a |d succes|sfully,.|
|000026f0| 61 6e 64 20 74 68 65 6e | 20 7b 5c 74 74 20 63 6f |and then| {\tt co|
|00002700| 6d 6d 61 6e 64 20 74 77 | 6f 7d 20 6d 75 73 74 20 |mmand tw|o} must |
|00002710| 62 65 20 65 78 65 63 75 | 74 65 64 20 73 75 63 63 |be execu|ted succ|
|00002720| 65 73 73 66 75 6c 6c 79 | 20 61 66 74 65 72 20 74 |essfully| after t|
|00002730| 68 61 74 2e 0a 46 69 6e | 61 6c 6c 79 2c 20 74 68 |hat..Fin|ally, th|
|00002740| 65 20 67 6f 61 6c 20 63 | 61 6e 20 62 65 20 6d 61 |e goal c|an be ma|
|00002750| 64 65 20 62 79 20 65 78 | 65 63 75 74 69 6e 67 20 |de by ex|ecuting |
|00002760| 74 68 65 20 63 6f 6d 6d | 61 6e 64 20 6c 69 6e 65 |the comm|and line|
|00002770| 2c 20 7b 5c 74 74 20 63 | 6f 6d 6d 61 6e 64 0a 74 |, {\tt c|ommand.t|
|00002780| 68 72 65 65 7d 2c 20 61 | 6e 64 20 74 68 65 20 4d |hree}, a|nd the M|
|00002790| 61 6b 65 20 70 72 6f 67 | 72 61 6d 20 77 69 6c 6c |ake prog|ram will|
|000027a0| 20 74 65 72 6d 69 6e 61 | 74 65 2e 0a 0a 49 66 20 | termina|te...If |
|000027b0| 74 68 65 72 65 20 61 72 | 65 20 6e 6f 20 64 65 70 |there ar|e no dep|
|000027c0| 65 6e 64 65 6e 63 69 65 | 73 20 66 6f 72 20 61 20 |endencie|s for a |
|000027d0| 74 61 72 67 65 74 2c 20 | 61 6e 64 20 61 20 74 61 |target, |and a ta|
|000027e0| 72 67 65 74 20 6e 65 65 | 64 73 20 74 6f 20 62 65 |rget nee|ds to be|
|000027f0| 20 72 65 6d 61 64 65 0a | 62 79 20 74 68 65 20 4d | remade.|by the M|
|00002800| 61 6b 65 20 70 72 6f 67 | 72 61 6d 2c 20 74 68 65 |ake prog|ram, the|
|00002810| 6e 20 74 68 65 20 74 61 | 72 67 65 74 20 69 73 20 |n the ta|rget is |
|00002820| 61 6c 77 61 79 73 20 72 | 65 6d 61 64 65 2e 20 20 |always r|emade. |
|00002830| 41 20 74 61 72 67 65 74 | 20 77 69 74 68 20 6e 6f |A target| with no|
|00002840| 0a 64 65 70 65 6e 64 65 | 6e 63 69 65 73 20 77 69 |.depende|ncies wi|
|00002850| 6c 6c 20 61 6c 77 61 79 | 73 20 68 61 76 65 20 69 |ll alway|s have i|
|00002860| 74 73 20 63 6f 6d 6d 61 | 6e 64 73 20 65 78 65 63 |ts comma|nds exec|
|00002870| 75 74 65 64 20 77 68 65 | 6e 20 74 68 61 74 20 74 |uted whe|n that t|
|00002880| 61 72 67 65 74 20 6e 65 | 65 64 73 0a 74 6f 20 62 |arget ne|eds.to b|
|00002890| 65 20 72 65 6d 61 64 65 | 2e 0a 0a 5c 73 75 62 73 |e remade|...\subs|
|000028a0| 75 62 73 65 63 74 69 6f | 6e 7b 44 65 70 65 6e 64 |ubsectio|n{Depend|
|000028b0| 65 6e 63 69 65 73 7d 0a | 0a 54 68 65 20 64 65 70 |encies}.|.The dep|
|000028c0| 65 6e 64 65 6e 63 69 65 | 73 20 6f 66 20 61 20 74 |endencie|s of a t|
|000028d0| 61 72 67 65 74 20 61 72 | 65 20 74 68 65 20 6f 62 |arget ar|e the ob|
|000028e0| 6a 65 63 74 73 20 77 68 | 69 63 68 20 61 20 70 61 |jects wh|ich a pa|
|000028f0| 72 74 69 63 75 6c 61 72 | 20 74 61 72 67 65 74 0a |rticular| target.|
|00002900| 64 65 70 65 6e 64 73 20 | 75 70 6f 6e 2e 20 20 49 |depends |upon. I|
|00002910| 66 20 61 20 74 61 72 67 | 65 74 20 64 65 70 65 6e |f a targ|et depen|
|00002920| 64 73 20 75 70 6f 6e 20 | 61 6e 20 6f 62 6a 65 63 |ds upon |an objec|
|00002930| 74 2c 20 74 68 65 6e 20 | 74 68 65 20 64 65 70 65 |t, then |the depe|
|00002940| 6e 64 65 6e 74 0a 6f 62 | 6a 65 63 74 20 6d 75 73 |ndent.ob|ject mus|
|00002950| 74 20 62 65 20 75 70 64 | 61 74 65 64 20 62 65 66 |t be upd|ated bef|
|00002960| 6f 72 65 20 74 68 65 20 | 74 61 72 67 65 74 20 6d |ore the |target m|
|00002970| 61 79 20 62 65 20 75 70 | 64 61 74 65 64 2e 20 20 |ay be up|dated. |
|00002980| 41 20 74 61 72 67 65 74 | 20 69 73 20 6e 6f 74 0a |A target| is not.|
|00002990| 75 70 2d 74 6f 2d 64 61 | 74 65 20 69 66 20 69 74 |up-to-da|te if it|
|000029a0| 73 20 64 65 70 65 6e 64 | 65 6e 63 69 65 73 20 61 |s depend|encies a|
|000029b0| 72 65 20 6e 6f 74 20 61 | 6c 6c 20 75 70 2d 74 6f |re not a|ll up-to|
|000029c0| 2d 64 61 74 65 2e 0a 0a | 41 64 64 69 74 69 6f 6e |-date...|Addition|
|000029d0| 61 6c 20 64 65 70 65 6e | 64 65 6e 63 69 65 73 20 |al depen|dencies |
|000029e0| 63 61 6e 20 62 65 20 61 | 64 64 65 64 20 74 6f 20 |can be a|dded to |
|000029f0| 61 20 74 61 72 67 65 74 | 20 64 65 66 69 6e 65 64 |a target| defined|
|00002a00| 20 69 6e 20 61 6e 6f 74 | 68 65 72 20 72 75 6c 65 | in anot|her rule|
|00002a10| 20 62 79 0a 77 72 69 74 | 69 6e 67 20 61 20 6e 65 | by.writ|ing a ne|
|00002a20| 77 20 72 75 6c 65 20 77 | 68 69 63 68 20 64 65 63 |w rule w|hich dec|
|00002a30| 6c 61 72 65 73 20 74 68 | 65 20 61 64 64 69 74 69 |lares th|e additi|
|00002a40| 6f 6e 61 6c 20 64 65 70 | 65 6e 64 65 6e 63 69 65 |onal dep|endencie|
|00002a50| 73 2e 20 20 4f 6e 6c 79 | 20 6f 6e 65 20 6f 66 0a |s. Only| one of.|
|00002a60| 74 68 65 20 72 75 6c 65 | 73 20 6d 61 79 20 63 6f |the rule|s may co|
|00002a70| 6e 74 61 69 6e 20 63 6f | 6d 6d 61 6e 64 20 6c 69 |ntain co|mmand li|
|00002a80| 6e 65 73 2c 20 6f 74 68 | 65 72 77 69 73 65 20 69 |nes, oth|erwise i|
|00002a90| 74 20 69 73 20 61 6e 20 | 65 72 72 6f 72 2e 20 20 |t is an |error. |
|00002aa0| 41 6e 20 65 78 61 6d 70 | 6c 65 0a 77 68 65 72 65 |An examp|le.where|
|00002ab0| 20 74 68 69 73 20 6d 69 | 67 68 74 20 62 65 20 64 | this mi|ght be d|
|00002ac0| 6f 6e 65 20 69 73 20 67 | 69 76 65 6e 20 62 65 6c |one is g|iven bel|
|00002ad0| 6f 77 3a 0a 0a 5c 62 65 | 67 69 6e 7b 76 65 72 62 |ow:..\be|gin{verb|
|00002ae0| 61 74 69 6d 7d 0a 74 61 | 72 67 65 74 31 2e 6f 20 |atim}.ta|rget1.o |
|00002af0| 74 61 72 67 65 74 32 2e | 6f 20 3a 20 67 6c 6f 62 |target2.|o : glob|
|00002b00| 61 6c 2e 68 0a 74 61 72 | 67 65 74 31 2e 6f 20 3a |al.h.tar|get1.o :|
|00002b10| 20 6f 6e 65 2e 68 0a 74 | 61 72 67 65 74 32 2e 6f | one.h.t|arget2.o|
|00002b20| 20 3a 20 74 77 6f 2e 68 | 0a 5c 65 6e 64 7b 76 65 | : two.h|.\end{ve|
|00002b30| 72 62 61 74 69 6d 7d 0a | 0a 5c 73 75 62 73 75 62 |rbatim}.|.\subsub|
|00002b40| 73 65 63 74 69 6f 6e 7b | 2e 41 4c 57 41 59 53 7d |section{|.ALWAYS}|
|00002b50| 0a 0a 49 66 20 61 20 74 | 61 72 67 65 74 20 68 61 |..If a t|arget ha|
|00002b60| 73 20 7b 5c 74 74 20 2e | 41 4c 57 41 59 53 7d 20 |s {\tt .|ALWAYS} |
|00002b70| 61 73 20 61 20 64 65 70 | 65 6e 64 65 6e 63 79 20 |as a dep|endency |
|00002b80| 74 68 65 6e 20 74 68 61 | 74 20 74 61 72 67 65 74 |then tha|t target|
|00002b90| 20 77 69 6c 6c 20 61 6c | 77 61 79 73 0a 68 61 76 | will al|ways.hav|
|00002ba0| 65 20 69 74 73 20 64 65 | 70 65 6e 64 65 6e 63 69 |e its de|pendenci|
|00002bb0| 65 73 20 72 65 6d 61 64 | 65 20 61 6e 64 20 69 74 |es remad|e and it|
|00002bc0| 73 20 63 6f 6d 6d 61 6e | 64 73 20 65 78 65 63 75 |s comman|ds execu|
|00002bd0| 74 65 64 2e 0a 0a 5c 73 | 75 62 73 75 62 73 65 63 |ted...\s|ubsubsec|
|00002be0| 74 69 6f 6e 7b 2e 4e 45 | 56 45 52 7d 0a 0a 49 66 |tion{.NE|VER}..If|
|00002bf0| 20 61 20 74 61 72 67 65 | 74 20 68 61 73 20 7b 5c | a targe|t has {\|
|00002c00| 74 74 20 2e 4e 45 56 45 | 52 7d 20 61 73 20 61 20 |tt .NEVE|R} as a |
|00002c10| 64 65 70 65 6e 64 65 6e | 63 79 20 74 68 65 6e 20 |dependen|cy then |
|00002c20| 74 68 61 74 20 74 61 72 | 67 65 74 20 77 69 6c 6c |that tar|get will|
|00002c30| 20 6e 65 76 65 72 0a 68 | 61 76 65 20 69 74 73 20 | never.h|ave its |
|00002c40| 64 65 70 65 6e 64 65 6e | 63 69 65 73 20 72 65 6d |dependen|cies rem|
|00002c50| 61 64 65 20 6f 72 20 69 | 74 73 20 63 6f 6d 6d 61 |ade or i|ts comma|
|00002c60| 6e 64 73 20 65 78 65 63 | 75 74 65 64 2e 0a 0a 5c |nds exec|uted...\|
|00002c70| 73 75 62 73 75 62 73 65 | 63 74 69 6f 6e 7b 2e 4f |subsubse|ction{.O|
|00002c80| 4e 43 45 7d 0a 0a 49 66 | 20 61 20 74 61 72 67 65 |NCE}..If| a targe|
|00002c90| 74 20 68 61 73 20 7b 5c | 74 74 20 2e 4f 4e 43 45 |t has {\|tt .ONCE|
|00002ca0| 7d 20 61 73 20 61 20 64 | 65 70 65 6e 64 65 6e 63 |} as a d|ependenc|
|00002cb0| 79 20 74 68 65 6e 20 74 | 68 61 74 20 74 61 72 67 |y then t|hat targ|
|00002cc0| 65 74 20 77 69 6c 6c 20 | 62 65 0a 6d 61 64 65 20 |et will |be.made |
|00002cd0| 6f 6e 6c 79 20 6f 6e 63 | 65 2e 20 20 57 68 65 6e |only onc|e. When|
|00002ce0| 20 74 68 65 20 74 61 72 | 67 65 74 20 69 73 20 65 | the tar|get is e|
|00002cf0| 6e 63 6f 75 6e 74 65 72 | 65 64 20 61 67 61 69 6e |ncounter|ed again|
|00002d00| 2c 20 69 74 20 77 69 6c | 6c 20 62 65 20 73 6b 69 |, it wil|l be ski|
|00002d10| 70 70 65 64 2e 0a 0a 5c | 73 75 62 73 75 62 73 65 |pped...\|subsubse|
|00002d20| 63 74 69 6f 6e 7b 2e 49 | 4e 56 49 53 49 42 4c 45 |ction{.I|NVISIBLE|
|00002d30| 7d 0a 0a 49 66 20 61 20 | 74 61 72 67 65 74 20 68 |}..If a |target h|
|00002d40| 61 73 20 7b 5c 74 74 20 | 2e 49 4e 56 49 53 49 42 |as {\tt |.INVISIB|
|00002d50| 4c 45 7d 20 61 73 20 61 | 20 64 65 70 65 6e 64 65 |LE} as a| depende|
|00002d60| 6e 63 79 20 74 68 65 6e | 20 74 68 61 74 20 74 61 |ncy then| that ta|
|00002d70| 72 67 65 74 20 77 69 6c | 6c 20 62 65 0a 69 6e 76 |rget wil|l be.inv|
|00002d80| 69 73 69 62 6c 65 20 74 | 6f 20 61 6c 6c 20 6f 74 |isible t|o all ot|
|00002d90| 68 65 72 20 74 61 72 67 | 65 74 73 2e 20 20 54 68 |her targ|ets. Th|
|00002da0| 61 74 20 69 73 2c 20 74 | 68 65 20 69 6e 76 69 73 |at is, t|he invis|
|00002db0| 69 62 6c 65 20 74 61 72 | 67 65 74 20 6d 61 79 20 |ible tar|get may |
|00002dc0| 62 65 20 6d 61 64 65 2c | 0a 62 75 74 20 74 68 65 |be made,|.but the|
|00002dd0| 20 74 61 72 67 65 74 20 | 74 68 61 74 20 64 65 70 | target |that dep|
|00002de0| 65 6e 64 65 64 20 75 70 | 6f 6e 20 74 68 65 20 69 |ended up|on the i|
|00002df0| 6e 76 69 73 69 62 6c 65 | 20 74 61 72 67 65 74 20 |nvisible| target |
|00002e00| 77 69 6c 6c 20 6e 6f 74 | 20 62 65 20 61 77 61 72 |will not| be awar|
|00002e10| 65 20 6f 66 0a 74 68 65 | 20 66 61 63 74 2e 0a 0a |e of.the| fact...|
|00002e20| 5c 73 75 62 73 65 63 74 | 69 6f 6e 7b 49 6d 70 6c |\subsect|ion{Impl|
|00002e30| 69 63 69 74 20 52 75 6c | 65 73 7d 0a 0a 5c 73 75 |icit Rul|es}..\su|
|00002e40| 62 73 75 62 73 65 63 74 | 69 6f 6e 7b 50 61 74 74 |bsubsect|ion{Patt|
|00002e50| 65 72 6e 20 52 75 6c 65 | 73 7d 0a 0a 57 68 65 6e |ern Rule|s}..When|
|00002e60| 20 6e 6f 20 65 78 70 6c | 69 63 69 74 20 72 75 6c | no expl|icit rul|
|00002e70| 65 20 69 73 20 64 65 66 | 69 6e 65 64 20 66 6f 72 |e is def|ined for|
|00002e80| 20 61 20 74 61 72 67 65 | 74 2c 20 74 68 65 20 4d | a targe|t, the M|
|00002e90| 61 6b 65 20 70 72 6f 67 | 72 61 6d 20 6d 75 73 74 |ake prog|ram must|
|00002ea0| 20 75 73 65 0a 6f 74 68 | 65 72 20 6d 65 61 6e 73 | use.oth|er means|
|00002eb0| 20 74 6f 20 64 65 74 65 | 72 6d 69 6e 65 20 68 6f | to dete|rmine ho|
|00002ec0| 77 20 74 6f 20 6d 61 6b | 65 20 74 68 65 20 74 61 |w to mak|e the ta|
|00002ed0| 72 67 65 74 20 75 70 2d | 74 6f 2d 64 61 74 65 2e |rget up-|to-date.|
|00002ee0| 20 20 52 75 6c 65 73 20 | 6f 66 0a 69 6e 66 65 72 | Rules |of.infer|
|00002ef0| 65 6e 63 65 20 61 72 65 | 20 64 65 66 69 6e 65 64 |ence are| defined|
|00002f00| 20 62 79 20 70 61 74 74 | 65 72 6e 20 72 75 6c 65 | by patt|ern rule|
|00002f10| 73 2e 20 20 41 6e 20 65 | 78 61 6d 70 6c 65 20 6f |s. An e|xample o|
|00002f20| 66 20 61 20 64 6f 75 62 | 6c 65 20 70 61 74 74 65 |f a doub|le patte|
|00002f30| 72 6e 0a 72 75 6c 65 20 | 69 73 3a 0a 0a 5c 62 65 |rn.rule |is:..\be|
|00002f40| 67 69 6e 7b 76 65 72 62 | 61 74 69 6d 7d 0a 25 2e |gin{verb|atim}.%.|
|00002f50| 6f 3a 20 25 2e 63 0a 20 | 20 20 20 24 28 43 43 29 |o: %.c. | $(CC)|
|00002f60| 20 2d 63 20 24 28 43 46 | 4c 41 47 53 29 20 2d 6f | -c $(CF|LAGS) -o|
|00002f70| 20 24 40 20 24 3c 0a 5c | 65 6e 64 7b 76 65 72 62 | $@ $<.\|end{verb|
|00002f80| 61 74 69 6d 7d 0a 0a 54 | 68 65 20 61 62 6f 76 65 |atim}..T|he above|
|00002f90| 20 73 75 66 66 69 78 20 | 72 75 6c 65 20 64 65 66 | suffix |rule def|
|00002fa0| 69 6e 65 73 20 68 6f 77 | 20 74 6f 20 6d 61 6b 65 |ines how| to make|
|00002fb0| 20 61 6e 79 20 74 61 72 | 67 65 74 20 77 69 74 68 | any tar|get with|
|00002fc0| 20 61 20 66 69 6c 65 6e | 61 6d 65 20 65 6e 64 69 | a filen|ame endi|
|00002fd0| 6e 67 0a 69 6e 20 7b 5c | 74 74 20 2e 6f 7d 20 69 |ng.in {\|tt .o} i|
|00002fe0| 66 20 74 68 65 72 65 20 | 69 73 20 61 20 63 6f 72 |f there |is a cor|
|00002ff0| 72 65 73 70 6f 6e 64 69 | 6e 67 20 64 65 70 65 6e |respondi|ng depen|
|00003000| 64 65 6e 74 20 66 69 6c | 65 6e 61 6d 65 20 74 68 |dent fil|ename th|
|00003010| 61 74 20 65 6e 64 73 20 | 69 6e 0a 7b 5c 74 74 20 |at ends |in.{\tt |
|00003020| 2e 63 7d 2e 20 20 54 68 | 65 20 63 6f 6d 6d 61 6e |.c}. Th|e comman|
|00003030| 64 73 20 61 73 73 6f 63 | 69 61 74 65 64 20 77 69 |ds assoc|iated wi|
|00003040| 74 68 20 61 20 70 61 74 | 74 65 72 6e 20 72 75 6c |th a pat|tern rul|
|00003050| 65 20 61 72 65 20 65 78 | 65 63 75 74 65 64 20 69 |e are ex|ecuted i|
|00003060| 66 20 74 68 65 0a 64 65 | 70 65 6e 64 65 6e 74 20 |f the.de|pendent |
|00003070| 66 69 6c 65 20 69 73 20 | 6e 65 77 65 72 20 74 68 |file is |newer th|
|00003080| 61 6e 20 74 68 65 20 74 | 61 72 67 65 74 20 66 69 |an the t|arget fi|
|00003090| 6c 65 2c 20 77 68 69 63 | 68 20 6d 61 74 63 68 65 |le, whic|h matche|
|000030a0| 73 20 74 68 65 20 70 61 | 74 74 65 72 6e 2e 0a 54 |s the pa|ttern..T|
|000030b0| 68 65 20 7b 5c 74 74 20 | 5c 25 7d 20 63 68 61 72 |he {\tt |\%} char|
|000030c0| 61 63 74 65 72 20 6d 61 | 74 63 68 65 73 20 61 6e |acter ma|tches an|
|000030d0| 79 20 6e 75 6d 62 65 72 | 20 6f 66 20 63 68 61 72 |y number| of char|
|000030e0| 61 63 74 65 72 73 20 69 | 6e 20 74 68 65 20 74 61 |acters i|n the ta|
|000030f0| 72 67 65 74 20 6e 61 6d | 65 2e 0a 4f 6e 6c 79 20 |rget nam|e..Only |
|00003100| 6f 6e 65 20 73 75 63 68 | 20 77 69 6c 64 63 61 72 |one such| wildcar|
|00003110| 64 20 63 68 61 72 61 63 | 74 65 72 20 6d 61 79 20 |d charac|ter may |
|00003120| 65 78 69 73 74 20 70 65 | 72 20 6e 61 6d 65 2e 0a |exist pe|r name..|
|00003130| 0a 54 68 65 72 65 20 6d | 61 79 20 62 65 20 6f 6e |.There m|ay be on|
|00003140| 6c 79 20 6f 6e 65 20 64 | 65 70 65 6e 64 65 6e 74 |ly one d|ependent|
|00003150| 20 69 6e 20 61 20 70 61 | 74 74 65 72 6e 20 72 75 | in a pa|ttern ru|
|00003160| 6c 65 20 28 65 78 74 72 | 61 20 64 65 70 65 6e 64 |le (extr|a depend|
|00003170| 65 6e 74 73 20 67 69 76 | 65 6e 0a 6f 6e 20 74 68 |ents giv|en.on th|
|00003180| 65 20 6c 69 6e 65 20 61 | 72 65 20 69 67 6e 6f 72 |e line a|re ignor|
|00003190| 65 64 29 2e 20 20 54 68 | 65 20 7b 5c 74 74 20 5c |ed). Th|e {\tt \|
|000031a0| 25 7d 20 63 68 61 72 61 | 63 74 65 72 20 69 6e 20 |%} chara|cter in |
|000031b0| 74 68 65 20 64 65 70 65 | 6e 64 65 6e 63 79 20 70 |the depe|ndency p|
|000031c0| 61 74 74 65 72 6e 0a 69 | 73 20 72 65 70 6c 61 63 |attern.i|s replac|
|000031d0| 65 64 20 77 69 74 68 20 | 74 68 65 20 73 74 65 6d |ed with |the stem|
|000031e0| 20 28 74 68 65 20 73 65 | 71 75 65 6e 63 65 20 6f | (the se|quence o|
|000031f0| 66 20 63 68 61 72 61 63 | 74 65 72 73 20 77 68 69 |f charac|ters whi|
|00003200| 63 68 20 77 65 72 65 20 | 6d 61 74 63 68 65 64 20 |ch were |matched |
|00003210| 62 79 0a 74 68 65 20 7b | 5c 74 74 20 5c 25 7d 29 |by.the {|\tt \%})|
|00003220| 20 66 72 6f 6d 20 74 68 | 65 20 74 61 72 67 65 74 | from th|e target|
|00003230| 20 6e 61 6d 65 2e 0a 0a | 41 20 73 69 6e 67 6c 65 | name...|A single|
|00003240| 20 70 61 74 74 65 72 6e | 20 72 75 6c 65 20 6f 66 | pattern| rule of|
|00003250| 20 74 68 65 20 66 6f 72 | 6d 3a 0a 0a 5c 62 65 67 | the for|m:..\beg|
|00003260| 69 6e 7b 76 65 72 62 61 | 74 69 6d 7d 0a 25 2e 5a |in{verba|tim}.%.Z|
|00003270| 3a 0a 20 20 20 20 63 6f | 6d 70 72 65 73 73 20 24 |:. co|mpress $|
|00003280| 2a 0a 5c 65 6e 64 7b 76 | 65 72 62 61 74 69 6d 7d |*.\end{v|erbatim}|
|00003290| 0a 0a 69 73 20 74 68 65 | 20 73 61 6d 65 20 61 73 |..is the| same as|
|000032a0| 20 61 20 64 6f 75 62 6c | 65 20 70 61 74 74 65 72 | a doubl|e patter|
|000032b0| 6e 20 72 75 6c 65 2c 20 | 65 78 63 65 70 74 20 74 |n rule, |except t|
|000032c0| 68 61 74 20 74 68 65 72 | 65 20 69 73 20 6e 6f 20 |hat ther|e is no |
|000032d0| 64 65 70 65 6e 64 65 6e | 63 79 0a 70 61 74 74 65 |dependen|cy.patte|
|000032e0| 72 6e 2e 20 20 41 73 20 | 61 20 72 65 73 75 6c 74 |rn. As |a result|
|000032f0| 2c 20 74 68 65 20 61 75 | 74 6f 6d 61 74 69 63 20 |, the au|tomatic |
|00003300| 76 61 72 69 61 62 6c 65 | 20 7b 5c 74 74 20 5c 24 |variable| {\tt \$|
|00003310| 3c 7d 20 69 73 20 6e 6f | 74 20 64 65 66 69 6e 65 |<} is no|t define|
|00003320| 64 20 69 6e 20 74 68 65 | 0a 73 63 6f 70 65 20 6f |d in the|.scope o|
|00003330| 66 20 61 20 73 69 6e 67 | 6c 65 20 73 75 66 66 69 |f a sing|le suffi|
|00003340| 78 20 72 75 6c 65 2e 20 | 20 53 69 6e 63 65 20 74 |x rule. | Since t|
|00003350| 68 65 72 65 20 61 72 65 | 20 6e 6f 20 64 65 70 65 |here are| no depe|
|00003360| 6e 64 65 6e 63 69 65 73 | 2c 20 61 6e 79 20 74 61 |ndencies|, any ta|
|00003370| 72 67 65 74 0a 6d 61 74 | 63 68 69 6e 67 20 61 20 |rget.mat|ching a |
|00003380| 73 69 6e 67 6c 65 20 73 | 75 66 66 69 78 20 72 75 |single s|uffix ru|
|00003390| 6c 65 20 77 69 6c 6c 20 | 61 6c 77 61 79 73 20 62 |le will |always b|
|000033a0| 65 20 72 65 6d 61 64 65 | 3b 20 74 68 65 20 63 6f |e remade|; the co|
|000033b0| 6d 6d 61 6e 64 73 20 77 | 69 6c 6c 0a 61 6c 77 61 |mmands w|ill.alwa|
|000033c0| 79 73 20 62 65 20 65 78 | 65 63 75 74 65 64 2e 0a |ys be ex|ecuted..|
|000033d0| 0a 54 68 65 72 65 20 6d | 61 79 20 62 65 20 6d 6f |.There m|ay be mo|
|000033e0| 72 65 20 74 68 61 6e 20 | 6f 6e 65 20 70 61 74 74 |re than |one patt|
|000033f0| 65 72 6e 20 72 75 6c 65 | 20 61 70 70 6c 69 63 61 |ern rule| applica|
|00003400| 62 6c 65 20 70 65 72 20 | 74 61 72 67 65 74 20 6e |ble per |target n|
|00003410| 61 6d 65 2e 20 20 54 68 | 65 0a 66 69 72 73 74 20 |ame. Th|e.first |
|00003420| 6d 61 74 63 68 69 6e 67 | 20 70 61 74 74 65 72 6e |matching| pattern|
|00003430| 20 72 75 6c 65 20 77 69 | 6c 6c 20 68 61 76 65 20 | rule wi|ll have |
|00003440| 70 72 69 6f 72 69 74 79 | 2e 20 20 49 66 20 73 65 |priority|. If se|
|00003450| 76 65 72 61 6c 20 70 61 | 74 74 65 72 6e 20 72 75 |veral pa|ttern ru|
|00003460| 6c 65 73 0a 61 72 65 20 | 64 65 66 69 6e 65 64 20 |les.are |defined |
|00003470| 77 69 74 68 20 74 68 65 | 20 73 61 6d 65 20 74 61 |with the| same ta|
|00003480| 72 67 65 74 20 70 61 74 | 74 65 72 6e 2c 20 74 68 |rget pat|tern, th|
|00003490| 65 6e 20 74 68 65 20 70 | 61 74 74 65 72 6e 20 72 |en the p|attern r|
|000034a0| 75 6c 65 20 74 68 61 74 | 20 77 61 73 0a 64 65 66 |ule that| was.def|
|000034b0| 69 6e 65 64 20 65 61 72 | 6c 69 65 72 20 77 69 6c |ined ear|lier wil|
|000034c0| 6c 20 68 61 76 65 20 70 | 72 69 6f 72 69 74 79 20 |l have p|riority |
|000034d0| 6f 76 65 72 20 61 6c 6c | 20 6c 61 74 65 72 20 64 |over all| later d|
|000034e0| 65 66 69 6e 69 74 69 6f | 6e 73 2e 20 20 54 68 75 |efinitio|ns. Thu|
|000034f0| 73 2c 0a 70 61 74 74 65 | 72 6e 20 72 75 6c 65 73 |s,.patte|rn rules|
|00003500| 20 77 69 74 68 20 74 68 | 65 20 73 61 6d 65 20 74 | with th|e same t|
|00003510| 61 72 67 65 74 20 62 75 | 74 20 64 69 66 66 65 72 |arget bu|t differ|
|00003520| 65 6e 74 20 64 65 70 65 | 6e 64 65 6e 63 69 65 73 |ent depe|ndencies|
|00003530| 20 63 61 6e 20 62 65 0a | 64 65 66 69 6e 65 64 20 | can be.|defined |
|00003540| 69 6e 20 6e 61 74 75 72 | 61 6c 20 70 72 69 6f 72 |in natur|al prior|
|00003550| 69 74 69 7a 65 64 20 6f | 72 64 65 72 3b 20 74 68 |itized o|rder; th|
|00003560| 65 20 66 69 72 73 74 20 | 6f 6e 65 20 64 65 66 69 |e first |one defi|
|00003570| 6e 65 64 20 77 69 6c 6c | 20 62 65 20 74 68 65 0a |ned will| be the.|
|00003580| 66 69 72 73 74 20 6f 6e | 65 20 61 70 70 6c 69 65 |first on|e applie|
|00003590| 64 20 74 6f 20 69 6e 66 | 65 72 65 6e 63 65 20 72 |d to inf|erence r|
|000035a0| 75 6c 65 73 2e 0a 0a 48 | 6f 77 65 76 65 72 2c 20 |ules...H|owever, |
|000035b0| 69 66 20 61 20 6e 65 77 | 20 64 65 66 69 6e 69 74 |if a new| definit|
|000035c0| 69 6f 6e 20 69 73 20 67 | 69 76 65 6e 20 74 68 61 |ion is g|iven tha|
|000035d0| 74 20 65 78 61 63 74 6c | 79 20 64 75 70 6c 69 63 |t exactl|y duplic|
|000035e0| 61 74 65 73 20 62 6f 74 | 68 20 74 68 65 0a 74 61 |ates bot|h the.ta|
|000035f0| 72 67 65 74 20 70 61 74 | 74 65 72 6e 20 61 6e 64 |rget pat|tern and|
|00003600| 20 74 68 65 20 64 65 70 | 65 6e 64 65 6e 63 79 20 | the dep|endency |
|00003610| 70 61 74 74 65 72 6e 20 | 74 68 65 6e 20 74 68 65 |pattern |then the|
|00003620| 20 6e 65 77 20 64 65 66 | 69 6e 69 74 69 6f 6e 20 | new def|inition |
|00003630| 77 69 6c 6c 0a 72 65 70 | 6c 61 63 65 20 74 68 65 |will.rep|lace the|
|00003640| 20 6f 6c 64 20 70 61 74 | 74 65 72 6e 20 72 75 6c | old pat|tern rul|
|00003650| 65 2e 0a 0a 5c 73 75 62 | 73 75 62 73 65 63 74 69 |e...\sub|subsecti|
|00003660| 6f 6e 7b 53 75 66 66 69 | 78 20 52 75 6c 65 73 7d |on{Suffi|x Rules}|
|00003670| 0a 0a 54 6f 20 6d 61 69 | 6e 74 61 69 6e 20 63 6f |..To mai|ntain co|
|00003680| 6d 70 61 74 69 62 69 6c | 69 74 79 20 77 69 74 68 |mpatibil|ity with|
|00003690| 20 6f 6c 64 65 72 20 76 | 65 72 73 69 6f 6e 73 20 | older v|ersions |
|000036a0| 6f 66 20 4d 61 6b 65 2c | 20 73 75 66 66 69 78 20 |of Make,| suffix |
|000036b0| 72 75 6c 65 73 20 63 61 | 6e 20 62 65 0a 64 65 66 |rules ca|n be.def|
|000036c0| 69 6e 65 64 2e 20 20 54 | 68 65 79 20 61 72 65 20 |ined. T|hey are |
|000036d0| 61 20 70 6f 6f 72 20 6d | 61 6e 27 73 20 73 74 79 |a poor m|an's sty|
|000036e0| 6c 65 20 6f 66 20 70 61 | 74 74 65 72 6e 20 72 75 |le of pa|ttern ru|
|000036f0| 6c 65 73 2e 20 20 41 6e | 20 65 78 61 6d 70 6c 65 |les. An| example|
|00003700| 20 6f 66 20 61 0a 64 6f | 75 62 6c 65 20 73 75 66 | of a.do|uble suf|
|00003710| 66 69 78 20 72 75 6c 65 | 20 69 73 3a 0a 0a 5c 62 |fix rule| is:..\b|
|00003720| 65 67 69 6e 7b 76 65 72 | 62 61 74 69 6d 7d 0a 2e |egin{ver|batim}..|
|00003730| 63 2e 6f 3a 0a 20 20 20 | 20 24 28 43 43 29 20 2d |c.o:. | $(CC) -|
|00003740| 63 20 24 28 43 46 4c 41 | 47 53 29 20 2d 6f 20 24 |c $(CFLA|GS) -o $|
|00003750| 40 20 24 3c 0a 2e 53 55 | 46 46 49 58 45 53 3a 20 |@ $<..SU|FFIXES: |
|00003760| 2e 63 20 2e 6f 0a 5c 65 | 6e 64 7b 76 65 72 62 61 |.c .o.\e|nd{verba|
|00003770| 74 69 6d 7d 0a 0a 54 68 | 65 20 61 62 6f 76 65 20 |tim}..Th|e above |
|00003780| 73 75 66 66 69 78 20 72 | 75 6c 65 20 64 65 66 69 |suffix r|ule defi|
|00003790| 6e 65 73 20 68 6f 77 20 | 74 6f 20 6d 61 6b 65 20 |nes how |to make |
|000037a0| 61 6e 79 20 74 61 72 67 | 65 74 20 77 69 74 68 20 |any targ|et with |
|000037b0| 61 20 66 69 6c 65 6e 61 | 6d 65 20 65 6e 64 69 6e |a filena|me endin|
|000037c0| 67 0a 69 6e 20 7b 5c 74 | 74 20 2e 6f 7d 20 69 66 |g.in {\t|t .o} if|
|000037d0| 20 74 68 65 72 65 20 69 | 73 20 61 20 63 6f 72 72 | there i|s a corr|
|000037e0| 65 73 70 6f 6e 64 69 6e | 67 20 64 65 70 65 6e 64 |espondin|g depend|
|000037f0| 65 6e 74 20 66 69 6c 65 | 6e 61 6d 65 20 74 68 61 |ent file|name tha|
|00003800| 74 20 65 6e 64 73 20 69 | 6e 0a 7b 5c 74 74 20 2e |t ends i|n.{\tt .|
|00003810| 63 7d 2e 20 20 54 68 65 | 20 63 6f 6d 6d 61 6e 64 |c}. The| command|
|00003820| 73 20 61 73 73 6f 63 69 | 61 74 65 64 20 77 69 74 |s associ|ated wit|
|00003830| 68 20 61 20 73 75 66 66 | 69 78 20 72 75 6c 65 20 |h a suff|ix rule |
|00003840| 61 72 65 20 65 78 65 63 | 75 74 65 64 20 69 66 20 |are exec|uted if |
|00003850| 74 68 65 0a 64 65 70 65 | 6e 64 65 6e 74 20 66 69 |the.depe|ndent fi|
|00003860| 6c 65 20 69 73 20 6e 65 | 77 65 72 20 74 68 61 6e |le is ne|wer than|
|00003870| 20 74 68 65 20 74 61 72 | 67 65 74 20 66 69 6c 65 | the tar|get file|
|00003880| 2e 0a 0a 41 20 73 75 66 | 66 69 78 20 72 75 6c 65 |...A suf|fix rule|
|00003890| 20 68 61 73 20 6e 6f 20 | 64 65 70 65 6e 64 65 6e | has no |dependen|
|000038a0| 63 69 65 73 20 6c 69 73 | 74 65 64 20 74 6f 20 74 |cies lis|ted to t|
|000038b0| 68 65 20 72 69 67 68 74 | 20 6f 66 20 74 68 65 20 |he right| of the |
|000038c0| 63 6f 6c 6f 6e 2e 20 20 | 49 66 0a 73 75 63 68 20 |colon. |If.such |
|000038d0| 64 65 70 65 6e 64 65 6e | 63 69 65 73 20 65 78 69 |dependen|cies exi|
|000038e0| 73 74 2c 20 74 68 65 6e | 20 74 68 65 20 72 75 6c |st, then| the rul|
|000038f0| 65 20 64 65 66 69 6e 69 | 74 69 6f 6e 20 69 73 20 |e defini|tion is |
|00003900| 63 6f 6e 73 69 64 65 72 | 65 64 20 74 6f 20 62 65 |consider|ed to be|
|00003910| 20 61 6e 0a 6f 72 64 69 | 6e 61 72 79 20 74 61 72 | an.ordi|nary tar|
|00003920| 67 65 74 20 72 75 6c 65 | 2e 0a 0a 54 68 65 20 7b |get rule|...The {|
|00003930| 5c 74 74 20 2e 53 55 46 | 46 49 58 45 53 7d 20 64 |\tt .SUF|FIXES} d|
|00003940| 69 72 65 63 74 69 76 65 | 20 69 73 20 75 73 65 64 |irective| is used|
|00003950| 20 74 6f 20 63 61 75 73 | 65 20 74 68 65 20 4d 61 | to caus|e the Ma|
|00003960| 6b 65 20 70 72 6f 67 72 | 61 6d 20 74 6f 20 66 69 |ke progr|am to fi|
|00003970| 6e 64 20 61 6c 6c 0a 6f | 72 64 69 6e 61 72 79 20 |nd all.o|rdinary |
|00003980| 72 75 6c 65 73 20 74 68 | 61 74 20 63 61 6e 20 62 |rules th|at can b|
|00003990| 65 20 69 6e 74 65 72 70 | 72 65 74 65 64 20 61 73 |e interp|reted as|
|000039a0| 20 73 75 66 66 69 78 20 | 72 75 6c 65 73 20 6d 61 | suffix |rules ma|
|000039b0| 74 63 68 69 6e 67 20 74 | 68 65 20 73 75 66 66 69 |tching t|he suffi|
|000039c0| 78 0a 61 72 67 75 6d 65 | 6e 74 73 2e 20 20 45 61 |x.argume|nts. Ea|
|000039d0| 63 68 20 73 75 66 66 69 | 78 20 72 75 6c 65 20 69 |ch suffi|x rule i|
|000039e0| 73 20 74 72 61 6e 73 66 | 6f 72 6d 65 64 20 69 6e |s transf|ormed in|
|000039f0| 74 6f 20 69 74 73 20 65 | 71 75 69 76 61 6c 65 6e |to its e|quivalen|
|00003a00| 74 20 70 61 74 74 65 72 | 6e 0a 72 75 6c 65 20 61 |t patter|n.rule a|
|00003a10| 74 20 74 68 69 73 20 74 | 69 6d 65 2e 0a 0a 5c 73 |t this t|ime...\s|
|00003a20| 75 62 73 75 62 73 65 63 | 74 69 6f 6e 7b 50 61 74 |ubsubsec|tion{Pat|
|00003a30| 74 65 72 6e 20 52 75 6c | 65 73 20 76 65 72 73 75 |tern Rul|es versu|
|00003a40| 73 20 53 75 66 66 69 78 | 20 52 75 6c 65 73 7d 0a |s Suffix| Rules}.|
|00003a50| 0a 50 61 74 74 65 72 6e | 20 72 75 6c 65 73 20 73 |.Pattern| rules s|
|00003a60| 68 6f 75 6c 64 20 62 65 | 20 75 73 65 64 20 62 65 |hould be| used be|
|00003a70| 63 61 75 73 65 20 74 68 | 65 79 20 61 72 65 20 66 |cause th|ey are f|
|00003a80| 61 72 20 6d 6f 72 65 20 | 66 6c 65 78 69 62 6c 65 |ar more |flexible|
|00003a90| 20 74 68 61 6e 20 73 75 | 66 66 69 78 0a 72 75 6c | than su|ffix.rul|
|00003aa0| 65 73 2e 20 20 53 75 66 | 66 69 78 20 72 75 6c 65 |es. Suf|fix rule|
|00003ab0| 73 20 61 72 65 20 69 6e | 74 65 72 6e 61 6c 6c 79 |s are in|ternally|
|00003ac0| 20 72 65 70 72 65 73 65 | 6e 74 65 64 20 62 79 20 | represe|nted by |
|00003ad0| 70 61 74 74 65 72 6e 20 | 72 75 6c 65 73 20 61 6e |pattern |rules an|
|00003ae0| 79 77 61 79 2c 0a 62 75 | 74 20 61 6e 20 65 78 74 |yway,.bu|t an ext|
|00003af0| 72 61 20 7b 5c 74 74 20 | 2e 53 55 46 46 49 58 45 |ra {\tt |.SUFFIXE|
|00003b00| 53 7d 20 64 69 72 65 63 | 74 69 76 65 20 6d 75 73 |S} direc|tive mus|
|00003b10| 74 20 62 65 20 67 69 76 | 65 6e 20 62 65 66 6f 72 |t be giv|en befor|
|00003b20| 65 20 61 20 73 75 66 66 | 69 78 20 72 75 6c 65 0a |e a suff|ix rule.|
|00003b30| 69 73 20 72 65 63 6f 67 | 6e 69 7a 65 64 2e 0a 0a |is recog|nized...|
|00003b40| 5c 73 75 62 73 65 63 74 | 69 6f 6e 7b 43 6f 6d 6d |\subsect|ion{Comm|
|00003b50| 61 6e 64 20 4c 69 6e 65 | 73 7d 0a 0a 43 6f 6d 6d |and Line|s}..Comm|
|00003b60| 61 6e 64 20 6c 69 6e 65 | 73 20 61 72 65 20 65 78 |and line|s are ex|
|00003b70| 65 63 75 74 65 64 20 69 | 6e 20 6f 72 64 65 72 20 |ecuted i|n order |
|00003b80| 6f 66 20 61 70 70 65 61 | 72 61 6e 63 65 20 69 66 |of appea|rance if|
|00003b90| 20 61 6e 79 20 64 65 70 | 65 6e 64 65 6e 63 79 20 | any dep|endency |
|00003ba0| 69 73 0a 6e 65 77 65 72 | 20 74 68 61 6e 20 74 68 |is.newer| than th|
|00003bb0| 65 20 74 61 72 67 65 74 | 2e 20 20 54 68 65 20 63 |e target|. The c|
|00003bc0| 6f 6d 6d 61 6e 64 73 20 | 65 78 65 63 75 74 65 64 |ommands |executed|
|00003bd0| 20 66 6f 72 20 61 20 72 | 75 6c 65 20 73 68 6f 75 | for a r|ule shou|
|00003be0| 6c 64 20 64 6f 0a 73 6f | 6d 65 74 68 69 6e 67 20 |ld do.so|mething |
|00003bf0| 74 68 61 74 20 63 61 75 | 73 65 73 20 74 68 65 20 |that cau|ses the |
|00003c00| 74 61 72 67 65 74 27 73 | 20 6d 6f 64 69 66 69 63 |target's| modific|
|00003c10| 61 74 69 6f 6e 20 64 61 | 74 65 20 74 6f 20 62 65 |ation da|te to be|
|00003c20| 20 75 70 64 61 74 65 64 | 2e 0a 0a 54 68 65 20 4d | updated|...The M|
|00003c30| 61 6b 65 20 70 72 6f 67 | 72 61 6d 20 6b 6e 6f 77 |ake prog|ram know|
|00003c40| 73 20 6e 6f 74 68 69 6e | 67 20 61 62 6f 75 74 20 |s nothin|g about |
|00003c50| 77 68 61 74 20 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |what the| command|
|00003c60| 20 6c 69 6e 65 73 20 6d | 65 61 6e 20 6f 72 20 64 | lines m|ean or d|
|00003c70| 6f 2e 0a 54 68 65 20 63 | 6f 6d 6d 61 6e 64 20 6c |o..The c|ommand l|
|00003c80| 69 6e 65 73 20 61 72 65 | 20 73 69 6d 70 6c 79 20 |ines are| simply |
|00003c90| 70 61 73 73 65 64 20 74 | 6f 20 74 68 65 20 73 68 |passed t|o the sh|
|00003ca0| 65 6c 6c 20 66 6f 72 20 | 65 78 65 63 75 74 69 6f |ell for |executio|
|00003cb0| 6e 2e 20 20 49 66 0a 65 | 78 65 63 75 74 69 6e 67 |n. If.e|xecuting|
|00003cc0| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e | the com|mand lin|
|00003cd0| 65 20 72 65 73 75 6c 74 | 73 20 69 6e 20 61 6e 20 |e result|s in an |
|00003ce0| 65 72 72 6f 72 2c 20 74 | 68 65 6e 20 74 68 65 20 |error, t|hen the |
|00003cf0| 4d 61 6b 65 20 70 72 6f | 67 72 61 6d 20 77 69 6c |Make pro|gram wil|
|00003d00| 6c 0a 74 65 72 6d 69 6e | 61 74 65 2e 0a 0a 53 6f |l.termin|ate...So|
|00003d10| 6d 65 74 69 6d 65 73 20 | 69 74 20 69 73 20 64 65 |metimes |it is de|
|00003d20| 73 69 72 61 62 6c 65 20 | 74 6f 20 69 67 6e 6f 72 |sirable |to ignor|
|00003d30| 65 20 74 68 65 20 65 72 | 72 6f 72 20 72 65 74 75 |e the er|ror retu|
|00003d40| 72 6e 65 64 20 62 79 20 | 61 20 63 6f 6d 6d 61 6e |rned by |a comman|
|00003d50| 64 2c 0a 62 65 63 61 75 | 73 65 20 66 61 69 6c 75 |d,.becau|se failu|
|00003d60| 72 65 20 74 6f 20 65 78 | 65 63 75 74 65 20 74 68 |re to ex|ecute th|
|00003d70| 65 20 63 6f 6d 6d 61 6e | 64 20 64 6f 65 73 20 6e |e comman|d does n|
|00003d80| 6f 74 20 61 66 66 65 63 | 74 20 74 68 65 20 73 75 |ot affec|t the su|
|00003d90| 63 63 65 73 73 66 75 6c | 0a 63 6f 6d 70 6c 65 74 |ccessful|.complet|
|00003da0| 69 6f 6e 20 6f 66 20 74 | 68 65 20 4d 61 6b 65 66 |ion of t|he Makef|
|00003db0| 69 6c 65 2e 20 20 49 66 | 20 74 68 69 73 20 69 73 |ile. If| this is|
|00003dc0| 20 74 72 75 65 20 74 68 | 65 6e 20 74 68 65 20 65 | true th|en the e|
|00003dd0| 72 72 6f 72 20 72 65 74 | 75 72 6e 65 64 20 62 79 |rror ret|urned by|
|00003de0| 20 61 0a 63 6f 6d 6d 61 | 6e 64 20 63 61 6e 20 62 | a.comma|nd can b|
|00003df0| 65 20 69 67 6e 6f 72 65 | 64 20 62 79 20 70 72 65 |e ignore|d by pre|
|00003e00| 63 65 64 69 6e 67 20 74 | 68 65 20 63 6f 6d 6d 61 |ceding t|he comma|
|00003e10| 6e 64 20 77 69 74 68 20 | 61 20 7b 5c 74 74 20 2d |nd with |a {\tt -|
|00003e20| 7d 20 63 68 61 72 61 63 | 74 65 72 2e 0a 46 6f 72 |} charac|ter..For|
|00003e30| 20 65 78 61 6d 70 6c 65 | 3a 0a 0a 5c 62 65 67 69 | example|:..\begi|
|00003e40| 6e 7b 76 65 72 62 61 74 | 69 6d 7d 0a 63 6c 65 61 |n{verbat|im}.clea|
|00003e50| 6e 3a 0a 20 20 20 20 2d | 64 65 6c 65 74 65 20 23 |n:. -|delete #|
|00003e60| 3f 2e 6f 0a 5c 65 6e 64 | 7b 76 65 72 62 61 74 69 |?.o.\end|{verbati|
|00003e70| 6d 7d 0a 0a 4e 6f 72 6d | 61 6c 6c 79 2c 20 65 61 |m}..Norm|ally, ea|
|00003e80| 63 68 20 63 6f 6d 6d 61 | 6e 64 20 69 73 20 70 72 |ch comma|nd is pr|
|00003e90| 69 6e 74 65 64 20 28 65 | 63 68 6f 65 64 29 20 62 |inted (e|choed) b|
|00003ea0| 65 66 6f 72 65 20 65 78 | 65 63 75 74 69 6f 6e 2e |efore ex|ecution.|
|00003eb0| 20 20 45 63 68 6f 69 6e | 67 20 66 6f 72 0a 65 61 | Echoin|g for.ea|
|00003ec0| 63 68 20 63 6f 6d 6d 61 | 6e 64 20 63 61 6e 20 62 |ch comma|nd can b|
|00003ed0| 65 20 64 69 73 61 62 6c | 65 64 20 62 79 20 70 72 |e disabl|ed by pr|
|00003ee0| 65 63 65 64 69 6e 67 20 | 69 74 20 77 69 74 68 20 |eceding |it with |
|00003ef0| 61 20 7b 5c 74 74 20 40 | 7d 20 63 68 61 72 61 63 |a {\tt @|} charac|
|00003f00| 74 65 72 2e 20 20 54 68 | 69 73 0a 64 6f 65 73 20 |ter. Th|is.does |
|00003f10| 6e 6f 74 20 61 66 66 65 | 63 74 20 69 74 73 20 65 |not affe|ct its e|
|00003f20| 78 65 63 75 74 69 6f 6e | 2e 20 20 54 68 65 20 7b |xecution|. The {|
|00003f30| 5c 74 74 20 40 7d 20 63 | 68 61 72 61 63 74 65 72 |\tt @} c|haracter|
|00003f40| 20 64 6f 65 73 20 6e 6f | 74 20 72 65 64 69 72 65 | does no|t redire|
|00003f50| 63 74 20 74 68 65 0a 73 | 74 61 6e 64 61 72 64 20 |ct the.s|tandard |
|00003f60| 6f 75 74 70 75 74 20 6f | 66 20 74 68 65 20 70 72 |output o|f the pr|
|00003f70| 6f 67 72 61 6d 20 62 65 | 69 6e 67 20 65 78 65 63 |ogram be|ing exec|
|00003f80| 75 74 65 64 2e 20 20 52 | 65 64 69 72 65 63 74 69 |uted. R|edirecti|
|00003f90| 6f 6e 20 6d 75 73 74 20 | 62 65 20 73 74 61 74 65 |on must |be state|
|00003fa0| 64 0a 65 78 70 6c 69 63 | 69 74 6c 79 2e 0a 0a 5c |d.explic|itly...\|
|00003fb0| 73 75 62 73 75 62 73 65 | 63 74 69 6f 6e 7b 53 70 |subsubse|ction{Sp|
|00003fc0| 65 63 69 61 6c 20 43 6f | 6d 6d 61 6e 64 73 7d 0a |ecial Co|mmands}.|
|00003fd0| 0a 54 68 65 20 7b 5c 74 | 74 20 63 64 7d 20 63 6f |.The {\t|t cd} co|
|00003fe0| 6d 6d 61 6e 64 20 63 61 | 6e 20 62 65 20 75 73 65 |mmand ca|n be use|
|00003ff0| 64 20 74 6f 20 63 68 61 | 6e 67 65 20 74 68 65 20 |d to cha|nge the |
|00004000| 63 75 72 72 65 6e 74 20 | 64 69 72 65 63 74 6f 72 |current |director|
|00004010| 79 20 6f 66 20 74 68 65 | 0a 4d 61 6b 65 20 70 72 |y of the|.Make pr|
|00004020| 6f 67 72 61 6d 2e 20 20 | 54 68 69 73 20 63 6f 6d |ogram. |This com|
|00004030| 6d 61 6e 64 20 69 73 20 | 73 70 65 63 69 61 6c 3b |mand is |special;|
|00004040| 20 69 74 20 69 73 20 68 | 61 6e 64 6c 65 64 20 62 | it is h|andled b|
|00004050| 79 20 74 68 65 20 4d 61 | 6b 65 20 70 72 6f 67 72 |y the Ma|ke progr|
|00004060| 61 6d 0a 69 74 73 65 6c | 66 2c 20 69 6e 73 74 65 |am.itsel|f, inste|
|00004070| 61 64 20 6f 66 20 62 65 | 69 6e 67 20 65 78 65 63 |ad of be|ing exec|
|00004080| 75 74 65 64 20 62 79 20 | 74 68 65 20 73 68 65 6c |uted by |the shel|
|00004090| 6c 2e 20 20 41 66 74 65 | 72 20 74 68 65 20 63 75 |l. Afte|r the cu|
|000040a0| 72 72 65 6e 74 0a 64 69 | 72 65 63 74 6f 72 79 20 |rrent.di|rectory |
|000040b0| 69 73 20 63 68 61 6e 67 | 65 64 2c 20 61 6c 6c 20 |is chang|ed, all |
|000040c0| 73 75 62 73 65 71 75 65 | 6e 74 20 63 6f 6d 6d 61 |subseque|nt comma|
|000040d0| 6e 64 73 20 77 68 69 63 | 68 20 61 72 65 20 65 78 |nds whic|h are ex|
|000040e0| 65 63 75 74 65 64 20 66 | 72 6f 6d 0a 77 69 74 68 |ecuted f|rom.with|
|000040f0| 69 6e 20 4d 61 6b 65 20 | 77 69 6c 6c 20 69 6e 68 |in Make |will inh|
|00004100| 65 72 69 74 20 74 68 65 | 20 6e 65 77 20 63 75 72 |erit the| new cur|
|00004110| 72 65 6e 74 20 64 69 72 | 65 63 74 6f 72 79 2c 20 |rent dir|ectory, |
|00004120| 75 6e 74 69 6c 20 61 6e | 6f 74 68 65 72 20 7b 5c |until an|other {\|
|00004130| 74 74 20 63 64 7d 0a 63 | 6f 6d 6d 61 6e 64 20 69 |tt cd}.c|ommand i|
|00004140| 73 20 69 73 73 75 65 64 | 2e 20 20 49 66 20 6e 6f |s issued|. If no|
|00004150| 20 61 72 67 75 6d 65 6e | 74 20 69 73 20 67 69 76 | argumen|t is giv|
|00004160| 65 6e 20 74 6f 20 7b 5c | 74 74 20 63 64 7d 20 74 |en to {\|tt cd} t|
|00004170| 68 65 6e 20 74 68 65 20 | 6f 72 69 67 69 6e 61 6c |hen the |original|
|00004180| 0a 63 75 72 72 65 6e 74 | 20 64 69 72 65 63 74 6f |.current| directo|
|00004190| 72 79 20 69 73 20 72 65 | 73 74 6f 72 65 64 2e 20 |ry is re|stored. |
|000041a0| 20 54 68 65 20 6f 72 69 | 67 69 6e 61 6c 20 63 75 | The ori|ginal cu|
|000041b0| 72 72 65 6e 74 20 64 69 | 72 65 63 74 6f 72 79 2c |rrent di|rectory,|
|000041c0| 20 77 68 65 72 65 20 74 | 68 65 0a 4d 61 6b 65 20 | where t|he.Make |
|000041d0| 70 72 6f 67 72 61 6d 20 | 77 61 73 20 65 78 65 63 |program |was exec|
|000041e0| 75 74 65 64 2c 20 77 69 | 6c 6c 20 62 65 20 72 65 |uted, wi|ll be re|
|000041f0| 73 74 6f 72 65 64 20 62 | 65 66 6f 72 65 20 74 68 |stored b|efore th|
|00004200| 65 20 4d 61 6b 65 20 70 | 72 6f 67 72 61 6d 20 65 |e Make p|rogram e|
|00004210| 78 69 74 73 2e 0a 0a 43 | 6f 6e 64 69 74 69 6f 6e |xits...C|ondition|
|00004220| 61 6c 20 63 6f 6d 6d 61 | 6e 64 73 20 61 72 65 20 |al comma|nds are |
|00004230| 61 6c 73 6f 20 68 61 6e | 64 6c 65 64 20 69 6e 74 |also han|dled int|
|00004240| 65 72 6e 61 6c 6c 79 20 | 62 79 20 74 68 65 20 4d |ernally |by the M|
|00004250| 61 6b 65 20 70 72 6f 67 | 72 61 6d 2e 0a 52 65 66 |ake prog|ram..Ref|
|00004260| 65 72 20 74 6f 20 73 65 | 63 74 69 6f 6e 20 5c 72 |er to se|ction \r|
|00004270| 65 66 7b 63 6f 6e 64 63 | 6d 64 73 7d 20 6f 6e 20 |ef{condc|mds} on |
|00004280| 74 68 65 20 62 65 68 61 | 76 69 6f 75 72 20 6f 66 |the beha|viour of|
|00004290| 20 63 6f 6e 64 69 74 69 | 6f 6e 61 6c 0a 63 6f 6d | conditi|onal.com|
|000042a0| 6d 61 6e 64 73 2e 0a 0a | 5c 73 75 62 73 75 62 73 |mands...|\subsubs|
|000042b0| 65 63 74 69 6f 6e 7b 56 | 61 72 69 61 62 6c 65 20 |ection{V|ariable |
|000042c0| 41 73 73 69 67 6e 6d 65 | 6e 74 20 43 6f 6d 6d 61 |Assignme|nt Comma|
|000042d0| 6e 64 73 7d 0a 0a 41 20 | 63 6f 6d 6d 61 6e 64 20 |nds}..A |command |
|000042e0| 6c 69 6e 65 20 63 6f 6e | 74 61 69 6e 69 6e 67 20 |line con|taining |
|000042f0| 74 68 65 20 7b 5c 74 74 | 20 3d 7d 20 63 68 61 72 |the {\tt| =} char|
|00004300| 61 63 74 65 72 20 77 69 | 6c 6c 20 62 65 20 69 6e |acter wi|ll be in|
|00004310| 74 65 72 70 72 65 74 65 | 64 20 61 73 20 61 0a 76 |terprete|d as a.v|
|00004320| 61 72 69 61 62 6c 65 20 | 61 73 73 69 67 6e 6d 65 |ariable |assignme|
|00004330| 6e 74 20 28 73 65 65 20 | 73 65 63 74 69 6f 6e 20 |nt (see |section |
|00004340| 5c 72 65 66 7b 76 61 72 | 61 73 73 7d 29 2e 20 20 |\ref{var|ass}). |
|00004350| 54 68 75 73 2c 20 76 61 | 72 69 61 62 6c 65 73 20 |Thus, va|riables |
|00004360| 63 61 6e 20 62 65 0a 67 | 69 76 65 6e 20 76 61 6c |can be.g|iven val|
|00004370| 75 65 73 20 77 68 69 63 | 68 20 64 65 70 65 6e 64 |ues whic|h depend|
|00004380| 20 75 70 6f 6e 20 77 68 | 69 63 68 20 72 75 6c 65 | upon wh|ich rule|
|00004390| 20 77 61 73 20 72 65 73 | 6f 6c 76 65 64 2e 20 20 | was res|olved. |
|000043a0| 56 61 72 69 61 62 6c 65 | 0a 61 73 73 69 67 6e 6d |Variable|.assignm|
|000043b0| 65 6e 74 20 63 6f 6d 6d | 61 6e 64 73 20 61 72 65 |ent comm|ands are|
|000043c0| 20 65 78 65 63 75 74 65 | 64 20 69 6e 20 74 68 65 | execute|d in the|
|000043d0| 20 63 6f 6e 74 65 78 74 | 20 6f 66 20 74 68 65 20 | context| of the |
|000043e0| 72 75 6c 65 20 77 68 69 | 63 68 20 69 73 20 62 65 |rule whi|ch is be|
|000043f0| 69 6e 67 0a 72 65 73 6f | 6c 76 65 64 20 61 74 20 |ing.reso|lved at |
|00004400| 72 75 6e 20 74 69 6d 65 | 2e 0a 0a 0a 5c 73 75 62 |run time|....\sub|
|00004410| 73 65 63 74 69 6f 6e 7b | 44 65 66 61 75 6c 74 20 |section{|Default |
|00004420| 54 61 72 67 65 74 20 52 | 75 6c 65 7d 0a 0a 53 6f |Target R|ule}..So|
|00004430| 6d 65 74 69 6d 65 73 20 | 69 74 20 6d 69 67 68 74 |metimes |it might|
|00004440| 20 62 65 20 64 65 73 69 | 72 61 62 6c 65 20 74 6f | be desi|rable to|
|00004450| 20 64 65 66 69 6e 65 20 | 61 20 72 75 6c 65 20 74 | define |a rule t|
|00004460| 68 61 74 20 69 73 20 6f | 6e 6c 79 20 65 78 65 63 |hat is o|nly exec|
|00004470| 75 74 65 64 20 77 68 65 | 6e 0a 61 6c 6c 20 6f 74 |uted whe|n.all ot|
|00004480| 68 65 72 20 72 75 6c 65 | 73 20 68 61 76 65 20 66 |her rule|s have f|
|00004490| 61 69 6c 65 64 20 74 6f | 20 6d 61 6b 65 20 61 20 |ailed to| make a |
|000044a0| 74 61 72 67 65 74 20 75 | 70 2d 74 6f 2d 64 61 74 |target u|p-to-dat|
|000044b0| 65 2e 20 20 41 73 20 61 | 20 6c 61 73 74 20 72 65 |e. As a| last re|
|000044c0| 73 6f 72 74 2c 0a 6f 6e | 65 20 6d 69 67 68 74 20 |sort,.on|e might |
|000044d0| 77 69 73 68 20 74 6f 20 | 73 69 6d 70 6c 79 20 7b |wish to |simply {|
|000044e0| 5c 74 74 20 74 6f 75 63 | 68 7d 20 74 68 65 20 74 |\tt touc|h} the t|
|000044f0| 61 72 67 65 74 20 66 69 | 6c 65 2c 20 6f 72 20 70 |arget fi|le, or p|
|00004500| 65 72 66 6f 72 6d 20 6e | 6f 20 61 63 74 69 6f 6e |erform n|o action|
|00004510| 0a 61 74 20 61 6c 6c 2c | 20 61 6e 64 20 61 6c 6c |.at all,| and all|
|00004520| 6f 77 20 4d 61 6b 65 20 | 74 6f 20 63 6f 6e 74 69 |ow Make |to conti|
|00004530| 6e 75 65 2e 0a 0a 5c 62 | 65 67 69 6e 7b 76 65 72 |nue...\b|egin{ver|
|00004540| 62 61 74 69 6d 7d 0a 2e | 44 45 46 41 55 4c 54 3a |batim}..|DEFAULT:|
|00004550| 0a 20 20 20 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e |. com|mand lin|
|00004560| 65 73 0a 5c 65 6e 64 7b | 76 65 72 62 61 74 69 6d |es.\end{|verbatim|
|00004570| 7d 0a 0a 49 66 20 74 68 | 65 20 7b 5c 74 74 20 2e |}..If th|e {\tt .|
|00004580| 44 45 46 41 55 4c 54 7d | 20 74 61 72 67 65 74 20 |DEFAULT}| target |
|00004590| 69 73 20 67 69 76 65 6e | 20 6e 6f 20 63 6f 6d 6d |is given| no comm|
|000045a0| 61 6e 64 73 20 28 61 73 | 20 69 73 20 74 68 65 20 |ands (as| is the |
|000045b0| 64 65 66 61 75 6c 74 0a | 62 65 68 61 76 69 6f 75 |default.|behaviou|
|000045c0| 72 29 20 74 68 65 6e 20 | 74 68 65 20 4d 61 6b 65 |r) then |the Make|
|000045d0| 20 70 72 6f 67 72 61 6d | 20 77 69 6c 6c 20 74 65 | program| will te|
|000045e0| 72 6d 69 6e 61 74 65 20 | 77 69 74 68 20 61 6e 20 |rminate |with an |
|000045f0| 65 72 72 6f 72 20 77 68 | 65 6e 65 76 65 72 20 69 |error wh|enever i|
|00004600| 74 0a 65 6e 63 6f 75 6e | 74 65 72 73 20 61 20 74 |t.encoun|ters a t|
|00004610| 61 72 67 65 74 20 6e 61 | 6d 65 20 74 68 61 74 20 |arget na|me that |
|00004620| 63 61 6e 6e 6f 74 20 62 | 65 20 6d 61 64 65 2e 0a |cannot b|e made..|
|00004630| 0a 0a 5c 73 75 62 73 65 | 63 74 69 6f 6e 7b 42 75 |..\subse|ction{Bu|
|00004640| 69 6c 74 69 6e 20 52 75 | 6c 65 73 7d 0a 0a 42 79 |iltin Ru|les}..By|
|00004650| 20 64 65 66 61 75 6c 74 | 2c 20 74 68 65 20 4d 61 | default|, the Ma|
|00004660| 6b 65 20 70 72 6f 67 72 | 61 6d 20 6b 6e 6f 77 73 |ke progr|am knows|
|00004670| 20 73 65 76 65 72 61 6c | 20 62 75 69 6c 74 69 6e | several| builtin|
|00004680| 20 70 61 74 74 65 72 6e | 20 72 75 6c 65 73 2e 20 | pattern| rules. |
|00004690| 20 48 65 72 65 20 69 73 | 0a 61 20 6c 69 73 74 20 | Here is|.a list |
|000046a0| 6f 66 20 74 68 65 69 72 | 20 64 65 66 69 6e 69 74 |of their| definit|
|000046b0| 69 6f 6e 73 3a 0a 0a 5c | 62 65 67 69 6e 7b 76 65 |ions:..\|begin{ve|
|000046c0| 72 62 61 74 69 6d 7d 0a | 25 2c 76 3a 0a 0a 25 2e |rbatim}.|%,v:..%.|
|000046d0| 61 3a 20 52 43 53 2f 25 | 2e 61 2c 76 0a 20 20 20 |a: RCS/%|.a,v. |
|000046e0| 20 24 28 43 4f 29 20 2d | 75 20 24 40 0a 25 2e 61 | $(CO) -|u $@.%.a|
|000046f0| 3a 0a 0a 25 2e 63 3a 20 | 52 43 53 2f 25 2e 63 2c |:..%.c: |RCS/%.c,|
|00004700| 76 0a 20 20 20 20 24 28 | 43 4f 29 20 2d 75 20 24 |v. $(|CO) -u $|
|00004710| 40 0a 25 2e 63 3a 0a 0a | 25 2e 68 3a 20 52 43 53 |@.%.c:..|%.h: RCS|
|00004720| 2f 25 2e 68 2c 76 0a 20 | 20 20 20 24 28 43 4f 29 |/%.h,v. | $(CO)|
|00004730| 20 2d 75 20 24 40 0a 25 | 2e 68 3a 0a 0a 25 2e 69 | -u $@.%|.h:..%.i|
|00004740| 3a 20 52 43 53 2f 25 2e | 69 2c 76 0a 20 20 20 20 |: RCS/%.|i,v. |
|00004750| 24 28 43 4f 29 20 2d 75 | 20 24 40 0a 25 2e 69 3a |$(CO) -u| $@.%.i:|
|00004760| 0a 0a 25 2e 6f 3a 20 25 | 2e 63 0a 20 20 20 20 24 |..%.o: %|.c. $|
|00004770| 28 43 43 29 20 2d 63 20 | 24 28 43 46 4c 41 47 53 |(CC) -c |$(CFLAGS|
|00004780| 29 20 2d 6f 20 24 40 20 | 24 3c 0a 0a 25 2e 6f 3a |) -o $@ |$<..%.o:|
|00004790| 20 25 2e 61 0a 20 20 20 | 20 24 28 41 53 29 20 2d | %.a. | $(AS) -|
|000047a0| 63 20 24 28 41 46 4c 41 | 47 53 29 20 2d 6f 20 24 |c $(AFLA|GS) -o $|
|000047b0| 40 20 24 3c 0a 5c 65 6e | 64 7b 76 65 72 62 61 74 |@ $<.\en|d{verbat|
|000047c0| 69 6d 7d 0a 0a 4e 6f 74 | 69 63 65 20 74 68 61 74 |im}..Not|ice that|
|000047d0| 20 61 73 73 65 6d 62 6c | 79 20 61 6e 64 20 43 20 | assembl|y and C |
|000047e0| 6c 61 6e 67 75 61 67 65 | 20 68 65 61 64 65 72 73 |language| headers|
|000047f0| 20 61 6e 64 20 73 6f 75 | 72 63 65 20 66 69 6c 65 | and sou|rce file|
|00004800| 73 20 68 61 76 65 20 6e | 6f 0a 64 65 70 65 6e 64 |s have n|o.depend|
|00004810| 65 6e 63 69 65 73 20 61 | 6e 64 20 72 65 71 75 69 |encies a|nd requi|
|00004820| 72 65 20 6e 6f 20 63 6f | 6d 6d 61 6e 64 73 20 74 |re no co|mmands t|
|00004830| 6f 20 62 65 20 65 78 65 | 63 75 74 65 64 20 69 6e |o be exe|cuted in|
|00004840| 20 6f 72 64 65 72 20 74 | 6f 20 6d 61 6b 65 20 74 | order t|o make t|
|00004850| 68 65 6d 0a 75 70 2d 74 | 6f 2d 64 61 74 65 2e 20 |hem.up-t|o-date. |
|00004860| 20 55 73 65 72 20 64 65 | 66 69 6e 65 64 20 72 75 | User de|fined ru|
|00004870| 6c 65 73 20 73 68 6f 75 | 6c 64 20 62 65 20 61 64 |les shou|ld be ad|
|00004880| 64 65 64 20 74 6f 20 74 | 68 65 20 4d 61 6b 65 66 |ded to t|he Makef|
|00004890| 69 6c 65 20 69 66 20 74 | 68 61 74 20 69 73 0a 6e |ile if t|hat is.n|
|000048a0| 6f 74 20 74 68 65 20 63 | 61 73 65 2e 0a 0a 5c 73 |ot the c|ase...\s|
|000048b0| 75 62 73 65 63 74 69 6f | 6e 7b 55 73 65 72 20 44 |ubsectio|n{User D|
|000048c0| 65 66 69 6e 65 64 20 42 | 75 69 6c 74 69 6e 20 52 |efined B|uiltin R|
|000048d0| 75 6c 65 73 7d 0a 0a 49 | 66 20 74 68 65 20 75 73 |ules}..I|f the us|
|000048e0| 65 72 20 6e 65 65 64 73 | 20 74 6f 20 73 75 70 70 |er needs| to supp|
|000048f0| 6c 65 6d 65 6e 74 20 74 | 68 65 20 69 6e 74 65 72 |lement t|he inter|
|00004900| 6e 61 6c 20 62 75 69 6c | 74 69 6e 20 72 75 6c 65 |nal buil|tin rule|
|00004910| 73 20 77 69 74 68 20 61 | 64 64 69 74 69 6f 6e 0a |s with a|ddition.|
|00004920| 73 75 66 66 69 78 20 72 | 75 6c 65 73 20 61 6e 64 |suffix r|ules and|
|00004930| 20 76 61 72 69 61 62 6c | 65 20 64 65 66 69 6e 69 | variabl|e defini|
|00004940| 74 69 6f 6e 73 2c 20 74 | 68 65 79 20 63 61 6e 20 |tions, t|hey can |
|00004950| 62 65 20 64 65 63 6c 61 | 72 65 64 20 69 6e 20 6f |be decla|red in o|
|00004960| 6e 65 20 6f 66 20 74 77 | 6f 0a 66 69 6c 65 73 3a |ne of tw|o.files:|
|00004970| 20 20 7b 5c 74 74 20 53 | 3a 62 75 69 6c 74 69 6e | {\tt S|:builtin|
|00004980| 73 2e 6d 61 6b 65 7d 20 | 6f 72 20 7b 5c 74 74 20 |s.make} |or {\tt |
|00004990| 62 75 69 6c 74 69 6e 73 | 2e 6d 61 6b 65 7d 2e 20 |builtins|.make}. |
|000049a0| 20 49 66 20 74 68 65 79 | 20 65 78 69 73 74 2c 20 | If they| exist, |
|000049b0| 74 68 65 73 65 0a 74 77 | 6f 20 66 69 6c 65 73 20 |these.tw|o files |
|000049c0| 61 72 65 20 72 65 61 64 | 20 28 69 6e 20 74 68 65 |are read| (in the|
|000049d0| 20 6f 72 64 65 72 20 6c | 69 73 74 65 64 20 61 62 | order l|isted ab|
|000049e0| 6f 76 65 29 20 62 65 66 | 6f 72 65 20 74 68 65 20 |ove) bef|ore the |
|000049f0| 4d 61 6b 65 66 69 6c 65 | 20 62 79 20 74 68 65 0a |Makefile| by the.|
|00004a00| 4d 61 6b 65 20 70 72 6f | 67 72 61 6d 2e 20 20 41 |Make pro|gram. A|
|00004a10| 6c 6c 20 72 75 6c 65 73 | 20 61 6e 64 20 76 61 72 |ll rules| and var|
|00004a20| 69 61 62 6c 65 73 20 69 | 6e 20 74 68 65 73 65 20 |iables i|n these |
|00004a30| 66 69 6c 65 73 20 6d 61 | 79 20 62 65 20 72 65 66 |files ma|y be ref|
|00004a40| 65 72 65 6e 63 65 64 20 | 28 6f 72 0a 6f 76 65 72 |erenced |(or.over|
|00004a50| 72 69 64 64 65 6e 29 20 | 69 6e 20 74 68 65 20 4d |ridden) |in the M|
|00004a60| 61 6b 65 66 69 6c 65 2e | 0a 0a 0a 5c 73 65 63 74 |akefile.|...\sect|
|00004a70| 69 6f 6e 7b 56 61 72 69 | 61 62 6c 65 73 20 61 6e |ion{Vari|ables an|
|00004a80| 64 20 4d 61 63 72 6f 73 | 7d 0a 0a 5c 6c 61 62 65 |d Macros|}..\labe|
|00004a90| 6c 7b 76 61 72 61 73 73 | 7d 0a 0a 56 61 72 69 61 |l{varass|}..Varia|
|00004aa0| 62 6c 65 73 20 63 61 6e | 20 63 6f 6e 74 61 69 6e |bles can| contain|
|00004ab0| 20 6d 61 63 72 6f 20 64 | 65 66 69 6e 69 74 69 6f | macro d|efinitio|
|00004ac0| 6e 73 20 6f 66 20 6d 75 | 6c 74 69 70 6c 65 20 66 |ns of mu|ltiple f|
|00004ad0| 69 6c 65 6e 61 6d 65 73 | 20 6f 72 20 6f 74 68 65 |ilenames| or othe|
|00004ae0| 72 0a 74 65 78 74 2e 20 | 20 54 68 65 79 20 61 72 |r.text. | They ar|
|00004af0| 65 20 75 73 65 66 75 6c | 20 66 6f 72 20 72 65 70 |e useful| for rep|
|00004b00| 6c 61 63 69 6e 67 20 6d | 75 6c 74 69 70 6c 65 20 |lacing m|ultiple |
|00004b10| 6f 63 63 75 72 72 65 6e | 63 65 73 20 6f 66 20 74 |occurren|ces of t|
|00004b20| 68 65 20 73 61 6d 65 20 | 62 6f 64 79 0a 6f 66 20 |he same |body.of |
|00004b30| 74 65 78 74 20 77 69 74 | 68 20 72 65 66 65 72 65 |text wit|h refere|
|00004b40| 6e 63 65 73 20 74 6f 20 | 61 20 76 61 72 69 61 62 |nces to |a variab|
|00004b50| 6c 65 20 28 6d 61 63 72 | 6f 20 65 78 70 61 6e 73 |le (macr|o expans|
|00004b60| 69 6f 6e 29 2e 20 20 41 | 20 76 61 72 69 61 62 6c |ion). A| variabl|
|00004b70| 65 20 69 73 0a 64 65 66 | 69 6e 65 64 20 69 6e 20 |e is.def|ined in |
|00004b80| 74 68 65 20 4d 61 6b 65 | 66 69 6c 65 20 77 69 74 |the Make|file wit|
|00004b90| 68 20 61 6e 20 61 73 73 | 69 67 6e 6d 65 6e 74 20 |h an ass|ignment |
|00004ba0| 73 74 61 74 65 6d 65 6e | 74 2e 20 20 4f 6e 6c 79 |statemen|t. Only|
|00004bb0| 20 74 68 65 20 6c 61 73 | 74 0a 61 73 73 69 67 6e | the las|t.assign|
|00004bc0| 6d 65 6e 74 20 6f 66 20 | 61 20 76 61 72 69 61 62 |ment of |a variab|
|00004bd0| 6c 65 20 69 73 20 72 65 | 63 6f 67 6e 69 7a 65 64 |le is re|cognized|
|00004be0| 2c 20 62 65 63 61 75 73 | 65 20 74 68 65 20 72 75 |, becaus|e the ru|
|00004bf0| 6c 65 73 20 61 72 65 20 | 70 72 6f 63 65 73 73 65 |les are |processe|
|00004c00| 64 0a 61 66 74 65 72 20 | 74 68 65 20 65 6e 74 69 |d.after |the enti|
|00004c10| 72 65 20 4d 61 6b 65 66 | 69 6c 65 20 68 61 73 20 |re Makef|ile has |
|00004c20| 62 65 65 6e 20 69 6e 74 | 65 72 70 72 65 74 65 64 |been int|erpreted|
|00004c30| 20 69 6e 74 6f 20 69 6e | 74 65 72 6e 61 6c 20 72 | into in|ternal r|
|00004c40| 75 6c 65 73 20 62 79 20 | 74 68 65 0a 4d 61 6b 65 |ules by |the.Make|
|00004c50| 20 70 72 6f 67 72 61 6d | 2e 0a 0a 49 6e 20 61 20 | program|...In a |
|00004c60| 6d 61 6b 65 66 69 6c 65 | 2c 20 74 68 65 20 6c 69 |makefile|, the li|
|00004c70| 6e 65 3a 0a 0a 5c 62 65 | 67 69 6e 7b 76 65 72 62 |ne:..\be|gin{verb|
|00004c80| 61 74 69 6d 7d 0a 6d 79 | 76 61 72 69 61 62 6c 65 |atim}.my|variable|
|00004c90| 20 3d 20 73 6f 75 72 63 | 65 2e 63 20 68 65 61 64 | = sourc|e.c head|
|00004ca0| 65 72 2e 68 0a 5c 65 6e | 64 7b 76 65 72 62 61 74 |er.h.\en|d{verbat|
|00004cb0| 69 6d 7d 0a 0a 69 73 20 | 75 73 65 64 20 74 6f 20 |im}..is |used to |
|00004cc0| 61 73 73 69 67 6e 20 74 | 68 65 20 73 74 72 69 6e |assign t|he strin|
|00004cd0| 67 20 7b 5c 74 74 20 73 | 6f 75 72 63 65 2e 63 20 |g {\tt s|ource.c |
|00004ce0| 68 65 61 64 65 72 2e 68 | 7d 20 74 6f 20 74 68 65 |header.h|} to the|
|00004cf0| 20 76 61 72 69 61 62 6c | 65 20 6e 61 6d 65 64 0a | variabl|e named.|
|00004d00| 7b 5c 74 74 20 6d 79 76 | 61 72 69 61 62 6c 65 7d |{\tt myv|ariable}|
|00004d10| 2e 20 20 49 6e 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |. In th|e follow|
|00004d20| 69 6e 67 20 72 75 6c 65 | 20 64 65 66 69 6e 69 74 |ing rule| definit|
|00004d30| 69 6f 6e 3a 0a 0a 5c 62 | 65 67 69 6e 7b 76 65 72 |ion:..\b|egin{ver|
|00004d40| 62 61 74 69 6d 7d 0a 74 | 61 72 67 65 74 2e 6f 3a |batim}.t|arget.o:|
|00004d50| 20 24 28 6d 79 76 61 72 | 69 61 62 6c 65 29 0a 5c | $(myvar|iable).\|
|00004d60| 65 6e 64 7b 76 65 72 62 | 61 74 69 6d 7d 0a 0a 74 |end{verb|atim}..t|
|00004d70| 68 65 20 5c 24 28 6d 79 | 76 61 72 69 61 62 6c 65 |he \$(my|variable|
|00004d80| 29 20 72 65 66 65 72 65 | 6e 63 65 20 69 73 20 65 |) refere|nce is e|
|00004d90| 78 70 61 6e 64 65 64 20 | 69 6e 74 6f 20 74 68 65 |xpanded |into the|
|00004da0| 20 73 74 72 69 6e 67 20 | 61 73 73 69 67 6e 65 64 | string |assigned|
|00004db0| 20 74 6f 0a 7b 5c 74 74 | 20 6d 79 76 61 72 69 61 | to.{\tt| myvaria|
|00004dc0| 62 6c 65 7d 2e 20 20 49 | 66 20 74 68 65 20 6d 61 |ble}. I|f the ma|
|00004dd0| 63 72 6f 20 65 78 70 61 | 6e 73 69 6f 6e 20 63 6f |cro expa|nsion co|
|00004de0| 6e 74 61 69 6e 73 20 66 | 75 72 74 68 65 72 20 72 |ntains f|urther r|
|00004df0| 65 66 65 72 65 6e 63 65 | 73 20 74 6f 20 6f 74 68 |eference|s to oth|
|00004e00| 65 72 0a 76 61 72 69 61 | 62 6c 65 73 2c 20 74 68 |er.varia|bles, th|
|00004e10| 65 6e 20 74 68 65 79 20 | 61 72 65 20 61 6c 73 6f |en they |are also|
|00004e20| 20 72 65 63 75 72 73 69 | 76 65 6c 79 20 65 78 70 | recursi|vely exp|
|00004e30| 61 6e 64 65 64 20 75 6e | 74 69 6c 20 74 68 65 20 |anded un|til the |
|00004e40| 72 65 73 75 6c 74 69 6e | 67 0a 73 74 72 69 6e 67 |resultin|g.string|
|00004e50| 20 69 73 20 66 75 6c 6c | 79 20 65 78 70 61 6e 64 | is full|y expand|
|00004e60| 65 64 2e 20 20 55 6e 64 | 65 66 69 6e 65 64 20 6d |ed. Und|efined m|
|00004e70| 61 63 72 6f 73 20 61 72 | 65 20 65 78 70 61 6e 64 |acros ar|e expand|
|00004e80| 65 64 20 74 6f 20 6e 6f | 74 68 69 6e 67 20 28 65 |ed to no|thing (e|
|00004e90| 6d 70 74 79 0a 73 74 72 | 69 6e 67 73 29 2e 20 20 |mpty.str|ings). |
|00004ea0| 5c 24 5c 7b 6d 79 76 61 | 72 69 61 62 6c 65 5c 7d |\$\{myva|riable\}|
|00004eb0| 20 69 73 20 65 71 75 69 | 76 61 6c 65 6e 74 20 74 | is equi|valent t|
|00004ec0| 6f 20 5c 24 28 6d 79 76 | 61 72 69 61 62 6c 65 29 |o \$(myv|ariable)|
|00004ed0| 2e 0a 46 6f 72 20 73 69 | 6e 67 6c 65 20 63 68 61 |..For si|ngle cha|
|00004ee0| 72 61 63 74 65 72 20 76 | 61 72 69 61 62 6c 65 20 |racter v|ariable |
|00004ef0| 6e 61 6d 65 73 2c 20 74 | 68 65 20 70 61 72 65 6e |names, t|he paren|
|00004f00| 74 68 65 73 65 73 20 6f | 72 20 62 72 61 63 65 73 |theses o|r braces|
|00004f10| 20 61 72 65 20 6e 6f 74 | 0a 6e 65 63 65 73 73 61 | are not|.necessa|
|00004f20| 72 79 20 74 6f 20 65 78 | 70 61 6e 64 20 74 68 65 |ry to ex|pand the|
|00004f30| 20 6d 61 63 72 6f 3b 20 | 74 68 65 20 73 69 6e 67 | macro; |the sing|
|00004f40| 6c 65 20 63 68 61 72 61 | 63 74 65 72 20 6d 61 79 |le chara|cter may|
|00004f50| 20 69 6d 6d 65 64 69 61 | 74 65 6c 79 20 66 6f 6c | immedia|tely fol|
|00004f60| 6c 6f 77 0a 74 68 65 20 | 7b 5c 74 74 5c 24 20 7d |low.the |{\tt\$ }|
|00004f70| 2e 0a 0a 41 64 64 69 74 | 69 6f 6e 61 6c 20 74 65 |...Addit|ional te|
|00004f80| 78 74 20 63 61 6e 20 62 | 65 20 63 6f 6e 63 61 74 |xt can b|e concat|
|00004f90| 65 6e 61 74 65 64 20 74 | 6f 20 74 68 65 20 65 6e |enated t|o the en|
|00004fa0| 64 20 6f 66 20 74 68 65 | 20 76 61 6c 75 65 20 6f |d of the| value o|
|00004fb0| 66 20 61 6e 20 65 78 69 | 73 74 69 6e 67 0a 76 61 |f an exi|sting.va|
|00004fc0| 72 69 61 62 6c 65 20 62 | 79 20 75 73 69 6e 67 20 |riable b|y using |
|00004fd0| 74 68 65 20 7b 5c 74 74 | 20 2b 3d 7d 20 6f 70 65 |the {\tt| +=} ope|
|00004fe0| 72 61 74 6f 72 2c 20 6c | 69 6b 65 20 74 68 69 73 |rator, l|ike this|
|00004ff0| 3a 0a 0a 5c 62 65 67 69 | 6e 7b 76 65 72 62 61 74 |:..\begi|n{verbat|
|00005000| 69 6d 7d 0a 61 6c 70 68 | 61 20 3d 20 61 62 63 0a |im}.alph|a = abc.|
|00005010| 61 6c 70 68 61 20 2b 3d | 20 64 65 66 0a 5c 65 6e |alpha +=| def.\en|
|00005020| 64 7b 76 65 72 62 61 74 | 69 6d 7d 0a 0a 54 68 65 |d{verbat|im}..The|
|00005030| 20 72 65 73 75 6c 74 20 | 6f 66 20 7b 5c 74 74 5c | result |of {\tt\|
|00005040| 24 28 61 6c 70 68 61 29 | 7d 20 69 73 20 6e 6f 77 |$(alpha)|} is now|
|00005050| 20 7b 5c 74 74 20 61 62 | 63 20 64 65 66 7d 2e 20 | {\tt ab|c def}. |
|00005060| 20 4e 6f 74 69 63 65 20 | 74 68 65 20 73 70 61 63 | Notice |the spac|
|00005070| 65 0a 69 6e 73 65 72 74 | 65 64 20 61 74 20 74 68 |e.insert|ed at th|
|00005080| 65 20 70 6f 69 6e 74 20 | 6f 66 20 63 6f 6e 63 61 |e point |of conca|
|00005090| 74 65 6e 61 74 69 6f 6e | 2e 20 20 54 68 69 73 20 |tenation|. This |
|000050a0| 65 6e 73 75 72 65 73 20 | 74 68 61 74 20 66 69 6c |ensures |that fil|
|000050b0| 65 6e 61 6d 65 73 20 61 | 72 65 0a 6e 6f 74 20 73 |enames a|re.not s|
|000050c0| 70 6c 69 74 20 62 65 74 | 77 65 65 6e 20 64 69 66 |plit bet|ween dif|
|000050d0| 66 65 72 65 6e 74 20 6c | 69 6e 65 73 2e 0a 0a 49 |ferent l|ines...I|
|000050e0| 74 20 69 73 20 70 6f 73 | 73 69 62 6c 65 20 74 6f |t is pos|sible to|
|000050f0| 20 64 65 66 69 6e 65 20 | 61 20 76 61 72 69 61 62 | define |a variab|
|00005100| 6c 65 20 77 68 69 63 68 | 20 72 65 73 75 6c 74 73 |le which| results|
|00005110| 20 69 6e 20 61 6e 20 69 | 6e 66 69 6e 69 74 65 6c | in an i|nfinitel|
|00005120| 79 0a 72 65 63 75 72 73 | 69 76 65 20 6d 61 63 72 |y.recurs|ive macr|
|00005130| 6f 20 65 78 70 61 6e 73 | 69 6f 6e 2e 20 20 54 68 |o expans|ion. Th|
|00005140| 69 73 20 69 73 20 69 6c | 6c 65 67 61 6c 2c 20 61 |is is il|legal, a|
|00005150| 6e 64 20 69 74 20 77 69 | 6c 6c 20 72 65 73 75 6c |nd it wi|ll resul|
|00005160| 74 20 69 6e 20 61 6e 20 | 65 72 72 6f 72 0a 77 68 |t in an |error.wh|
|00005170| 65 6e 20 74 68 61 74 20 | 76 61 72 69 61 62 6c 65 |en that |variable|
|00005180| 20 69 73 20 72 65 66 65 | 72 65 6e 63 65 64 2e 0a | is refe|renced..|
|00005190| 0a 41 20 76 61 72 69 61 | 62 6c 65 20 63 61 6e 20 |.A varia|ble can |
|000051a0| 62 65 20 64 65 66 69 6e | 65 64 2c 20 73 75 63 68 |be defin|ed, such|
|000051b0| 20 74 68 61 74 20 69 74 | 73 20 76 61 6c 75 65 20 | that it|s value |
|000051c0| 69 73 20 65 78 70 61 6e | 64 65 64 20 69 6d 6d 65 |is expan|ded imme|
|000051d0| 64 69 61 74 65 6c 79 20 | 61 74 0a 74 68 65 20 74 |diately |at.the t|
|000051e0| 69 6d 65 20 6f 66 20 61 | 73 73 69 67 6e 6d 65 6e |ime of a|ssignmen|
|000051f0| 74 2e 20 20 54 68 65 73 | 65 20 61 72 65 20 63 61 |t. Thes|e are ca|
|00005200| 6c 6c 65 64 20 73 69 6d | 70 6c 65 20 76 61 72 69 |lled sim|ple vari|
|00005210| 61 62 6c 65 73 2c 20 61 | 6e 64 20 74 68 65 79 20 |ables, a|nd they |
|00005220| 61 72 65 0a 61 73 73 69 | 67 6e 65 64 20 77 69 74 |are.assi|gned wit|
|00005230| 68 20 74 68 65 20 7b 5c | 74 74 20 3a 3d 7d 20 6f |h the {\|tt :=} o|
|00005240| 70 65 72 61 74 6f 72 2e | 20 20 4e 6f 74 65 20 74 |perator.| Note t|
|00005250| 68 61 74 20 77 68 65 6e | 20 61 20 73 69 6d 70 6c |hat when| a simpl|
|00005260| 65 20 76 61 72 69 61 62 | 6c 65 20 69 73 0a 61 73 |e variab|le is.as|
|00005270| 73 69 67 6e 65 64 2c 20 | 61 6e 79 20 6f 74 68 65 |signed, |any othe|
|00005280| 72 20 72 65 66 65 72 65 | 6e 63 65 73 20 74 6f 20 |r refere|nces to |
|00005290| 76 61 72 69 61 62 6c 65 | 73 20 77 69 6c 6c 20 65 |variable|s will e|
|000052a0| 78 70 61 6e 64 20 74 6f | 20 74 68 65 69 72 20 76 |xpand to| their v|
|000052b0| 61 6c 75 65 20 61 73 0a | 61 73 73 69 67 6e 65 64 |alue as.|assigned|
|000052c0| 20 61 62 6f 76 65 20 74 | 68 65 20 6c 69 6e 65 20 | above t|he line |
|000052d0| 6f 66 20 74 68 65 20 73 | 69 6d 70 6c 65 20 76 61 |of the s|imple va|
|000052e0| 72 69 61 62 6c 65 20 62 | 65 69 6e 67 20 61 73 73 |riable b|eing ass|
|000052f0| 69 67 6e 65 64 2e 20 20 | 48 65 72 65 20 69 73 20 |igned. |Here is |
|00005300| 61 6e 0a 65 78 61 6d 70 | 6c 65 3a 0a 0a 5c 62 65 |an.examp|le:..\be|
|00005310| 67 69 6e 7b 76 65 72 62 | 61 74 69 6d 7d 0a 73 69 |gin{verb|atim}.si|
|00005320| 6d 70 6c 65 76 61 72 20 | 3a 3d 20 24 28 6d 79 76 |mplevar |:= $(myv|
|00005330| 61 72 69 61 62 6c 65 29 | 0a 5c 65 6e 64 7b 76 65 |ariable)|.\end{ve|
|00005340| 72 62 61 74 69 6d 7d 0a | 0a 54 68 65 20 6f 6e 6c |rbatim}.|.The onl|
|00005350| 79 20 64 69 66 66 65 72 | 65 6e 63 65 20 62 65 74 |y differ|ence bet|
|00005360| 77 65 65 6e 20 61 6e 20 | 6f 72 64 69 6e 61 72 79 |ween an |ordinary|
|00005370| 20 76 61 72 69 61 62 6c | 65 20 61 6e 64 20 61 20 | variabl|e and a |
|00005380| 73 69 6d 70 6c 65 20 76 | 61 72 69 61 62 6c 65 20 |simple v|ariable |
|00005390| 69 73 0a 74 68 61 74 20 | 74 68 65 20 76 61 6c 75 |is.that |the valu|
|000053a0| 65 20 6f 66 20 74 68 65 | 20 73 69 6d 70 6c 65 20 |e of the| simple |
|000053b0| 76 61 72 69 61 62 6c 65 | 20 69 73 20 65 78 70 61 |variable| is expa|
|000053c0| 6e 64 65 64 20 6f 6e 6c | 79 20 6f 6e 63 65 20 64 |nded onl|y once d|
|000053d0| 75 72 69 6e 67 20 69 74 | 73 0a 61 73 73 69 67 6e |uring it|s.assign|
|000053e0| 6d 65 6e 74 2c 20 77 68 | 65 72 65 61 73 20 74 68 |ment, wh|ereas th|
|000053f0| 65 20 76 61 6c 75 65 20 | 6f 66 20 61 6e 20 6f 72 |e value |of an or|
|00005400| 64 69 6e 61 72 79 20 76 | 61 72 69 61 62 6c 65 20 |dinary v|ariable |
|00005410| 6e 65 65 64 73 20 74 6f | 20 62 65 20 65 78 70 61 |needs to| be expa|
|00005420| 6e 64 65 64 0a 65 76 65 | 72 79 20 74 69 6d 65 20 |nded.eve|ry time |
|00005430| 69 74 20 69 73 20 72 65 | 66 65 72 65 6e 63 65 64 |it is re|ferenced|
|00005440| 2e 20 20 52 65 66 65 72 | 65 6e 63 69 6e 67 20 61 |. Refer|encing a|
|00005450| 20 73 69 6d 70 6c 65 20 | 76 61 72 69 61 62 6c 65 | simple |variable|
|00005460| 20 72 65 71 75 69 72 65 | 73 20 6f 6e 6c 79 20 61 | require|s only a|
|00005470| 0a 73 69 6d 70 6c 65 20 | 73 75 62 73 74 69 74 75 |.simple |substitu|
|00005480| 74 69 6f 6e 2c 20 77 68 | 65 72 65 61 73 20 72 65 |tion, wh|ereas re|
|00005490| 66 65 72 65 6e 63 69 6e | 67 20 61 6e 20 6f 72 64 |ferencin|g an ord|
|000054a0| 69 6e 61 72 79 20 76 61 | 72 69 61 62 6c 65 20 72 |inary va|riable r|
|000054b0| 65 71 75 69 72 65 73 20 | 61 0a 72 65 63 75 72 73 |equires |a.recurs|
|000054c0| 69 76 65 20 6d 61 63 72 | 6f 20 65 78 70 61 6e 73 |ive macr|o expans|
|000054d0| 69 6f 6e 2c 20 77 68 69 | 63 68 20 72 65 71 75 69 |ion, whi|ch requi|
|000054e0| 72 65 73 20 6d 6f 72 65 | 20 77 6f 72 6b 20 28 6d |res more| work (m|
|000054f0| 65 6d 6f 72 79 2c 20 73 | 74 61 63 6b 2c 20 61 6e |emory, s|tack, an|
|00005500| 64 20 43 50 55 0a 69 6e | 73 74 72 75 63 74 69 6f |d CPU.in|structio|
|00005510| 6e 73 29 2e 0a 0a 56 61 | 72 69 61 62 6c 65 73 20 |ns)...Va|riables |
|00005520| 72 65 66 65 72 65 6e 63 | 65 64 20 69 6e 20 74 68 |referenc|ed in th|
|00005530| 65 20 74 61 72 67 65 74 | 20 61 6e 64 20 64 65 70 |e target| and dep|
|00005540| 65 6e 64 65 6e 63 69 65 | 73 20 6f 66 20 61 20 72 |endencie|s of a r|
|00005550| 75 6c 65 20 61 72 65 20 | 65 78 70 61 6e 64 65 64 |ule are |expanded|
|00005560| 0a 64 75 72 69 6e 67 20 | 74 68 65 20 72 75 6c 65 |.during |the rule|
|00005570| 20 64 65 66 69 6e 69 74 | 69 6f 6e 2e 20 20 56 61 | definit|ion. Va|
|00005580| 72 69 61 62 6c 65 73 20 | 72 65 66 65 72 65 6e 63 |riables |referenc|
|00005590| 65 64 20 69 6e 20 65 61 | 63 68 20 63 6f 6d 6d 61 |ed in ea|ch comma|
|000055a0| 6e 64 20 6c 69 6e 65 0a | 61 73 73 6f 63 69 61 74 |nd line.|associat|
|000055b0| 65 64 20 77 69 74 68 20 | 61 20 72 75 6c 65 20 61 |ed with |a rule a|
|000055c0| 72 65 20 65 78 70 61 6e | 64 65 64 20 77 68 65 6e |re expan|ded when|
|000055d0| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e | the com|mand lin|
|000055e0| 65 20 69 73 20 65 78 65 | 63 75 74 65 64 2e 0a 0a |e is exe|cuted...|
|000055f0| 42 6f 74 68 20 24 5c 62 | 61 63 6b 73 6c 61 73 68 |Both $\b|ackslash|
|00005600| 24 5c 24 20 61 6e 64 20 | 5c 24 5c 24 20 65 78 70 |$\$ and |\$\$ exp|
|00005610| 61 6e 64 20 74 6f 20 74 | 68 65 20 63 68 61 72 61 |and to t|he chara|
|00005620| 63 74 65 72 20 5c 24 2c | 20 62 75 74 20 74 68 65 |cter \$,| but the|
|00005630| 20 6c 61 74 74 65 72 20 | 69 73 0a 72 65 63 6f 6d | latter |is.recom|
|00005640| 6d 65 6e 64 65 64 2e 0a | 0a 0a 5c 73 75 62 73 65 |mended..|..\subse|
|00005650| 63 74 69 6f 6e 7b 41 75 | 74 6f 6d 61 74 69 63 20 |ction{Au|tomatic |
|00005660| 56 61 72 69 61 62 6c 65 | 73 7d 0a 0a 54 68 65 72 |Variable|s}..Ther|
|00005670| 65 20 69 73 20 61 20 73 | 65 74 20 6f 66 20 76 61 |e is a s|et of va|
|00005680| 72 69 61 62 6c 65 73 20 | 74 68 61 74 20 61 72 65 |riables |that are|
|00005690| 20 61 75 74 6f 6d 61 74 | 69 63 61 6c 6c 79 20 64 | automat|ically d|
|000056a0| 65 66 69 6e 65 64 20 61 | 74 20 72 75 6e 74 69 6d |efined a|t runtim|
|000056b0| 65 20 62 79 0a 74 68 65 | 20 4d 61 6b 65 20 70 72 |e by.the| Make pr|
|000056c0| 6f 67 72 61 6d 2e 0a 0a | 0a 5c 62 65 67 69 6e 7b |ogram...|.\begin{|
|000056d0| 74 61 62 75 6c 61 72 7d | 7b 6c 6c 7d 0a 5c 24 40 |tabular}|{ll}.\$@|
|000056e0| 09 09 26 20 65 78 70 61 | 6e 64 73 20 74 6f 3a 20 |..& expa|nds to: |
|000056f0| 74 61 72 67 65 74 20 66 | 69 6c 65 6e 61 6d 65 20 |target f|ilename |
|00005700| 5c 5c 0a 5c 24 2a 09 09 | 26 20 65 78 70 61 6e 64 |\\.\$*..|& expand|
|00005710| 73 20 74 6f 3a 20 74 61 | 72 67 65 74 20 66 69 6c |s to: ta|rget fil|
|00005720| 65 6e 61 6d 65 20 77 69 | 74 68 6f 75 74 20 69 74 |ename wi|thout it|
|00005730| 73 20 73 75 66 66 69 78 | 20 5c 5c 0a 5c 24 3c 09 |s suffix| \\.\$<.|
|00005740| 09 26 20 65 78 70 61 6e | 64 73 20 74 6f 3a 20 74 |.& expan|ds to: t|
|00005750| 68 65 20 66 69 72 73 74 | 20 64 65 70 65 6e 64 65 |he first| depende|
|00005760| 6e 74 20 66 69 6c 65 6e | 61 6d 65 20 5c 5c 0a 5c |nt filen|ame \\.\|
|00005770| 24 5c 5e 09 26 20 65 78 | 70 61 6e 64 73 20 74 6f |$\^.& ex|pands to|
|00005780| 3a 20 61 6c 6c 20 64 65 | 70 65 6e 64 65 6e 74 73 |: all de|pendents|
|00005790| 20 6f 66 20 74 61 72 67 | 65 74 20 6e 65 77 65 72 | of targ|et newer|
|000057a0| 20 74 68 61 6e 20 74 61 | 72 67 65 74 0a 09 28 6e | than ta|rget..(n|
|000057b0| 6f 74 20 69 6d 70 6c 65 | 6d 65 6e 74 65 64 29 20 |ot imple|mented) |
|000057c0| 5c 5c 0a 5c 24 5c 25 09 | 26 20 65 78 70 61 6e 64 |\\.\$\%.|& expand|
|000057d0| 73 20 74 6f 3a 20 64 65 | 70 65 6e 64 65 6e 74 20 |s to: de|pendent |
|000057e0| 6d 65 6d 62 65 72 20 6f | 66 20 74 68 65 20 74 61 |member o|f the ta|
|000057f0| 72 67 65 74 20 61 72 63 | 68 69 76 65 20 28 6e 6f |rget arc|hive (no|
|00005800| 74 20 69 6d 70 6c 65 6d | 65 6e 74 65 64 29 20 5c |t implem|ented) \|
|00005810| 5c 0a 5c 24 3f 09 09 26 | 20 65 78 70 61 6e 64 73 |\.\$?..&| expands|
|00005820| 20 74 6f 3a 20 61 6c 6c | 20 64 65 70 65 6e 64 65 | to: all| depende|
|00005830| 6e 74 73 20 6f 66 20 74 | 68 65 20 74 61 72 67 65 |nts of t|he targe|
|00005840| 74 20 61 72 63 68 69 76 | 65 20 28 6e 6f 74 20 69 |t archiv|e (not i|
|00005850| 6d 70 6c 65 6d 65 6e 74 | 65 64 29 0a 5c 65 6e 64 |mplement|ed).\end|
|00005860| 7b 74 61 62 75 6c 61 72 | 7d 0a 0a 0a 54 68 65 20 |{tabular|}...The |
|00005870| 76 61 6c 75 65 20 6f 66 | 20 61 6e 20 61 75 74 6f |value of| an auto|
|00005880| 6d 61 74 69 63 20 76 61 | 72 69 61 62 6c 65 20 64 |matic va|riable d|
|00005890| 65 70 65 6e 64 73 20 6f | 6e 20 77 68 65 72 65 20 |epends o|n where |
|000058a0| 69 74 20 69 73 20 72 65 | 66 65 72 65 6e 63 65 64 |it is re|ferenced|
|000058b0| 2e 20 20 41 6e 0a 61 75 | 74 6f 6d 61 74 69 63 20 |. An.au|tomatic |
|000058c0| 76 61 72 69 61 62 6c 65 | 20 68 61 73 20 61 20 64 |variable| has a d|
|000058d0| 69 66 66 65 72 65 6e 74 | 20 76 61 6c 75 65 20 61 |ifferent| value a|
|000058e0| 63 63 6f 72 64 69 6e 67 | 20 74 6f 20 74 68 65 20 |ccording| to the |
|000058f0| 6f 62 6a 65 63 74 73 20 | 6f 66 20 74 68 65 0a 72 |objects |of the.r|
|00005900| 75 6c 65 20 74 6f 20 77 | 68 69 63 68 20 69 74 20 |ule to w|hich it |
|00005910| 61 70 70 6c 69 65 73 2e | 20 20 5c 24 40 20 64 6f |applies.| \$@ do|
|00005920| 65 73 20 6e 6f 74 20 65 | 78 70 61 6e 64 20 69 6e |es not e|xpand in|
|00005930| 20 74 68 65 20 74 61 72 | 67 65 74 20 70 6f 73 69 | the tar|get posi|
|00005940| 74 69 6f 6e 2e 0a 41 75 | 74 6f 6d 61 74 69 63 20 |tion..Au|tomatic |
|00005950| 76 61 72 69 61 62 6c 65 | 73 20 6d 61 6b 69 6e 67 |variable|s making|
|00005960| 20 72 65 66 65 72 65 6e | 63 65 20 74 6f 20 64 65 | referen|ce to de|
|00005970| 70 65 6e 64 65 6e 63 69 | 65 73 20 64 6f 20 6e 6f |pendenci|es do no|
|00005980| 74 20 6d 61 6b 65 20 73 | 65 6e 73 65 20 77 68 65 |t make s|ense whe|
|00005990| 6e 0a 75 73 65 64 20 69 | 6e 20 74 68 65 20 70 6c |n.used i|n the pl|
|000059a0| 61 63 65 20 6f 66 20 61 | 20 74 61 72 67 65 74 20 |ace of a| target |
|000059b0| 6e 61 6d 65 20 6f 72 20 | 64 65 70 65 6e 64 65 6e |name or |dependen|
|000059c0| 63 79 2c 20 73 6f 20 74 | 68 65 79 20 77 69 6c 6c |cy, so t|hey will|
|000059d0| 20 6e 6f 74 20 62 65 0a | 64 65 66 69 6e 65 64 20 | not be.|defined |
|000059e0| 77 68 65 6e 20 72 65 66 | 65 72 65 6e 63 65 64 20 |when ref|erenced |
|000059f0| 69 6e 20 74 68 6f 73 65 | 20 73 69 74 75 61 74 69 |in those| situati|
|00005a00| 6f 6e 73 3b 20 74 68 6f | 73 65 20 76 61 72 69 61 |ons; tho|se varia|
|00005a10| 62 6c 65 73 20 77 69 6c | 6c 20 65 78 70 61 6e 64 |bles wil|l expand|
|00005a20| 20 74 6f 0a 74 68 65 69 | 72 20 70 72 6f 70 65 72 | to.thei|r proper|
|00005a30| 20 76 61 6c 75 65 73 20 | 69 6e 20 63 6f 6d 6d 61 | values |in comma|
|00005a40| 6e 64 20 6c 69 6e 65 73 | 2e 0a 0a 49 66 20 61 20 |nd lines|...If a |
|00005a50| 7b 5c 74 74 20 44 7d 20 | 65 78 74 65 6e 73 69 6f |{\tt D} |extensio|
|00005a60| 6e 20 61 70 70 65 61 72 | 73 20 69 6e 20 74 68 65 |n appear|s in the|
|00005a70| 20 61 75 74 6f 6d 61 74 | 69 63 20 76 61 72 69 61 | automat|ic varia|
|00005a80| 62 6c 65 20 6e 61 6d 65 | 20 74 68 65 6e 20 6f 6e |ble name| then on|
|00005a90| 6c 79 20 74 68 65 0a 64 | 69 72 65 63 74 6f 72 79 |ly the.d|irectory|
|00005aa0| 20 70 61 72 74 20 6f 66 | 20 74 68 65 20 76 61 6c | part of| the val|
|00005ab0| 75 65 20 69 73 20 72 65 | 74 75 72 6e 65 64 2e 20 |ue is re|turned. |
|00005ac0| 20 41 20 7b 5c 74 74 20 | 46 7d 20 65 78 74 65 6e | A {\tt |F} exten|
|00005ad0| 73 69 6f 6e 20 72 65 74 | 75 72 6e 73 20 6f 6e 6c |sion ret|urns onl|
|00005ae0| 79 0a 74 68 65 20 66 69 | 6c 65 20 70 61 72 74 20 |y.the fi|le part |
|00005af0| 6f 66 20 74 68 65 20 76 | 61 6c 75 65 2e 20 20 54 |of the v|alue. T|
|00005b00| 68 75 73 2c 20 5c 76 65 | 72 62 7c 24 28 40 44 29 |hus, \ve|rb|$(@D)|
|00005b10| 7c 20 69 73 20 65 71 75 | 69 76 61 6c 65 6e 74 20 || is equ|ivalent |
|00005b20| 74 6f 0a 5c 76 65 72 62 | 7c 24 28 64 69 72 20 24 |to.\verb||$(dir $|
|00005b30| 40 29 7c 3b 20 69 6e 20 | 66 61 63 74 2c 20 61 6c |@)|; in |fact, al|
|00005b40| 6c 20 6f 66 20 74 68 65 | 73 65 20 65 78 74 65 6e |l of the|se exten|
|00005b50| 73 69 6f 6e 73 20 61 72 | 65 20 69 6d 70 6c 65 6d |sions ar|e implem|
|00005b60| 65 6e 74 65 64 20 61 73 | 0a 62 75 69 6c 74 69 6e |ented as|.builtin|
|00005b70| 20 6d 61 63 72 6f 73 2e | 0a 0a 0a 5c 73 75 62 73 | macros.|...\subs|
|00005b80| 65 63 74 69 6f 6e 7b 43 | 6f 6d 70 6c 65 78 20 56 |ection{C|omplex V|
|00005b90| 61 72 69 61 62 6c 65 20 | 6e 61 6d 65 73 20 61 6e |ariable |names an|
|00005ba0| 64 20 4d 61 63 72 6f 20 | 45 78 70 61 6e 73 69 6f |d Macro |Expansio|
|00005bb0| 6e 73 7d 0a 0a 52 61 72 | 65 6c 79 20 69 73 20 69 |ns}..Rar|ely is i|
|00005bc0| 74 20 6e 65 63 65 73 73 | 61 72 79 20 74 6f 20 61 |t necess|ary to a|
|00005bd0| 70 70 6c 79 20 77 68 61 | 74 20 69 73 20 64 69 73 |pply wha|t is dis|
|00005be0| 63 75 73 73 65 64 20 69 | 6e 20 74 68 69 73 20 74 |cussed i|n this t|
|00005bf0| 6f 70 69 63 2c 20 62 75 | 74 20 74 68 65 0a 69 6e |opic, bu|t the.in|
|00005c00| 66 6f 72 6d 61 74 69 6f | 6e 20 77 69 6c 6c 20 62 |formatio|n will b|
|00005c10| 65 20 67 69 76 65 6e 20 | 66 6f 72 20 63 6f 6d 70 |e given |for comp|
|00005c20| 6c 65 74 65 6e 65 73 73 | 2e 20 20 42 65 63 61 75 |leteness|. Becau|
|00005c30| 73 65 20 6f 66 20 74 68 | 65 20 72 65 63 75 72 73 |se of th|e recurs|
|00005c40| 69 76 65 0a 6e 61 74 75 | 72 65 20 6f 66 20 74 68 |ive.natu|re of th|
|00005c50| 65 20 6d 61 63 72 6f 20 | 65 78 70 61 6e 73 69 6f |e macro |expansio|
|00005c60| 6e 20 61 6c 67 6f 72 69 | 74 68 6d 2c 20 69 74 20 |n algori|thm, it |
|00005c70| 69 73 20 70 6f 73 73 69 | 62 6c 65 20 74 6f 20 63 |is possi|ble to c|
|00005c80| 6f 6e 73 74 72 75 63 74 | 0a 76 61 72 69 61 62 6c |onstruct|.variabl|
|00005c90| 65 73 20 74 68 61 74 20 | 61 63 74 20 6c 69 6b 65 |es that |act like|
|00005ca0| 20 61 72 72 61 79 73 20 | 28 6f 72 20 6f 74 68 65 | arrays |(or othe|
|00005cb0| 72 20 63 6f 6d 70 6c 65 | 78 20 64 61 74 61 20 74 |r comple|x data t|
|00005cc0| 79 70 65 73 29 20 74 68 | 72 6f 75 67 68 20 74 68 |ypes) th|rough th|
|00005cd0| 65 0a 75 73 65 20 6f 66 | 20 76 61 72 69 61 62 6c |e.use of| variabl|
|00005ce0| 65 20 6e 61 6d 65 73 20 | 74 68 61 74 20 74 68 65 |e names |that the|
|00005cf0| 6d 73 65 6c 76 65 73 20 | 63 6f 6e 74 61 69 6e 20 |mselves |contain |
|00005d00| 61 20 6e 65 73 74 65 64 | 20 6d 61 63 72 6f 20 65 |a nested| macro e|
|00005d10| 78 70 61 6e 73 69 6f 6e | 2e 0a 48 65 72 65 20 69 |xpansion|..Here i|
|00005d20| 73 20 61 6e 20 65 78 61 | 6d 70 6c 65 20 6f 66 20 |s an exa|mple of |
|00005d30| 61 6e 20 6f 62 73 63 75 | 72 65 20 73 6f 72 74 20 |an obscu|re sort |
|00005d40| 6f 66 20 4d 61 6b 65 66 | 69 6c 65 20 74 68 61 74 |of Makef|ile that|
|00005d50| 20 75 73 65 73 20 74 68 | 69 73 20 74 65 63 68 6e | uses th|is techn|
|00005d60| 69 71 75 65 3a 0a 0a 5c | 62 65 67 69 6e 7b 76 65 |ique:..\|begin{ve|
|00005d70| 72 62 61 74 69 6d 7d 0a | 41 31 09 3d 20 6f 6e 65 |rbatim}.|A1.= one|
|00005d80| 2e 63 0a 41 32 09 3d 20 | 74 77 6f 2e 63 0a 0a 74 |.c.A2.= |two.c..t|
|00005d90| 61 72 67 65 74 2e 6f 3a | 20 24 7b 41 24 28 42 29 |arget.o:| ${A$(B)|
|00005da0| 7d 0a 20 20 20 20 24 28 | 43 43 29 20 2d 63 20 24 |}. $(|CC) -c $|
|00005db0| 28 43 46 4c 41 47 53 29 | 20 2d 6f 20 24 40 20 24 |(CFLAGS)| -o $@ $|
|00005dc0| 3c 0a 5c 65 6e 64 7b 76 | 65 72 62 61 74 69 6d 7d |<.\end{v|erbatim}|
|00005dd0| 0a 0a 44 65 70 65 6e 64 | 69 6e 67 20 6f 6e 20 77 |..Depend|ing on w|
|00005de0| 68 65 74 68 65 72 20 74 | 68 65 20 76 61 6c 75 65 |hether t|he value|
|00005df0| 20 6f 66 20 74 68 65 20 | 76 61 72 69 61 62 6c 65 | of the |variable|
|00005e00| 20 7b 5c 74 74 20 42 7d | 20 69 73 20 73 65 74 20 | {\tt B}| is set |
|00005e10| 74 6f 20 7b 5c 74 74 20 | 31 7d 20 6f 72 0a 7b 5c |to {\tt |1} or.{\|
|00005e20| 74 74 20 32 7d 2c 20 74 | 68 65 20 74 61 72 67 65 |tt 2}, t|he targe|
|00005e30| 74 20 66 69 6c 65 20 77 | 69 6c 6c 20 64 65 70 65 |t file w|ill depe|
|00005e40| 6e 64 20 6f 6e 20 7b 5c | 74 74 20 6f 6e 65 2e 63 |nd on {\|tt one.c|
|00005e50| 7d 20 6f 72 20 7b 5c 74 | 74 20 74 77 6f 2e 63 7d |} or {\t|t two.c}|
|00005e60| 2e 0a 0a 41 6c 74 68 6f | 75 67 68 20 74 68 65 72 |...Altho|ugh ther|
|00005e70| 65 20 69 73 20 6e 6f 20 | 69 6e 74 65 72 6e 61 6c |e is no |internal|
|00005e80| 20 6c 69 6d 69 74 20 72 | 65 73 74 72 69 63 74 69 | limit r|estricti|
|00005e90| 6e 67 20 74 68 65 20 6c | 65 76 65 6c 20 74 6f 20 |ng the l|evel to |
|00005ea0| 77 68 69 63 68 20 6d 61 | 63 72 6f 73 0a 63 61 6e |which ma|cros.can|
|00005eb0| 20 62 65 20 6e 65 73 74 | 65 64 20 28 69 6e 20 74 | be nest|ed (in t|
|00005ec0| 68 65 20 76 61 72 69 61 | 62 6c 65 20 6e 61 6d 65 |he varia|ble name|
|00005ed0| 20 61 6e 64 20 69 74 73 | 20 76 61 6c 75 65 29 2c | and its| value),|
|00005ee0| 20 69 74 20 69 73 20 72 | 65 63 6f 6d 6d 65 6e 64 | it is r|ecommend|
|00005ef0| 65 64 20 74 68 61 74 0a | 6e 65 73 74 69 6e 67 20 |ed that.|nesting |
|00005f00| 62 65 20 6b 65 70 74 20 | 74 6f 20 61 20 6d 69 6e |be kept |to a min|
|00005f10| 69 6d 75 6d 20 74 6f 20 | 63 6f 6e 73 65 72 76 65 |imum to |conserve|
|00005f20| 20 6f 6e 20 6d 65 6d 6f | 72 79 20 63 6f 6e 73 75 | on memo|ry consu|
|00005f30| 6d 70 74 69 6f 6e 20 61 | 6e 64 20 73 74 61 63 6b |mption a|nd stack|
|00005f40| 0a 75 73 61 67 65 2e 20 | 20 45 61 63 68 20 6c 65 |.usage. | Each le|
|00005f50| 76 65 6c 20 6f 66 20 6e | 65 73 74 69 6e 67 20 72 |vel of n|esting r|
|00005f60| 65 71 75 69 72 65 73 20 | 61 74 20 6c 65 61 73 74 |equires |at least|
|00005f70| 20 61 6e 20 61 64 64 69 | 74 69 6f 6e 61 6c 20 32 | an addi|tional 2|
|00005f80| 4b 20 6f 66 20 6d 65 6d | 6f 72 79 2e 0a 0a 50 6c |K of mem|ory...Pl|
|00005f90| 65 61 73 65 20 6e 6f 74 | 65 20 74 68 61 74 20 74 |ease not|e that t|
|00005fa0| 68 65 20 6d 61 78 69 6d | 75 6d 20 6c 65 6e 67 74 |he maxim|um lengt|
|00005fb0| 68 20 6f 66 20 61 20 76 | 61 72 69 61 62 6c 65 20 |h of a v|ariable |
|00005fc0| 6e 61 6d 65 20 69 73 20 | 6c 69 6d 69 74 65 64 20 |name is |limited |
|00005fd0| 74 6f 20 32 35 36 0a 63 | 68 61 72 61 63 74 65 72 |to 256.c|haracter|
|00005fe0| 73 2e 0a 0a 5c 73 65 63 | 74 69 6f 6e 7b 46 75 6e |s...\sec|tion{Fun|
|00005ff0| 63 74 69 6f 6e 20 43 61 | 6c 6c 73 7d 0a 5c 6e 65 |ction Ca|lls}.\ne|
|00006000| 77 70 61 67 65 0a 0a 5c | 62 65 67 69 6e 7b 6d 61 |wpage..\|begin{ma|
|00006010| 6e 70 61 67 65 7d 7b 4d | 61 6b 65 7d 7b 46 75 6e |npage}{M|ake}{Fun|
|00006020| 63 74 69 6f 6e 20 43 61 | 6c 6c 73 7d 7b 7d 0a 0a |ction Ca|lls}{}..|
|00006030| 5c 73 75 62 74 69 74 6c | 65 7b 46 75 6e 63 74 69 |\subtitl|e{Functi|
|00006040| 6f 6e 20 43 61 6c 6c 73 | 7d 0a 0a 46 75 6e 63 74 |on Calls|}..Funct|
|00006050| 69 6f 6e 20 63 61 6c 6c | 73 20 6f 66 20 74 68 65 |ion call|s of the|
|00006060| 20 66 6f 72 6d 20 7b 5c | 74 74 5c 24 28 66 75 6e | form {\|tt\$(fun|
|00006070| 63 74 69 6f 6e 7e 61 72 | 67 75 6d 65 6e 74 73 29 |ction~ar|guments)|
|00006080| 7d 20 6f 72 0a 7b 5c 74 | 74 5c 24 5c 7b 66 75 6e |} or.{\t|t\$\{fun|
|00006090| 63 74 69 6f 6e 7e 61 72 | 67 75 6d 65 6e 74 73 5c |ction~ar|guments\|
|000060a0| 7d 7d 20 77 69 6c 6c 20 | 62 65 20 70 72 6f 63 65 |}} will |be proce|
|000060b0| 73 73 65 64 20 64 69 66 | 66 65 72 65 6e 74 6c 79 |ssed dif|ferently|
|000060c0| 20 74 68 61 6e 20 61 20 | 6e 6f 72 6d 61 6c 0a 6d | than a |normal.m|
|000060d0| 61 63 72 6f 20 65 78 70 | 61 6e 73 69 6f 6e 2e 20 |acro exp|ansion. |
|000060e0| 20 41 20 66 75 6e 63 74 | 69 6f 6e 20 63 61 6c 6c | A funct|ion call|
|000060f0| 20 61 63 74 73 20 6c 69 | 6b 65 20 61 20 6d 61 63 | acts li|ke a mac|
|00006100| 72 6f 20 65 78 70 61 6e | 73 69 6f 6e 20 69 6e 20 |ro expan|sion in |
|00006110| 74 68 61 74 20 69 74 0a | 72 65 74 75 72 6e 73 20 |that it.|returns |
|00006120| 61 20 73 74 72 69 6e 67 | 2e 20 20 41 6c 6c 20 73 |a string|. All s|
|00006130| 70 61 63 65 73 2c 20 65 | 78 63 65 70 74 20 66 6f |paces, e|xcept fo|
|00006140| 72 20 74 68 65 20 73 65 | 71 75 65 6e 63 65 20 6f |r the se|quence o|
|00006150| 66 20 73 70 61 63 65 73 | 20 62 65 66 6f 72 65 20 |f spaces| before |
|00006160| 74 68 65 0a 66 69 72 73 | 74 20 61 72 67 75 6d 65 |the.firs|t argume|
|00006170| 6e 74 20 28 61 66 74 65 | 72 20 65 78 70 61 6e 73 |nt (afte|r expans|
|00006180| 69 6f 6e 29 2c 20 61 72 | 65 20 73 69 67 6e 69 66 |ion), ar|e signif|
|00006190| 69 63 61 6e 74 2e 0a 0a | 5c 73 75 62 74 69 74 6c |icant...|\subtitl|
|000061a0| 65 7b 53 74 72 69 6e 67 | 20 46 75 6e 63 74 69 6f |e{String| Functio|
|000061b0| 6e 73 7d 0a 0a 28 73 65 | 65 20 73 65 63 74 69 6f |ns}..(se|e sectio|
|000061c0| 6e 20 39 2e 32 20 6f 66 | 20 74 68 65 20 47 4e 55 |n 9.2 of| the GNU|
|000061d0| 20 4d 61 6b 65 20 6d 61 | 6e 75 61 6c 29 0a 0a 53 | Make ma|nual)..S|
|000061e0| 74 72 69 6e 67 20 66 75 | 6e 63 74 69 6f 6e 73 20 |tring fu|nctions |
|000061f0| 67 65 6e 65 72 61 6c 6c | 79 20 61 63 63 65 70 74 |generall|y accept|
|00006200| 20 61 20 73 65 74 20 6f | 66 20 69 6e 70 75 74 20 | a set o|f input |
|00006210| 73 74 72 69 6e 67 73 20 | 61 6e 64 20 70 65 72 66 |strings |and perf|
|00006220| 6f 72 6d 20 61 0a 74 72 | 61 6e 73 66 6f 72 6d 61 |orm a.tr|ansforma|
|00006230| 74 69 6f 6e 20 74 6f 20 | 72 65 74 75 72 6e 20 61 |tion to |return a|
|00006240| 20 72 65 73 75 6c 74 20 | 73 74 72 69 6e 67 2e 0a | result |string..|
|00006250| 0a 5c 73 65 70 61 72 61 | 74 6f 72 0a 5c 66 75 6e |.\separa|tor.\fun|
|00006260| 63 74 69 6f 6e 2a 7b 5c | 24 28 66 69 6c 74 65 72 |ction*{\|$(filter|
|00006270| 20 70 61 74 74 65 72 6e | 2c 74 65 78 74 29 7d 0a | pattern|,text)}.|
|00006280| 0a 41 20 70 61 74 74 65 | 72 6e 20 69 73 20 61 20 |.A patte|rn is a |
|00006290| 77 6f 72 64 20 74 68 61 | 74 20 6f 70 74 69 6f 6e |word tha|t option|
|000062a0| 61 6c 6c 79 20 63 6f 6e | 74 61 69 6e 73 20 61 20 |ally con|tains a |
|000062b0| 73 69 6e 67 6c 65 20 77 | 69 6c 64 63 61 72 64 20 |single w|ildcard |
|000062c0| 63 68 61 72 61 63 74 65 | 72 0a 7b 5c 74 74 5c 25 |characte|r.{\tt\%|
|000062d0| 7d 2e 20 20 41 6c 6c 20 | 77 6f 72 64 73 20 69 6e |}. All |words in|
|000062e0| 20 7b 5c 74 74 20 74 65 | 78 74 7d 20 74 68 61 74 | {\tt te|xt} that|
|000062f0| 20 64 6f 20 6e 6f 74 20 | 6d 61 74 63 68 20 74 68 | do not |match th|
|00006300| 65 20 7b 5c 74 74 20 70 | 61 74 74 65 72 6e 7d 20 |e {\tt p|attern} |
|00006310| 61 72 65 0a 72 65 6d 6f | 76 65 64 2c 20 73 6f 20 |are.remo|ved, so |
|00006320| 74 68 61 74 20 74 68 69 | 73 20 66 75 6e 63 74 69 |that thi|s functi|
|00006330| 6f 6e 20 63 61 6c 6c 20 | 72 65 74 75 72 6e 73 20 |on call |returns |
|00006340| 6f 6e 6c 79 20 6d 61 74 | 63 68 69 6e 67 20 77 6f |only mat|ching wo|
|00006350| 72 64 73 2e 0a 0a 5c 73 | 65 70 61 72 61 74 6f 72 |rds...\s|eparator|
|00006360| 0a 5c 66 75 6e 63 74 69 | 6f 6e 2a 7b 5c 24 28 66 |.\functi|on*{\$(f|
|00006370| 69 6c 74 65 72 2d 6f 75 | 74 20 70 61 74 74 65 72 |ilter-ou|t patter|
|00006380| 6e 2c 74 65 78 74 29 7d | 0a 0a 41 6c 6c 20 77 6f |n,text)}|..All wo|
|00006390| 72 64 73 20 69 6e 20 7b | 5c 74 74 20 74 65 78 74 |rds in {|\tt text|
|000063a0| 7d 20 74 68 61 74 20 6d | 61 74 63 68 20 74 68 65 |} that m|atch the|
|000063b0| 20 7b 5c 74 74 20 70 61 | 74 74 65 72 6e 7d 20 61 | {\tt pa|ttern} a|
|000063c0| 72 65 20 72 65 6d 6f 76 | 65 64 2c 20 73 6f 20 74 |re remov|ed, so t|
|000063d0| 68 61 74 0a 74 68 69 73 | 20 66 75 6e 63 74 69 6f |hat.this| functio|
|000063e0| 6e 20 63 61 6c 6c 20 72 | 65 74 75 72 6e 73 20 6f |n call r|eturns o|
|000063f0| 6e 6c 79 20 6e 6f 6e 2d | 6d 61 74 63 68 69 6e 67 |nly non-|matching|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.