]> www.wagner.pp.ru Git - sites/csbook.git/blob - 2000/make.tex
Checked in all materials for book
[sites/csbook.git] / 2000 / make.tex
1 \chapter{make É cvs}
2 \section{÷ÓËÉÐÑÔÉÔØ ×ÏÄÕ}
3 éÚ×ÅÓÔÅΠÔÁËÏÊ ÁÎÅËÄÏÔ: ÍÁÔÅÍÁÔÉËÕ É ÆÉÚÉËÕ ÐÒÅÄÌÏÖÉÌÉ ÚÁÄÁÞÕ:
4 äÁÎÙ ÄÒÏ×Á, ÓÐÉÞËÉ, ÐÌÉÔÁ, ÞÁÊÎÉË É ×ÏÄÏÐÒÏ×ÏÄÎÙÊ ËÒÁÎ. ôÒÅÂÕÅÔÓÑ
5 ×ÓËÉÐÑÔÉÔØ ×ÏÄÕ. é ÍÁÔÅÍÁÔÉË É ÆÉÚÉË ×ÙÄÁÌÉ ÏÄÉΠɠÔÏÔ ÖÅ ÁÌÇÏÒÉÔÍ
6 ÒÅÛÅÎÉÑ. ðÏÓÌÅ ÜÔÏÇÏ ÕÓÌÏ×ÉÑ ÚÁÄÁÞÉ ÎÅÓËÏÌØËÏ ×ÉÄÏÉÚÍÅÎÉÌÉ: ÄÁΠÞÁÊÎÉË Ó
7 ×ÏÄÏÊ É ÐÌÉÔÁ Ó ÚÁÌÏÖÅÎÎÙÍÉ ÄÒÏ×ÁÍÉ. ôÒÅÂÕÅÔÓÑ ÔÏ ÖÅ ÓÁÍÏÅ. æÉÚÉË ÐÏÄÖ£Ç
8 ÄÒÏ×Á É ÐÏÓÔÁ×ÉÌ ÞÁÊÎÉË ÎÁ ÏÇÏÎØ, Á ÍÁÔÅÍÁÔÉË ×ÙÎÕÌ ÄÒÏ×Á ÉÚ ÐÅÞÉ É
9 ×ÙÌÉÌ ×ÏÄÕ ÉÚ ÞÁÊÎÉËÁ, ÐÏÓÌÅ ÞÅÇÏ ÚÁÑ×ÉÌ, ÞÔÏ ÚÁÄÁÞÁ Ó×ÏÄÉÔÓÑ Ë
10 ÐÒÅÄÙÄÕÝÅÊ. 
11
12 âÏÌØÛÁÑ ÞÁÓÔØ ÎÁÞÉÎÁÀÝÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ Õ×ÅÒÅÎÁ ÞÔÏ ËÏÍÐØÀÔÅÒ ÍÏÖÅÔ
13 ÄÅÊÓÔ×Ï×ÁÔØ ÔÏÌØËÏ ËÁË <<ÍÁÔÅÍÁÔÉË>>, ÒÕËÏ×ÏÄÓÔ×ÕÑÓØ ÚÁÒÁÎÅÅ ÚÁÄÁÎÎÙÍÉ
14 ÁÌÇÏÒÉÔÍÁÍÉ. íÅÖÄÕ ÔÅÍ Unix-ÓÉÓÔÅÍÙ Ó ÓÁÍÏÇÏ Ó×ÏÅÇÏ ÒÏÖÄÅÎÉÑ ÄÏÓÔÁÔÏÞÎÏ
15 ÕÍÎÙ, ÞÔÏÂÙ ÄÅÊÓÔ×Ï×ÁÔØ ËÁË <<ÆÉÚÉË>>. ÷ ËÏÍÐÌÅËÔ ÂÏÌØÛÉÎÓÔ×Á
16 Unix-ÓÉÓÔÅÍ (×Ï ×ÓÑËÏÍ ÓÌÕÞÁÅ ×ÓÅÈ Ó×ÏÂÏÄÎÏ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÙÈ) ×ÈÏÄÉÔ
17 ËÏÍÁÎÄÁ {\tt make} (× ÐÅÒÅ×ÏÄÅ Ó ÁÎÇÌÉÊÓËÏÇÏ <<ÓÄÅÌÁÊ>>) ËÏÔÏÒÁÑ ËÁË ÒÁÚ
18 É ÚÁÎÉÍÁÅÔÓÑ ÔÅÍ ÞÔÏ ÒÅÛÁÅÔ ÐÏÄÏÂÎÏÇÏ ÒÏÄÁ ÚÁÄÁÞÉ.
19
20 ëÏÍÁÎÄÕ {\tt make} ÉÚÏÂÒÅÌÉ ÐÒÏÇÒÁÍÍÉÓÔÙ, ÞÔÏÂÙ ÏÂÌÅÇÞÉÔØ ÓÅÂÅ ÒÁÂÏÔÕ.
21 óÌÏÖÎÙÊ ÐÒÏÇÒÁÍÍÎÙÊ ÐÒÏÅËÔ ÏÂÙÞÎÏ ÓÏÓÔÏÉÔ ÉÚ ÄÅÓÑÔËÏ×, ÅÓÌÉ ÎÅ ÓÏÔÅÎ
22 ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÒÁÚÎÙÍÉ ÓÌÏÖÎÙÍÉ ÓÐÏÓÏÂÁÍÉ ÚÁ×ÉÓÑÔ ÄÒÕÇ ÏÔ ÄÒÕÇÁ, É
23 ÐÒÏÃÅÓÓ ËÏÍÐÉÌÑÃÉÉ ×ÓÅÈ ÆÁÊÌÏ× ÍÏÖÅÔ ÚÁÎÉÍÁÔØ ÚÁÍÅÔÎÏÅ ×ÒÅÍÑ (ÄÏ
24 ÎÅÓËÏÌØËÉÈ ÞÁÓÏ× ÎÁ ÓÌÁÂÙÈ ÍÁÛÉÎÁÈ). ðÏÜÔÏÍÕ ÞÔÏÂÙ ÎÅ ÚÁÓÔÁ×ÌÑÔØ
25 ËÏÍÐØÀÔÅÒ ÄÅÌÁÔØ ÎÅÎÕÖÎÕÀ ÒÁÂÏÔÕ, ÒÁÚ ÚÁ ÒÁÚÏÍ ÐÅÒÅËÏÍÐÉÌÉÒÕÑ ÆÁÊÌÙ ×
26 ËÏÔÏÒÙÅ ÎÉËÁËÉÈ ÉÚÍÅÎÅÎÉÊ ÎÅ ×ÎÏÓÉÌÏÓØ, É ÂÙÌÁ ÐÒÉÄÕÍÁÎÁ ËÏÍÁÎÄÁ {\tt
27 make}.
28
29 ïÎÁ ÞÉÔÁÅÔ ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ Ó ÉÍÅÎÅÍ {\tt Makefile}, × ËÏÔÏÒÏÍ ÏÐÉÓÁÎÙ
30 ÃÅÌÉ (target), ÕÓÌÏ×ÉÑ, ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÉÈ ÄÏÓÔÉÖÅÎÉÑ (ËÏÔÏÒÙÅ ÓÁÍÉ
31 ÍÏÇÕÔ ÂÙÔØ ÃÅÌÑÍÉ, ÏÐÉÓÁÎÎÙÍÉ × ÔÏÍ ÖÅ Makefile) É ËÏÍÁÎÄÙ unix, ËÏÔÏÒÙÅ
32 ÎÅÏÂÈÏÄÉÍÏ ×ÙÐÏÌÎÉÔØ ÞÔÏÂÙ ÄÏÓÔÉÞØ ÃÅÌÉ, ÅÓÌÉ ÕÓÌÏ×ÉÑ ×ÙÐÏÌÎÑÀÔÓÑ.
33
34 ãÅÌÉ (É ÕÓÌÏ×ÉÑ) ÜÔÏ ÏÂÙÞÎÏ ÉÍÅÎÁ ÆÁÊÌÏ×. åÓÌÉ ÓÕÝÅÓÔ×ÕÀÔ É ÆÁÊÌ
35 ÕÓÌÏ×ÉÅ, É ÆÁÊÌ-ÃÅÌØ, ÎÏ ÄÁÔÁ ÉÚÍÅÎÅÎÉÑ ÆÁÊÌÁ ÕÓÌÏ×ÉÑ ÐÏÚÖÅ, ÞÅÍ
36 ÆÁÊÌÁ-ÃÅÌÉ, ÃÅÌØ ÂÕÄÅÔ ÐÅÒÅÓÔÒÏÅÎÁ. üÔÏ ÏÞÅÎØ ÐÏÌÅÚÎÏ ËÁË ÐÒÉ ÎÁÐÉÓÁÎÉÉ
37 ÐÒÏÇÒÁÍÍ ({\tt make} ÐÏÚÁÂÏÔÉÔÓÑ Ï ÔÏÍ, ÞÔÏÂÙ ×ÓÅ ÉÚÍÅÎÅÎÉÑ ÂÙÌÉ
38 ÕÞÔÅÎÙ), ÔÁË É ÐÒÉ ÒÁÂÏÔÅ Ó ÔÅËÓÔÁÍÉ (ÓÏÂÓÔ×ÅÎÎÏ ÇÏ×ÏÒÑ, ÐÒÏÇÒÁÍÍÁ ÜÔÏ
39 ÔÏÖÅ ÔÅËÓÔ).
40
41 ðÏÜÔÏÍÕ ÅÓÌÉ ×Ù ÇÏÔÏ×ÉÔÅ ËÁËÏÊ-ÔÏ ÓÌÏÖÎÙÊ ÏÔÞÅÔ, ÓÏÄÅÒÖÁÝÉÊ
42 ÔÁÂÌÉÃÙ-×ÙÂÏÒËÉ ÉÚ ÂÁÚÙ ÄÁÎÎÙÈ, ÇÒÁÆÉËÉ ÐÏÓÔÒÏÅÎÎÙÅ ÐÏ ÜÔÉÍ ÔÁÂÌÉÃÁÍ, É
43 ÍÎÏÇÏ ËÕÓËÏ× ÔÅËÓÔÁ, ÖÉ×ÕÝÉÈ × ÏÔÄÅÌØÎÙÈ ÆÁÊÌÁÈ, ËÒÁÊÎÅ ÒÅËÏÍÅÎÄÕÀ
44 ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ {\tt make} ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÅÇÏ ÆÏÒÍÁÔÉÒÏ×ÁÔØ. ðÒÁ×ÉÌØÎÏ
45 ÎÁÐÉÓÁÎÎÙÊ {\tt Makefile} ÇÁÒÁÎÔÉÒÕÅÔ, ÞÔÏ ÐÒÉ ÏÂÎÁÒÕÖÅÎÉÉ ÏÛÉÂËÉ ×
46 ÄÁÎÎÙÈ ÉÌÉ ÐÒÏÐÕÝÅÎÎÏÊ ÚÁÐÑÔÏÊ × ÔÅËÓÔÅ, ÏÔÞÅÔ ÂÕÄÅÔ ÐÅÒÅÆÏÒÍÁÔÉÒÏ×ÁΠÓ
47 ×ÎÅÓÅÎÉÅÍ ×ÓÅÈ ÎÅÏÂÈÏÄÉÍÙÈ ÉÓÐÒÁ×ÌÅÎÉÊ × ÇÒÁÆÉËÉ É ÔÁË ÄÁÌÅÅ, ÚÁ
48 ÍÉÎÉÍÁÌØÎÏ ×ÏÚÍÏÖÎÏÅ ×ÒÅÍÑ.
49
50 ðÏÐÒÏÂÕÅÍ ÎÁÐÉÓÁÔØ {\tt Makefile} ÄÌÑ ÚÁÄÁÞÉ, Ó ËÏÔÒÏÊ ÍÙ ÎÁÞÁÌÉ ÇÌÁ×Õ.
51
52
53 \begin{verbatim}
54 tea: ÇÏÒÑÝÁÑ_ÐÌÉÔÁ ÞÁÊÎÉË_Ó_×ÏÄÏÊ
55         ÐÏÓÔÁ×ÉÔØ ÞÁÊÎÉË ÐÌÉÔÁ
56         ÐÏÄÏÖÄÁÔØ ÐÏËÁ ×ÓËÉÐÉÔ
57 ÇÏÒÑÝÁÑ_ÐÌÉÔÁ: ÄÒÏ×Á_×_ÐÌÉÔÅ
58         ÚÁÖÅÞØ ÄÒÏ×Á
59 ÄÒÏ×Á_×_ÐÌÉÔÅ: ÐÌÉÔÁ ÄÒÏ×Á
60         ÐÏÌÏÖÉÔØ ÄÒÏ×Á ÐÌÉÔÁ
61 ÞÁÊÎÉË_Ó_×ÏÄÏÊ: ÞÁÊÎÉË ×ÏÄÏÐÒÏ×ÏÄ
62         ÎÁÌÉÔØ ×ÏÄÁ ÞÁÊÎÉË
63 \end{verbatim}
64
65 ÷ÒÏÄÅ ÂÙ ×ÓÅ ÏÞÅ×ÉÄÎÏ. ôÅÐÅÒØ ÐÏÐÒÏÂÕÊÔÅ ÐÒÅÄÓÔÁ×ÉÔØ ÓÅÂÅ ËÁË ËÏÍÁÎÄÁ
66 {\tt make} ÂÕÄÅÔ ×ÙÐÏÌÎÑÔØ ÚÁÄÁÞÕ × ÐÅÒ×ÏÍ É ×Ï ×ÔÏÒÏÍ ÓÌÕÞÁÅ. öÅÌÁÀÝÉÅ
67 ÞÉÔÁÔÅÌÉ ÍÏÇÕÔ ÐÏÐÒÏÂÏ×ÁÔØ ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÎÁÐÉÓÁÔØ ÔÁËÏÊ {\tt Makefile}
68 É ÐÏÐÒÏÂÏ×ÁÔØ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ {\tt make tea} (ÐÒÉÄÅÔÓÑ, ÐÒÁ×ÄÁ,
69 ÎÁÐÉÓÁÔØ ÎÅÓËÏÌØËÏ ÓËÒÉÐÔÏ×~--- <<ÐÏÓÔÁ×ÉÔØ>>, <<ÚÁÖÅÞØ>>, <<ÎÁÌÉÔØ>> É
70 Ô.Ä, ËÏÔÏÒÙÅ ÂÕÄÕÔ ÓÏÚÄÁ×ÁÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÆÁÊÌÙ-ÃÅÌÉ, ÎÁÐÒÉÍÅÒ
71 ËÏÍÁÎÄÏÊ {\tt touch}).
72
73 îÅ ÉÓËÌÀÞÅÎÏ, ÞÔÏ ÅÄÉÎÓÔ×ÅÎÎÏÊ ÎÁÇÒÁÄÏÊ ÚÁ ÓÔÁÒÁÔÅÌØÎÏÅ ×ÏÓÐÒÏÉÚ×ÅÄÅÎÉÅ 
74 ÜÔÏÇÏ {\tt Makefile} ÂÕÄÅÔ ÓÏÏÂÝÅÎÉÅ ÏÔ ÐÒÏÇÒÁÍÍÙ {\tt make} <<missing
75 separator. Stop.>>. îÅ ÏÇÏÒÞÁÊÔÅÓÔØ, ÜÔÏ ÂÙ×ÁÅÔ ÄÁÖÅ Ó ÄÏ×ÏÌØÎÏ ÏÐÙÔÎÙÍÉ
76 ÐÒÏÇÒÁÍÍÉÓÔÁÍÉ. äÅÌÏ × ÔÏÍ, ÞÔÏ {\tt make} ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÓÔÒÏËÉ,
77 ÏÐÉÓÙ×ÁÀÝÉÅ ÄÅÊÓÔ×ÉÑ, ÏÂÑÚÁÔÅÌØÎÏ ÎÁÞÉÎÁÌÉÓØ Ó ÓÉÍ×ÏÌÁ ÔÁÂÕÌÑÃÉÉ, Á ÎÅ Ó
78 ÎÅÓËÏÌØËÉÈ ÐÒÏÂÅÌÏ×. ïÔÌÉÞÉÔØ ÏÄÎÏ ÏÔ ÄÒÕÇÏÇÏ ÎÁ ÜËÒÁÎÅ ÄÏ×ÏÌØÎÏ ÔÑÖÅÌÏ,
79 Á ÍÎÏÇÉÅ ÒÅÄÁËÔÏÒÙ ÞÁÓÔÏ ÏËÁÚÙ×ÁÀÔ ÍÅÄ×ÅÖØÀ ÕÓÌÕÇÕ ÐÏÌØÚÏ×ÁÔÅÌÀ, ÚÁÍÅÎÑÑ
80 ÔÁÂÕÌÑÃÉÉ ÎÁ ÐÒÏÂÅÌÙ.
81
82 ÷ÏÚÍÏÖÎÏÓÔÉ ËÏÍÁÎÄÙ {\tt make} ÎÅ ÉÓÞÅÒÐÙ×ÁÀÔÓÑ ×ÙÛÅÐÒÉ×ÅÄÅÎÎÙÍÉ. ïÎÁ
83 ÐÏÚ×ÏÌÑÅÔ ÏÐÉÓÙ×ÁÔØ <<ÏÂÝÉÅ>> ÐÒÁ×ÉÌÁ ×ÉÄÁ "ÅÓÌÉ ÎÕÖÅΠÆÁÊÌ {\tt
84 ÞÔÏ-ÔÏ-ÔÁÍ.o}, Á ÅÓÔØ ÆÁÊÌ {\tt ÞÔÏ-ÔÏ-ÔÁÍ.c}, ÔÏ\dots", ÐÉÓÁÔØ
85 ÚÁ×ÉÓÉÍÏÓÔÉ ×ÉÄÁ "ÏÔ ×ÓÅÈ ÆÁÊÌÏ× {\tt *.o} × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ" É ÄÁÖÅ
86 ÓÔÒÏÉÔØ ÓÐÉÓÏË ÚÁ×ÉÓÉÍÏÓÔÅÊ Ó ÐÏÍÏÝØÀ ÔÁËÏÇÏ ÖÅ ÐÒÁ×ÉÌÁ, ËÁË É ÌÀÂÏÊ
87 ÄÒÕÇÏÊ ÆÁÊÌ. ÷ÓÅ ÜÔÏ ÐÏÄÒÏÂÎÏ ÏÐÉÓÁÎÏ × info-ÄÏËÕÍÅÎÔÁÃÉÉ ÎÁ make.
88
89 \section{íÁÌÅÎØËÁÑ ÍÁÛÉÎÁ ×ÒÅÍÅÎÉ}
90
91