ሪቻርድ WM ጆንስ, ደራሲ
የግብ ምንጭ ኮድ
- ለአንድ ጥገኝነት አፈታት ስልት ብቻ ድጋፍ - "የስብሰባው መመሪያ የሚከናወነው የታለመው ፋይል ከጠፋ ወይም ከጥገኛዎቹ ከአንዱ በላይ ከሆነ ነው።" ግቦች ሌሎች ስልቶችን ተግባራዊ ለማድረግ አቅደዋል፣ ለምሳሌ URL መኖሩን ማረጋገጥ፣ የማሻሻያ ጊዜዎችን ከማንኛውም ፋይል ጋር ማወዳደር፣ የጥቅል ግንባታውን መገምገም
ኮጂ ፣ የቼኮችን ማነፃፀር ፣ የፈተና ጉዳዮችን በምርጫ መዝለል። - የግንባታ ኢላማዎችን በሚሰራበት ጊዜ ፋይሎችን አይለያዩም እና ስሞችን አይመሩም ፣ እና በውጤቱም ፣ ደንብን በሚያስኬዱበት ጊዜ ተፈጠረ ያለው ፋይል በትክክል እንደሚፈጠር ምንም ማረጋገጫ የለም። ለምሳሌ ስክሪፕቶችን ከፈተናዎች ጋር የሚያሄድ "ሙከራ" የሚባል ህግ ካለህ "ሙከራ" የሚባል ፋይል በአጋጣሚ ተፈጥሯል ከዚያም ፈተናዎቹ አይጠሩም ምክንያቱም ዒላማው የተገነባ እና የማይፈልግ መሆኑን ስለሚያስብ ፈተናዎቹ አይጠሩም. ማንኛውንም እርምጃ (በተፈጠረው ችግር ዙሪያ ለመስራት የ ". PHONY: test" መመሪያን መግለጽ ይችላሉ). ግቦች ፋይሎችን እና የደንብ ስሞችን በግልፅ ይለያሉ።
- ለስብሰባ መመሪያዎች አንድ መለኪያ ብቻ በማቅረብ ላይ ችግር.
ግቦች የዘፈቀደ ቁጥር የተሰየሙ መለኪያዎችን እንዲጠቀሙ ይፈቅድልዎታል። ለምሳሌ፣ የስህተት ማረሚያ ፋይል ምልክትን ከስሙ ለየብቻ ማውጣት ይችላሉ፡-
- ከሼል አስተርጓሚ ጋር መስተጋብር ላይ ችግሮች. ለምሳሌ በፋይል እና በማውጫ ስሞች ውስጥ ያሉ ቦታዎችን ማምለጥ የመቆጣጠር አስፈላጊነት ፣ እያንዳንዱን ትዕዛዝ በሚፈጽምበት ጊዜ የተለየ የሼል አስተርጓሚ ለማስጀመር የሀብት ብክነት ፣ የ‹$› ምልክት ድርብ ትርጓሜ (በሼል እና በሠራው ውስጥ ጥቅም ላይ ይውላል) ፣ ግቤቶችን ግምት ውስጥ በማስገባት.
እነዚህ ችግሮች በ Goals ውስጥ የሚፈቱት የ"%" ምልክትን በመጠቀም ከ"$" ይልቅ የመሰብሰቢያ ተለዋዋጮች ("$" ለሼል ብቻ ነው የሚቀረው)፣ ተንታኝ በመጠቀም ነው።
LALR(1) , ዱካዎችን ከበቡ እና ስሞችን በጥቅሶች እና በኮድ ብሎኮች በጥምጥም ቅንፎች ማድመቅ ይጠይቃል። ሙሉው የትዕዛዝ እገዳ በአንድ የትእዛዝ ሼል ውስጥ ተጀምሯል ፣ እና በብሎክ ውስጥ ፣ ልዩ ቦታዎችን ሳይጠቅስ የዘፈቀደ ኮድ ቅርጸት ይፈቀዳል።ነበር፡
ኢላማ፡ foo.o bar.o
${CC} ${CFLAGS} $< -o $@ሆነ፡-
"ዒላማ": "foo.o", "bar.o" {
%CC %CFLAGS %<-o %@
}
ሌሎች የግብ ባህሪያት፡-
- የዘፈቀደ ስሞችን እና መለኪያዎችን ለመወሰን አማራጭ ድጋፍ፡
ግብ ሁሉ = : "ዒላማ"
የግብ አገናኝ =
"ዒላማ": "foo.o", "bar.o" {... }ግብ ማጠናቀር (ስም) =
"%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@} - ሁለት የማስጀመሪያ ሁነታዎች፡ የግንባታ ኢላማዎችን ከፋይል ስሞች ጋር ለማዛመድ ሁነታን ፍጠር (ለምሳሌ ፋይል "foo.o" ከዒላማ "%name.o" ጋር ይዛመዳል) እና ቀጥታ የማጠናቀር ሁነታ፡
ግብ ሁሉም = : አገናኝ
የግብ አገናኝ =
"ዒላማ" : "foo.o", ማጠናቀር ("ባር") {... }ግብ ማጠናቀር (ስም) =
"%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@} - የመሰብሰቢያ ዘዴዎች የሚወሰኑት የመሰብሰቢያ ዒላማውን እንደገና የመገጣጠም አስፈላጊነትን ለመወሰን በሚያስችሉ ልዩ ደንቦች ነው. የፋይል መኖር አገናኝ ከተሰራ ፣ ይህ በተዛማጅ ምልክት (“ዒላማ” ለደንቡ ስም እና * ፋይል (“ዒላማ”) ፋይሉን ለመፈተሽ) በግልፅ ይወሰናል።
"ዒላማ": "foo.o", "bar.o" {... }
* ፋይል ("ዒላማ"): * ፋይል ("foo.o"), * ፋይል ("bar.o") {... }
- ገንቢው የዘፈቀደ የመሰብሰቢያ ዘዴዎችን ባህሪያት ሊገልጽ ይችላል። የ«*ፋይል» ባንዲራ በነባሪነት ይገለጻል (@{...} የውጤቱን መጨቆን ያሳያል፣ እና "መውጫ 99" የመልሶ ግንባታ አስፈላጊነትን ያሳያል)
ዘዴ * ፋይል (የፋይል ስም) = @{
ፈተና -f % የፋይል ስም || 99 ውጣ
ለ f በ%ምንጭ: opennet.ru