%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 13:04:02 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /Times-Bold 1 AEnc-def pop /B-1{/Times-Bold-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(MAKE)S 1025(\()S 1067(1)S 1125(\))S 2696(Eighth)S (Edition)296 2989 A 4822(MAKE)S 5127(\()S 5169(1)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R 1080(make)S 10 R-1 1323(-)S 10 R 1405(a)S 1475(program)S 1841(for)S 1984(maintaining)S 2489(large)S 2716(programs)S 1248 V 9 R 720(S)S 722(SY)S 774(YN)S 842(NO)S 910(OP)S 978(PS)S 1030(SI)S 1082(IS)S 1115(S)S 1368 V 10 B 1080(make)S 10 R 1353([)S 10 B-1 1387(-)S 10 B 1444(f)S 10 I 1516(\256le)S 10 R 1639(])S 1711([)S 10 B-1 1745(-)S 10 B (iknpqrst)370 1802 A 10 R 2172(])S 2244([)S 10 I 2278(option)S 10 R 2534(])S (...)75 2606 A 2719([)S 10 I 2753(target)S 10 R 2993(])S 1536 V 9 R 720(O)S 722(OP)S 790(PT)S 842(TI)S 900(IO)S 933(ON)S 1001(NS)S 1069(S)S 1656 V 10 B-1 1080(-)S 10 B 1137(f)S 10 R 1440(Use)S 10 I 1622(\256le)S 10 R 1770(as)S 1879(the)S 2027(make\256le)S 1824 V 10 B-1 1080(-)S 10 B 1137(i)S 10 R (Ignore)263 1440 A 1728(status)S 1982(returned)S 2343(by)S 2468(commands)S 1992 V 10 B-1 1080(-)S 10 B 1137(k)S 10 R 1440(On)S 1588(error,)S 1835(skip)S 2027(to)S 2130(next)S 2328(command)S 2160 V 10 B-1 1080(-)S 10 B 1137(n)S 10 R 1440(Report,)S 1764(but)S 1917(do)S 2042(not)S 2195(execute)S 2328 V 10 B-1 1080(-)S 10 B 1137(p)S 10 R 1440(Print)S 1661(macros)S 1977(and)S 2147(targets)S 2496 V 10 B-1 1080(-)S 10 B 1137(q)S 10 R 1440(Question)S 1828(up-to-dateness)S 2440(of)S 2549(target)S 2664 V 10 B-1 1080(-)S 10 B 1137(r)S 10 R 1440(Rule)S (inhibit;)290 1655 A 1970(do)S 2095(not)S 2248(use)S 2407(default)S 2712(rules)S 2832 V 10 B-1 1080(-)S 10 B 1137(s)S 10 R 1440(Silent)S 1700(mode)S 3000 V 10 B-1 1080(-)S 10 B 1137(t)S 10 R 1440(Touch)S 1722(\256les)S 1915(instead)S 2225(of)S 2334(making)S 2660(them)S 3168 V 9 R 720(E)S 722(EX)S 780(XA)S 848(AM)S 916(MP)S 998(PL)S 1050(LE)S 1108(ES)S 1166(S)S 3288 V 10 B 1080(make)S 1340(kernel)S 10 R 2080(#)S 2155(Make)S 10 I 2409(kernel)S 10 R 2686(up)S 2811(to)S 2914(date)S 3456 V 10 B 1080(make)S 10 B-1 1340(-)S 10 B 1397(n)S 10 B-1 1478(-)S 10 B 1535(f)S 1594(mfile)S 10 R 2080(#)S 2155(Tell)S 2343(what)S 2564(needs)S 2818(to)S 2921(be)S (done)195 3041 A 3624 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 3744 V 10 I 1080(Make)S 10 R 1334(is)S 1431(a)S 1506(program)S 1877(that)S 2058(is)S 2155(normally)S 2548(used)S 2762(for)S 2910(developing)S 3387(large)S 3620(programs)S 4031(consisting)S 4469(of)S (multiple)335 4584 A 4950(\256les.)S 5199(It)S 3864 V 1080(keeps)S 1345(track)S 1583(of)S 1703(which)S 1985(object)S 2267(\256les)S 2471(depend)S 2797(on)S 2933(which)S 3215(source)S 3514(and)S 3695(header)S 3999(\256les.)S 4252(When)S 4527(called,)S 4828(it)S 4919(does)S 5138(the)S 3984 V 1080(minimum)S (amount)301 1495 A 1821(of)S 1930(recompilation)S 2514(to)S 2617(bring)S 2854(the)S 3002(target)S 3257(\256le)S 3411(up)S 3536(to)S 3639(date.)S 4152 V 1080(The)S 1274(\256le)S 1440(dependencies)S 2019(are)S 2180(expected)S 2575(in)S 10 I 2690(make\256le)S 10 R 3063(or)S 10 I 3184(Make\256le)S 3568(,)S 10 R 3631(unless)S 3920(another)S 4260(\256le)S 4427(is)S 4532(speci\256ed)S 4928(with)S 10 B-1 5145(-)S 10 B 5202(f)S 10 R 5236(.)S 4272 V 10 I 1080(Make)S 10 R 1331(has)S 1492(some)S 1731(default)S 2038(rules)S (built)184 2261 A 2472(in,)S 2601(for)S 2745(example,)S 3137(it)S (knows)262 3219 A 3507(how)S 3706(to)S 3810(make)S 10 I 4054(.s)S 10 R 4144(\256les)S 4338(from)S 10 I 4560(.c)S 10 R 4656(\256les.)S 4900(Here)S 5123(is)S 5216(a)S 4392 V 1080(sample)S 10 I 1390(make\256le)S 1751(.)S 4560 V 10 R 1260(d=/user/ast)S 3240(#)S 10 I 3315(d)S 10 R 3390(is)S 3482(a)S 3552(macro)S 4680 V 1260(program:)S 1800(head.s)S 2079(tail.s)S 3240(#)S 10 I 3315(program)S 10 R 3691(depends)S 4045(on)S 4170(these)S 4800 V 1800(cc)S 10 R-1 1915(-)S 10 R 1972(o)S 2047(program)S 2413(head.s)S 2692(tail.s)S 3240(#)S 3315(tells)S 3508(how)S 3706(to)S 3809(make)S 10 I 4052(program)S 4920 V 10 R 1800(echo)S 2015(Program)S (done.)220 2387 A 3240(#)S (announce)385 3315 A 3725(completion)S 5040 V 1260(head.s:)S 1800($d/def.h)S 2157(head.c)S 3240(#)S 10 I 3315(head.s)S 10 R 3599(depends)S 3953(on)S 4078(these)S 5160 V 1260(tail.s:)S 1800($d/var.h)S 2157(tail.c)S 3240(#)S 10 I 3315(tail.s)S 10 R 3538(depends)S 3892(on)S 4017(these)S 5328 V 1080(A)S 1193(complete)S 1602(description)S 2089(of)S 10 I 2213(make)S 10 R 2466(would)S 2757(require)S 3083(too)S 3251(much)S (space)224 3514 A 3778(here.)S 4042(Many)S (books)239 4316 A 4595(on)S 8 R 4730(UNIX)S 10 R 4971(discuss)S 5448 V 10 I 1080(make)S 1318(.)S 10 R (Study)234 1368 A 1627(the)S 1775(numerous)S 10 I 2196(Make\256les)S 10 R 2607(in)S 2710(the)S 8 R 2853(MINIX)S 10 R 3119(source)S 3407(tree)S 3584(for)S 3727(examples.)S 5616 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 5736 V 10 B 1080(cc)S 10 R 1170(\(1\).)S 7903 V 720(Page)S 941(1)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic %%Pages: 1