added some notes in russian (sorry, i cannot into proper translations)
[k8jam.git] / doc / ru / custom_rules_guide.txt
blob8a64d8567e092a43420863220a0d59d5c6d08de2
1 ÕÞÉÍÓÑ ÐÉÓÁÔØ ÐÒÏÓÔÅÎØËÉÅ ÐÒÁ×ÉÌÁ ÄÌÑ k8jam
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 ÉÔÁË. ÉÓËÌÀÞÉÔÅÌØÎÏ ÄÌÑ ÉÌÌÀÓÔÒÁÃÉÉ ÎÁÍ ×ÄÒÕÇ ÐÏÎÁÄÏÂÉÌÏÓØ, ÞÔÏÂÙ ÐÒÉ ÓÂÏÒËÅ
5 ÓÏÆÔÉÎÙ ÓÂÏÒÝÉË ÄÌÑ ËÁÖÄÏÇÏ .cpp-ÆÁÊÌÁ ÐÒÏ×ÅÒÑÌ, ÅÓÔØ ÌÉ ÒÑÄÏÍ Ó ÎÉÍ ËÁÔÁÌÏÇ
6 ui/, Á × Î£Í .ui-ÆÁÊÌ, ÐÏÉÍÅÎÏ×ÁÎÙÊ ÁÎÁÌÏÇÉÞÎÏ .cpp. É ÅÓÌÉ ÅÓÔØ -- ÔÏ ÄÌÑ
7 ÜÔÏÇÏ .cpp ÄÏÌÖÅΠ×ÙÚÙ×ÁÔØÓÑ uic ÉÚ ÓÏÓÔÁ×Á Qt, ËÏÔÏÒÙÊ ÇÅÎÅÒÉÒÕÅÔ
8 ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ .h, É ÓÅÊ .h ÞÅÒÅÚ ÏÂÙÞÎÙÊ #include "ui_name.h" ÉÎËÌÀÄÉÌÓÑ
9 ÏÒÉÇÉÎÁÌÏÍ (ÉÎËÌÀÄ, ÎÁÔÕÒÁÌØÎÏ, ÎÁÐÉÓÁΠÒÕËÁÍÉ × .cpp).
11 ÎÁÔÕÒÁÌØÎÏ, ÐÏ ËÏÍÁÎÄÅ jam clean ÌÉÛÎÉÊ ÍÕÓÏÒ ÄÏÌÖÅΠÐÒÉÂÉÒÁÔØÓÑ. ÔÁËÖÅ jam
12 ÄÏÌÖÅΠÐÏÎÉÍÁÔØ, ÞÔÏ ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ .ui ÎÁÄÏ ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØ
13 ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ .h É ÐÅÒÅËÏÍÐÉÌÉÒÏ×ÁÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ .cpp.
15 ÐÏÓËÏÌØËÕ Õ ÎÁÓ ÔÁËÉ ÐÒÏÓÔÏÔÁ É ÐÒÉÍÅÒ, ÔÏ ÚÁÄÁÞÉ ÔÉÐÁ <<ÐÒÏÓËÁÎÉÒÏ×ÁÔØ
16 ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÉÓÈÏÄÎÉË É ÎÁÊÔÉ ÔÁÍ ×ÙÛÅÏÐÉÓÁÎÙÊ ÉÎËÌÀÄ, Á ÔÏÌØËÏ ÐÏÔÏÍ
17 ÉÓËÁÔØ .ui>> -- ÎÅ ÓÔÁ×ÉÔÓÑ. Ë ÔÏÍÕ ÖÅ ÎÁ ÄÁÎÎÏÍ ÜÔÁÐÅ k8jam ÜÔÏÇÏ É ÎÅ
18 ÍÏÖÅÔ (ÓÔÁÄÉÑ ÓËÁÎÉÒÏ×ÁÎÉÑ ÉÓÈÏÄÎÉËÏ× ÏÔÒÁÂÁÔÙ×ÁÅÔ ÔÏÇÄÁ, ËÏÇÄÁ ÄÏÂÁ×ÉÔØ
19 ÎÏ×ÕÀ ÚÁ×ÉÓÉÍÏÓÔØ ÕÖÅ ÎÅ ×ÙÊÄÅÔ -- ÜÔÏ TODO).
21 ÔÁËÖÅ ÐÒÅÄÐÏÌÁÇÁÅÍ, ÞÔÏ ÏÓÎÏ×ÎÙÅ ÉÓÈÏÄÎÉËÉ ÐÒÏÅËÔÁ ÌÅÖÁÔ × src/, Á
22 <<ÂÏÊÌÅÒÙ>> ÄÌÑ ÎÉÈ ÓÄÅÌÁÎÙ ÐÒÉ ÐÏÍÏÝÉ jam gen-boiler (ÜÔÏ ÒÅÁÌØÎÏ ÕÄÏÂÎÏ,
23 ÐÒÉ ÜÔÏÍ ÐÒÏÍÅÖÕÔÏÞÎÙÊ ×ÙÈÌÏРËÏÍÐÉÌÑÔÏÒÁ ÕÈÏÄÉÔ × ËÁÔÁÌÏÇ .zbuild/ É ×Ó£
24 ÔÁËÏÅ).
26 ËÁË ×ÙÇÌÑÄÉÔ ÐÒÏÓÔÏÊ Jamfile ÄÌÑ ÃÐÐ-ÐÒÏÅËÔÁ? ÐÒÉÍÅÒÎÏ ÔÁË:
28 SubDir TOP src ;
29 C++Main test : test.cpp ;
31 ÎÅ ÓÉÌØÎÏ ÍÕÄÒÓÔ×ÕÑ, ÄÅÌÁÅÍ ÎÏ×ÏÅ ÐÒÁ×ÉÌÏ MyMain -- ×ÍÅÓÔÏ C++Main. ÚÁÄÁÞÁ
32 ÜÔÏÇÏ ÐÒÁ×ÉÌÁ -- ÐÒÏÊÔÉÓØ ÐÏ ÓÐÉÓËÕ ÉÓÈÏÄÎÉËÏ×, ÄÏÂÁ×É× ÔÕÄÁ ÎÕÖÎÙÅ .ui,
33 ÐÏÔÏÍ ÐÅÒÅÄÁÔØ ÐÏÌÕÞÉ×ÛÅÅÓÑ ÓÔÁÎÄÁÒÔÎÏÍÕ C++Main. ÔÁËÖÅ ÎÁÄÏ ÐÏÑÓÎÉÔØ
34 k8jam'Õ, ÞÔÏ ÄÅÌÁÔØ Ó ÏÂÎÁÒÕÖÅÎÙÍÉ .ui.
36 ÐÒÉÍÅÞÁÎÉÅ: ÏÞÅÎØ ÖÅÌÁÔÅÌØÎÏ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏ ÏÚÎÁËÏÍÉÔØÓÑ Ó Jam.html. ÔÁÍ,
37 ËÏÎÅÞÎÏ, ÎÅ ×Ó£ ÐÒÁ×ÄÁ, ÎÏ ÏÞÅÎØ ÍÎÏÇÏÅ.
39 ÎÁÞΣ͠ӠÉÓÈÏÄÎÉËÁ ÓÏ ×ÓÅÍÉ ÐÒÁ×ÉÌÁÍÉ, ÐÏÑÓÎÑÑ ÞÔÏ ×ÎÕÔÒÉ, Á ÞÔÏ ÐÏÔÏÍ.
41 QT_DIR ?= /opt/qt48 ;
42 QT_UIC ?= $(QT_DIR)/bin/uic ;
43 # ÜÔÏ, ËÁË ÐÏÎÉÍÁÅÔÅ, ÐÒÏÓÔÏ ÄÌÑ ÕÄÏÂÓÔ×Á. ÐÕÓÔØ uic ÌÅÖÉÔ ÉÍÅÎÎÏ ÔÁÍ, ÍÎÅ ÔÁË ÈÏÞÅÔÓÑ.
46 # /MyMain exename : sources [ : exetarget ] ;
47 # ÜÔÏ ÎÏ×ÏÅ ÐÒÁ×ÉÌÏ MyMain: ÎÉÞÅÇÏ ÏÓÏÂÏ ÎÅÐÏÎÑÔÎÏÇÏ ÔÕÔ ÎÅÔ.
48 # ÍÏÖÅÔ ÚÁÉÎÔÅÒÅÓÏ×ÁÔØ ÔÒÅÔÉÊ ÐÁÒÁÍÅÔÒ -- 'exetarget' -- ÎÅ ÏÂÒÁÝÁÊÔÅ ×ÎÉÍÁÎÉÑ.
49 # ÐÒÏÓÔÏ ÐÒÉÍÉÔÅ ÎÁ ×ÅÒÕ, ÞÔÏ ÔÁË ÎÁÄÏ, ÐÏÔÏÍÕ ÞÔÏ ÄÌÑ ÎÁÛÅÇÏ ÐÒÉÍÅÒÁ ÜÔÏ ÎÅ ×ÁÖÎÏ.
50 # ÄÌÑ ÚÎÁËÏÍÙÈ Ó GNU Make ËÏÎÓÔÒÕËÃÉÉ ÔÉÐÁ $(var:D) ÍÏÇÕÔ ÐÏËÁÚÁÔØÓÑ ÚÎÁËÏÍÙÍÉ.
51 # ÄÁ, ÜÔÏ ×ÙÄÅÌÅÎÉÅ ×ÓÑËÉÈ ÐÏÌÅÚÎÙÈ ÞÁÓÔÅÊ -- ÐÕÔÉ, ÒÁÓÛÉÒÅÎÉÑ É ÐÒÏÞÅÇÏ. ÏÐÉÓÁÎÏ ×
52 # Jam.html. ÔÁËÖÅ ÍÏÖÎÏ ÎÅ ÔÏÌØËÏ ×ÙÄÅÌÑÔØ ÞÁÓÔÉ, ÎÏ É ÚÁÍÅÎÑÔØ ÉÈ. ÏÞÅ×ÉÄÎÏ.
53 # ÎÅÐÏÎÑÔÎÁÑ ÛÔÕËÁ "!dont-link" ÎÉÖÅ -- ÜÔÏ ÔÁË ÎÁÚÙ×ÁÅÍÙÊ "ÁÔÔÒÉÂÕÔ" (ÆÉÞÁ k8jam).
54 # × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÆÁÊÌ .o ÄÌÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÉÓÈÏÄÎÉËÁ × ÓÐÉÓÏË
55 # ÌÉÎËÏ×ËÉ ×ËÌÀÞÁÔØ ÎÅ ÎÁÄÏ. ÅÓÌÉ ÜÔÏÔ ÁÔÔÒÉÂÕÔ ÎÅ ÕËÁÚÁÔØ, ÔÏ ÆÁÊÌÙ test.cpp É ui/test.ui
56 # × ÉÔÏÇÅ ÐÏÐÁÄÕÔ × ÓÐÉÓÏË ÌÉÎËÏ×ËÉ ËÁË test.o É ui/test.o, ÞÔÏ ×ÒÑÄ ÌÉ ÏÂÒÁÄÕÅÔ ËÏÍÐÉÌÑÔÏÒ.
57 # ÍÏÖÎÏ, ËÏÎÅÞÎÏ, ÎÁÐÉÓÁÔØ Ó×ÏÉ ÐÒÁ×ÉÌÁ ÌÉÎËÏ×ËÉ, ËÏÔÏÒÙÅ ÏÔ ÜÔÏÇÏ ÚÁÝÉÔÑÔ -- ÎÏ ÚÁÞÅÍ,
58 # ÅÓÌÉ Õ ÎÁÓ ÅÓÔØ ÓÐÅÃÉÁÌØÎÏ ÄÌÑ ÔÁËÉÈ ÓÌÕÞÁÅ× ÐÒÉÄÕÍÁÎÙÊ ÍÎÏÊ ÁÔÔÒÉÂÕÔ?
59 rule MyMain {
60   local newlist = ;
61   for local fname in $(>) {
62     if $(fname:S) = ".ui" {
63       Exit "MyMain: don't add explicit .ui files!" ;
64     } else {
65       newlist += $(fname) ;
66       if ! $(fname:D) && $(fname:S) = ".cpp" && [ FileExists $(SUBDIR)/ui/$(fname:S=.ui) ] {
67         newlist += ui/$(fname:S=.ui) !dont-link ;
68       }
69     }
70   }
71   C++Main $(<) : $(newlist) : $(3) ;
75 # Á ×ÏÔ ÜÔÏ ÐÒÁ×ÉÌÏ ×ÙÚÙ×ÁÅÔÓÑ, ËÏÇÄÁ k8jam ÏÂÎÁÒÕÖÉ×ÁÅÔ × ÓÐÉÓËÅ ÆÁÊÌÏ× ÎÁ ËÏÍÐÉÌÑÃÉÀ
76 # ÆÁÊÌ Ó ÎÅÉÚ×ÅÓÔÎÙÍ ÒÁÓÛÉÒÅÎÉÅÍ. ÞÔÏ ÄÅÌÁÔØ ÓÏ ×ÓÑËÉÍÉ .c, .cpp, .S É ÔÙ ÐÙ -- ÏΠÚÎÁÅÔ, Á
77 # Ó ÏÓÔÁÌØÎÙÍÉ ÅÍÕ ÎÁÄÏ ÐÏÍÏÞØ.
78 # ÎÁÓ ÔÕÔ ÉÎÔÅÒÅÓÕÀÔ Ä×Á ÐÁÒÁÍÅÔÒÁ (ÈÏÔÑ ÎÁ ÄÅÌÅ ÉÈ ÔÒÉ, ÎÏ ÔÒÅÔÉÊ ÎÁÍ ÚÄÅÓØ ÎÁÆÉÇ ÎÅ ÕУÒÓÑ).
79 # ÐÅÒ×ÙÊ ÐÁÒÁÍÅÔÒ -- ÜÔÏ "×ÙÈÌÏÐÎÏÊ" .o (ÆÁËÔÉÞÅÓËÉ, ÅÇÏ ÉÍÑ ÐÏÌÕÞÁÅÔÓÑ ÔÕÐÏÊ ÚÁÍÅÎÏÊ ÒÁÓÛÉÒÅÎÉÑ).
80 # ÎÕ, ÎÅ ÓÏ×ÓÅÍ ÔÁË, ×Ó£ ÓÌÏÖÎÅÊ -- ÎÏ ÚÄÅÓØ ÓÉÅ ÏÐÑÔØ ÎÅ ×ÁÖÎÏ, ÐÏÔÏÍÕ ÞÔÏ ×ÙÈÌÏРuic ÄÁ£Ô
81 # ÈÉÄÅÒ, ÄÌÑ ËÏÔÏÒÏÇÏ ÎÉËÁËÏÊ ÏÂßÅËÔÎÉË ÎÅ ÎÕÖÅÎ.
82 # ÄÌÑ ui/test.ui, Á×ÔÏÍÁÔÉÞÅÓËÉ ÄÏÂÁ×ÌÅÎÏÇÏ × MyMain, ÍÙ ÐÏÌÕÞÉÍ ÔÁËÉÅ ÐÁÒÁÍÅÔÒÙ:
83 # <grist>ui/test.o : <grist>ui/test.ui
84 # ÞÔÏ ÔÁËÏÅ grist -- ÐÒÏÞÉÔÁÔØ × Jam.html. ÜÔÏ ÔÁËÁÑ ÈÉÔÒÁÑ ÍÅÔËÁ, ÂÅÚ ËÏÔÏÒÏÊ ×Ó£ ÂÕÄÅÔ ÏÞÅÎØ ÐÌÏÈÏ.
85 # Å£ ÎÅ ÎÁÄÏ ÍÅÎÑÔØ, Å£ ÎÅÌØÚÑ ÔÅÒÑÔØ, Å£ ÎÁÄÏ ÐÒÉÛÐÁÎÄÏÒÉ×ÁÔØ ËÏ ×ÓÅÍ ÉÍÅÎÁÍ, ËÏÔÏÒÙÅ ÍÙ
86 # ÂÕÄÅÍ ÇÅÎÅÒÉÒÏ×ÁÔØ. × ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ× ÜÔÉÈ ÐÒÁ×ÉÌ ÐÏ×ÅÄÅÎÉÑ ÄÏÓÔÁÔÏÞÎÏ.
87 rule -uoc-MyUserObjectHandler- obj : src {
88   switch $(src:S) {
89     case .ui :
90       # ÉÔÁË, ÕÒÁ! ÎÁÍ ÎÁ ×ÈÏÄ ÐÒÉۣ̠ÆÁÊÌ Ó ÒÁÓÛÉÒÅÎÉÅÍ .ui!
91       # ÓÌÅÄÕÀÝÁÑ ÓÔÒÁÛÎÁÑ ËÏÍÁÎÄÁ ÏÂßÑ×ÌÑÅÔ ÌÏËÁÌØÎÕÀ ÐÅÒÅÍÅÎÎÕÀ hdr
92       # É ÉÎÉÃÉÁÌÉÚÉÒÕÅԠţ ÚÎÁÞÅÎÉÅÍ ui_test.h
93       # ÚÁÍÅÔØÔÅ, ÞÔÏ grist ÚÄÅÓØ ÏÂÒÅÚÁÅÔÓÑ, ÉÎÁÞÅ ÐÒÉ ÐÏÐÙÔËÅ ÓÏÂÒÁÔØ
94       # ÎÏ×ÏÅ ÉÍÑ ÍÙ ÐÏÌÕÞÉÍ ui_<grist>test.h, ÞÔÏ ËÁÔÅÇÏÒÉÞÅÓËÉ ÐÒÏÔÉ×ÏÐÏËÁÚÁÎÏ:
95       # grist ×ÓÅÇÄÁ ÄÏÌÖÅΠÂÙÔØ × ÎÁÞÁÌÅ ÓÔÒÏËÉ.
96       local hdr = ui_$(src:G=:D=:S=.h) ;
97       # Á ×ÏÔ ÔÕÔ ÍÙ ×ÅÒΣ͠grist ÎÁ ÍÅÓÔÏ (ÐÏÍÎÉÔÅ? Ñ ×ÙÛÅ ÐÉÓÁÌ, ÞÔÏ ÅÇÏ ÎÅÌØÚÑ ÔÅÒÑÔØ)
98       # ÉÚ ui_test.h ÐÏÌÕÞÁÅÍ <grist>ui_test.h -- ÐÕԣ͠ËÏÐÉÒÏ×ÁÎÉÑ grist ÉÚ ÏÒÉÇÉÎÁÌØÎÏÇÏ ÐÁÒÁÍÅÔÒÁ
99       hdr = $(hdr:G=$(src:G)) ;
100       # ÔÕÔ ÍÙ ÓÏÏÂÝÁÅÍ k8jam, ÞÔÏ ÄÌÑ ÇÅÎÅÒÁÃÉÉ ÆÁÊÌÁ <grist>ui_test.h ÉÚ <grist>test.ui
101       # ÎÁÄÏ ÐÏÚ×ÁÔØ ÐÒÁ×ÉÌÏ Uic (ÆÁËÔÉÞÅÓËÉ, ÉÍÅÎÎÏ ×ÙÚÙ×ÁÅÍ ÜÔÏ ÐÒÁ×ÉÌÏ). k8jam ÐÏÎÉÍÁÅÔ, ÞÔÏ
102       # ÐÒÉ ÔÁËÏÍ ×ÙÚÏ×Å ÉÚ ×ÔÏÒÏÇÏ ÐÁÒÁÍÅÔÒÁ ÐÏÌÕÞÁÅÔÓÑ ÐÅÒ×ÙÊ.
103       Uic $(hdr) : $(src) ;
104       # ÔÅÐÅÒØ ÐÒÏÐÉÛÅÍ, ËÔÏ ÏÔ ËÏÇÏ ÚÁ×ÉÓÉÔ. ÉÂÏ ÅÓÌÉ ÎÉËÔÏ ÏÔ ×ÙÈÌÏÐÁ ÐÒÁ×ÉÌÁ Uic ÎÅ ÚÁ×ÉÓÉÔ, ÔÏ
105       # k8jam É ÎÅ ÓÔÁÎÅÔ ÎÉÞÅÇÏ ÇÅÎÅÒÉÒÏ×ÁÔØ -- ÎÁÆÉÇÁ? ÉÔÁË:
106       # <grist>test.o Õ ÎÁÓ ÚÁ×ÉÓÉÔ ÏÔ <grist>ui/test.ui É <grist>ui_test.h
107       # ÚÁÍÅÔØÔÅ, ÞÔÏ ÔÕÔ ÍÙ ÐÒÅÄÐÏÌÁÇÁÅÍ, ÞÔÏ ÓÕÝÅÓÔ×ÕÅÔ ÆÁÊÌ test.cpp, ËÏÔÏÒÙÊ ËÏÍÐÉÌÉÒÕÅÔÓÑ ×
108       # test.o -- ×ÏÔ ÎÁ ÜÔÏÔ test.o ÍÙ É ×ÅÛÁÅÍ ÚÁ×ÉÓÉÍÏÓÔØ. ÞÔÏ, × ÏÂÝÅÍ, ÌÏÇÉÞÎÏ.
109       # D= -- ÜÔÏ "ÏÂÒÅÚÁÔØ ÐÕÔØ" -- Ô.Å. ÐÏÌÕÞÉÔØ ÉÚ <grist>ui/test.o -- <grist>test.o
110       Depends $(obj:D=) : $(src) $(hdr) ;
111       # ÎÏ ÏÔ ÞÅÇÏ ÖÅ ÚÁ×ÉÓÉÔ ui_test.h? ÏΠ×ÅÄØ ÚÁ×ÉÓÉÔ ÏÔ ui/test.ui. ÜÔÏ ÎÁÄÏ, ÞÔÏÂÙ k8jam ÓÏÏÂÒÁÚÉÌ,
112       # ÞÔÏ ÐÒÉ ÉÚÍÅÎÅÎÉÉ ui/test.ui ÎÁÄÏ ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØ ui_test.h
113       Depends $(hdr) : $(src) ;
114       # ÐÏÓËÏÌØËÕ ui_test.h -- Á×ÔÏÇÅÎÅÒÉÒÕÅÍÙÊ ÆÁÊÌ, ÓÏÏÂÝÉÍ, ÞÔÏ ÐÏ ËÏÍÁÎÄÅ jam clean ÅÇÏ ÎÁÄÏ ÕÂÒÁÔØ:
115       Clean clean : $(hdr) ;
116       # ÆÉÎÁÌØÎÙÊ ÛÔÒÉÈ: ÐÏÓËÏÌØËÕ ÉÎËÌÀÄÉÍ ÍÙ ui_test.h ÂÅÚ ÕËÁÚÁÎÉÑ ÐÕÔÉ, Á ÇÅÎÅÒÉÒÏ×ÁÔØ ÅÇÏ ÂÕÄÅÍ
117       # × ÇÌÕÂÉÎÁÈ ËÁÔÁÌÏÇÁ .zbuild/, ÔÏ ÄÏÂÁ×ÉÍ ÜÔÉ ÇÌÕÂÉÎÙ Ë ËÏÍÓÔÒÏËÅ ×ÙÚÏ×Á ËÏÍÐÉÌÑÔÏÒÁ ÄÌÑ test.o.
118       # $(LOCATE_TARGET)/ui -- ÜÔÏ É ÅÓÔØ ÔÏÞÎÙÊ ÐÕÔØ Ë "ÇÌÕÂÉÎÁÍ". ËÁËÏÊ ÏΠÉÍÅÎÎÏ -- ÎÁÍ ÎÅÉÎÔÅÒÅÓÎÏ,
119       # ÜÔÏ ÚÁ×ÉÓÉÔ ÏÔ ÍÎÏÇÉÈ ÏÂÓÔÏÑÔÅÌØÓÔ×. ÚÁ ËÏÒÒÅËÔÎÏÓÔØÀ LOCATE_TARGET × ÄÁÎÎÏÍ ÓÌÕÞÁÅ k8jam
120       # ÐÒÏÓÌÅÄÉÔ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ.
121       CCHDRS on $(obj:D=) += [ FIncludes $(LOCATE_TARGET)/ui ] ;
122       # ËÓÔÁÔÉ, ÍÏÖÎÏ ÚÁÍÅÔÉÔØ, ÞÔÏ ÍÙ ÎÉÇÄÅ ÎÅ ÓËÁÚÁÌÉ ÎÁÐÒÑÍÕÀ, ÞÔÏ ËÁÔÁÌÏÇ $(LOCATE_TARGET)/ui
123       # ÎÅÐÌÏÈÏ ÂÙ ÓÏÚÄÁÔØ, ÅÓÌÉ ÅÇÏ ÎÅÔ. É ÎÅ ÎÁÄÏ: ÎÉÖÅ Õ×ÉÄÉÍ, ÐÏÞÅÍÕ.
124       # ×ÏÔ É ×Ó£, ÓÏÂÓÔ×ÅÎÎÏ
125       return 1 ;
126   }
130 # ÒÅÇÉÓÔÒÉÒÕÅÍ ÎÁÛÅ ÐÒÁ×ÉÌÏ × ÃÅÐÏÞËÅ ÏÂÒÁÂÏÔËÉ ÀÚÅÒÓËÉÈ ÏÂßÅËÔÏ×.
131 # ÔÁËÏÅ "ÎÅÕÄÏÂÏ×ÁÒÉÍÏÅ" ÉÍÑ ÍÙ ÄÁÌÉ ÅÍÕ ÓÐÅÃÉÁÌØÎÏ, ÞÔÏÂÙ ÂÏÌØÛÅ
132 # ÎÉËÁËÏÊ ÄÕÒÁË Ó×Ï£ ÐÒÁ×ÉÌÏ ÔÁË ÎÅ ÎÁÚ×ÁÌ. × ÉÄÅÁÌÅ -- ÉÓÐÏÌØÚÕÊÔÅ,
133 # ÎÁÐÒÉÍÅÒ, ×ÙÈÌÏР'date +%s' ÄÌÑ ÇÅÎÅÒÁÃÉÉ ÂÏÌÅÅ-ÍÅÎÅÅ ÕÎÉËÁÌØÎÏÇÏ ÉÍÅÎÉ.
134 RegisterUserObjectRule -uoc-MyUserObjectHandler- ;
137 # Uic '<grist>ui_test.h' : '<grist>ui/test.ui' ;
138 # ÜÔÏ ÐÒÁ×ÉÌÏ ÍÙ ×ÙÚÙ×ÁÌÉ ×ÙÛÅ -- ÐÏÍÎÉÔÅ? ÏÎÏ ÏÞÅÎØ ÍÁÌÅÎØËÏÅ, É ×Ó£, ÞÔÏ ÎÁÍ ÔÕÔ
139 # ÎÁÄÏ ÓÄÅÌÁÔØ -- ÐÏÑÓÎÉÔØ k8jam, ËÕÄÁ ÖÅ ÄÏÌÖÅΠÐÏÐÁÓÔØ ×ÙÈÌÏРui_test.h.
140 # MakeLocate ÓÌÕÖÉÔ ÉÍÅÎÎÏ ÄÌÑ ÔÁËÏÇÏ. ÄÏÐÏÌÎÉÔÅÌØÎÏ MakeLocate ÏÚÁÂÏÔÉÔÓÑ ÔÅÍ,
141 # ÞÔÏÂÙ k8jam ÐÒÅÄ×ÁÒÉÔÅÌØÎÏ ÓÏÚÄÁÌ ÎÕÖÎÙÅ ËÁÔÁÌÏÇÉ, É ÅÝ£ ×ÓÑËÏÊ ×ÎÕÔÒÅÎÎÅÊ ËÕÈÎÅÊ.
142 # ÎÁÍ ÐÏÆÉÇÕ, ÞÔÏ ÜÔÏ ÚÁ ËÕÈÎÑ, ÎÁÓ ÎÅ ËÏÌÙÛÅÔ. ÐÕÓÔØ ÌÏÛÁÄØ ÄÕÍÁÅÔ, Õ ÎÅ£ ÇÏÌÏ×Á ÂÏÌØÛÁÑ.
143 # ÚÁÍÅÞÕ, ÞÔÏ ÇÅÎÅÒÁÃÉÀ ÚÁ×ÉÓÉÍÏÓÔÅÊ (×ÙÚÏ× Depends) ÍÏÖÎÏ ÂÙÌÏ ÓÄÅÌÁÔØ É ÚÄÅÓØ:
144 # ÔÁË ÂÙÌÏ ÂÙ ÉÄÅÏÌÏÇÉÞÅÓËÉ ÐÒÁ×ÉÌØÎÅÊ. ÎÏ ÐÏ ÇÁÍÂÕÒÇÓËÏÍÕ ÓÞ£ÔÕ ÜÔÏ ÂÅÚ ÒÁÚÎÉÃÙ.
145 rule Uic {
146   MakeLocate $(<) : $(LOCATE_TARGET)/ui ;
149 # Uic '<grist>ui_test.h' : '<grist>ui/test.ui' ;
150 # Á ×ÏÔ ÜÔÏ ÔÏ, ÒÁÄÉ ÞÅÇÏ Uic ÂÙÌÏ ×ÙÄÅÌÅÎÏ × ÏÔÄÅÌØÎÏÅ ÐÒÁ×ÉÌÏ. ËÁÖÄÏÍÕ ÐÒÁ×ÉÌÕ
151 # ÍÏÖÅÔ ÓÏÏÔ×ÅÔÓÔ×Ï×ÁÔØ ÎÁÂÏÒ ÄÅÊÓÔ×ÉÊ Ó ÔÁËÉÍ ÖÅ ÉÍÅÎÅÍ (ËÁË Õ ÐÒÁ×ÉÌÁ ÉÍÅÎÅÍ).
152 # ÅÓÌÉ ÄÅÊÓÔ×ÉÑ ÜÔÉ ÅÓÔØ, ÔÏ ÎÁ ÜÔÁÐÅ "×ÙÐÏÌÎÑÅÍ ÓÂÏÒËÕ" ÏÎÉ É ÂÕÄÕÔ ÉÓÐÏÌÎÅÎÙ.
153 # ×ÄÏÂÁ×ÏË, ÐÅÒÅÍÅÎÎÙÅ $(>) É $(<) ÔÕÔ ÕÖÅ ÂÅÚ ×ÓÑËÉÈ grist'Ï× É ÓÏ ×ÓÅÍÉ
154 # ÎÕÖÎÙÍÉ ÐÕÔÑÍÉ: Ï ÜÔÏÍ ÐÏÚÁÂÏÔÉÌÓÑ k8jam.
155 # ËÁË ×ÉÄÉÍ, ÄÅÊÓÔ×ÉÅ Õ ÎÁÓ ÐÒÏÓÔÏÅ: ÐÎÕÔØ uic. ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÜÔÏ ÐÒÏÓÔÏ shell-ÓËÒÉÐÔ,
156 # k8jam ÔÏÌØËÏ ÐÏÚÁÍÅÎÑÅÔ Ó×ÏÉ ÐÅÒÅÍÅÎÎÙÅ ÐÅÒÅÄ ÔÅÍ, ËÁË ÓËÏÒÍÉÔØ ÓÉÅ shell'Õ.
157 actions Uic {
158   $(QT_UIC) $(>) -o $(<)
161 ×ÏÔ, ÐÒÉÍÅÒÎÏ, É ×Ó£. ÅÓÌÉ ×ÄÒÕÇ ËÔÏ-ÔÏ ÄÏÞÉÔÁÌ ÄÏ ÜÔÏÇÏ ÍÅÓÔÁ, É ÅÍÕ ÎÉÈÕÑ
162 ÎÅ ÐÏÎÑÔÎÏ -- ÜÔÏ ÎÏÒÍÁÌØÎÏ: Ñ ÓÁÍ ÐÏÌÏ×ÉÎÕ ÎÅ ÐÏÎÉÍÁÀ. ÄÁ É ÐÏÑÓÎÑÀ Ñ ËÁË
163 ÒÁÂÉÎÏ×ÉÞ ÐÏ£Ô. ÎÏ ÄÒÕÇÉÈ ÄÏËÕÍÅÎÔÁÃÉÊ Õ ÎÁÓ ÄÌÑ ×ÁÓ ÎÅÔ, ÅÛØÔÅ ÞÔÏ ÄÁÌÉ.
165 ÞÔÏ ÍÙ ÐÏÌÕÞÉÌÉ × ÉÔÏÇÅ? × ÉÔÏÇÅ ÍÙ ÐÏÌÕÞÉÌÉ ÎÁÂÏÒ ÐÒÁ×ÉÌ ÄÌÑ ÇÅÎÅÒÁÃÉÉ
166 ÉÎÔÅÒÆÅÊÓÎÙÈ ÚÁÇÏÌÏ×ËÏ× ÐÒÉ ÐÏÍÏÝÉ uic, ËÏÔÏÒÙÊ ÍÏÖÎÏ ÔÕÐÏ ÚÁÉÎËÌÀÄÉÔØ ×
167 ÐÒÏÅËÔ É ÄÁÌØÛÅ ÎÅ ÐÁÒÉÔØ ÓÅÂÅ ÍÏÚÇ: k8jam ÓÁÍ ÐÏÓÍÏÔÒÉÔ ÎÁ ÓÐÉÓÏË
168 ÉÓÈÏÄÎÉËÏ×, ÐÒÏ×ÅÒÉÔ ÎÁÌÉÞÉÅ ÄÌÑ ËÁÖÄÏÇÏ ÉÚ .cpp ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ
169 ui/*.ui-ÆÁÊÌÁ, ÐÒÏÐÉÛÅÔ ÎÕÖÎÙÅ ÚÁ×ÉÓÉÍÏÓÔÉ, ÐÏ ËÏÍÁÎÄÅ clean ×ÙÞÉÓÔÉÔ
170 ÎÁÇÅÎÅÒ£ÎÎÏÅ É ÓÄÅÌÁÅÔ ÍÉÎÅÔ. ÄÏÓÔÁÔÏÞÎÏ ÐÒÏÓÔÏ ×ÍÅÓÔÏ C++Main ÉÓÐÏÌØÚÏ×ÁÔØ
171 ÎÁÛ MyMain.
173 ÄÁ, ÐÕÓÔÙÅ ËÁÔÁÌÏÇÉ ÓÂÏÒËÉ × .zbuild/ (É ÓÁÍ ÐÕÓÔÏÊ .zbuild/) k8jam ÎÅ
174 ×ÙÞÉÝÁÅÔ -- ÐÏÔÏÍÕ ÞÔÏ ÍÎÅ ÄÏ ÓÉÈ ÐÏÒ ÌÅÎØ ÅÇÏ ÜÔÏÍÕ ÎÁÕÞÉÔØ. ÄÁ ÐÒÁ×Ï, ÏÎÏ
175 É ÎÅ ÎÁÄÏ.
177 upd: ÄÏÂÁ×ÉÌ RegisterUserObjectRule, ÔÅÐÅÒØ ÐÒÁ×ÉÌÁ ÄÌÑ ÏÂÒÁÂÏÔËÉ ÀÚÅÒÓËÉÈ
178 ÔÉÐÏ× ÆÁÊÌÏ× ÍÏÖÎÏ ÓÏÅÄÉÎÑÔØ × ÃÅÐÏÞËÉ. ×ÍÅÓÔÏ ÔÕÐÏÇÏ ÐÅÒÅËÒÙÔÉÑ UserObject
179 ÐÉÛÅÍ ÐÒÁ×ÉÌÏ Ó ÏÔÆÏÎÁÒÎÙÍ ÉÍÅÎÅÍ É ÒÅÇÉÓÔÒÉÒÕÅÍ ÅÇÏ ÐÒÉ ÐÏÍÏÝÉ
180 RegisterUserObjectRule. ÐÒÁ×ÉÌÏ ÄÏÌÖÎÏ ÉÌÉ ×ÅÒÎÕÔØ ÎÅÐÕÓÔÕÀ ÓÔÒÏËÕ (ÜÔÏ
181 "ÉÓÔÉÎÁ"), ÅÓÌÉ ÏÂÒÁÂÏÔÁÌÏ ×ÈÏÄ, ÉÌÉ ÐÕÓÔÏÊ ÓÐÉÓÏË ("return ;"), ÅÓÌÉ ÎÅ
182 ÏÂÒÁÂÏÔÁÌÏ. ÓÁÍÏÅ ÐÏÓÌÅÄÎÅÅ ÄÏÂÁ×ÌÅÎÏÅ ÐÒÁ×ÉÌÏ ×ÙÚÏ×ÅÔÓÑ ÓÁÍÙÍ ÐÅÒ×ÙÍ.