{"id":55413,"date":"2020-01-20T00:00:00","date_gmt":"2020-01-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2"},"modified":"2020-02-18T14:03:31","modified_gmt":"2020-02-18T11:03:31","slug":"sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","title":{"rendered":"Red Hat'i t\u00f6\u00f6taja esitles kogumisse suvandit Goals. GNU Make 4.2 v\u00e4ljaanne","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Richard WM Jones, autor <noindex><a rel=\"nofollow\" href=\"http:\/\/libguestfs.org\/\">libguestfs<\/a><\/noindex>, t\u00f6\u00f6tades ettev\u00f5ttes Red Hat, <noindex><a rel=\"nofollow\" href=\"https:\/\/rwmj.wordpress.com\/2020\/01\/14\/goals-an-experimental-new-tool-which-generalizes-make\/\">esitles<\/a><\/noindex> uus kokkupanekuteenus <noindex><a rel=\"nofollow\" href=\"https:\/\/people.redhat.com\/~rjones\/goals\/\">Goals<\/a><\/noindex>, mille eesm\u00e4rgiks on likvideerida puudusi ja probleeme make utiliidis, s\u00e4ilitades samas skriptide \u00fcldise lihtsuse ja arusaadavuse. Make utiliit projekteeriti 1976. aastal ja sellel on mitmeid kontseptuaalseid puuduj\u00e4\u00e4ke, Goalsis plaanitakse need puuduj\u00e4\u00e4gid k\u00f5rvaldada, muutes samas \u00fcldist kontseptsiooni.<br \/>\nGoalsi l\u00e4htekood <noindex><a rel=\"nofollow\" href=\"http:\/\/git.annexia.org\/?p=goals.git;a=summary\">GNU \u00dcldine Avaliku litsentsi alusel.<\/a><\/noindex> on litsentseeritud GPLv2+ all. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/git.annexia.org\/?p=libguestfs-talks.git;a=blob;f=2020-goals\/notes.txt;h=b03d9e5ea1062869c642a1850a09340ea1575116;hb=HEAD\">Haldatavad probleemid<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Toetatakse ainult \u00fchte s\u00f5ltuvuste lahendamise taktikat \u2014 \u201ekomplektimise juhend k\u00e4ivitatakse, kui sihtfail puudub v\u00f5i on ta vanem kui \u00fcks s\u00f5ltuvus\u201c. Goalsis plaanitakse rakendada ka teisi taktikaid, nagu URL-i olemasolu kontrollimine, muudatuste ajakohasuse v\u00f5rdlemine igas failis, pakendi koostamise hindamine. <noindex><a rel=\"nofollow\" href=\"https:\/\/fedoraproject.org\/wiki\/Koji\">Koji<\/a><\/noindex>, kontrollsummade v\u00f5rdlemine, testide k\u00e4ivitamine valikulise testide vahelej\u00e4tmisega.\n<li class=\"l\"> Kogumise eesm\u00e4rkide t\u00f6\u00f6tlemisel ei eralda utiliit make faile ja reeglite nimesid ning seet\u00f5ttu puudub kontroll selle \u00fcle, et reegli k\u00e4ivitamisel luuakse t\u00f5eliselt deklareeritud fail. N\u00e4iteks, kui reegel nimega \u201etest\u201c, mis k\u00e4ivitab testide skripte, juhuslikult genereerib faili nimega \u201etest\u201c, siis testid l\u00f5petavad t\u00f6\u00f6tamise, kuna make arvab, et eesm\u00e4rk on koostatud ja ei vaja t\u00e4iendavat tegevust (probleemi lahendamiseks saab make'is m\u00e4\u00e4rata direktiivi \u201e.PHONY: test\u201c). Goals eristab selgelt faile ja reeglite nimesid.\n<p><center><img decoding=\"async\" alt=\"Red Hat&#039;i t\u00f6\u00f6taja esitles kogumisse suvandit Goals. GNU Make 4.2 v\u00e4ljaanne\" src=\"\/wp-content\/uploads\/2020\/01\/47f42c47650ed38ae84938634edf1328.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<li class=\"l\"> Probleem, mis seisneb ainult \u00fche parameetri esitamisel koostamisjuhistes.\n<p><center><img decoding=\"async\" alt=\"Red Hat&#039;i t\u00f6\u00f6taja esitles kogumisse suvandit Goals. GNU Make 4.2 v\u00e4ljaanne\" src=\"\/wp-content\/uploads\/2020\/01\/2a81f9f98745e6d2ddbb90e21b110295.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>Goals soovitab kasutada suvalist arvu nimetatud parameetreid. N\u00e4iteks saab eraldi eristada nime kaudu silumisfaili tunnust:<\/p>\n<p><center><img decoding=\"async\" alt=\"Red Hat&#039;i t\u00f6\u00f6taja esitles kogumisse suvandit Goals. GNU Make 4.2 v\u00e4ljaanne\" src=\"\/wp-content\/uploads\/2020\/01\/ffc783f17ae76bb4d928351ac216d828.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<li class=\"l\"> Probleemid shell- t\u00f5lgendamisega. N\u00e4iteks vajadus hallata ruumide escaping'i failide ja kataloogide nimedes, ressursside raiskamine iga k\u00e4su t\u00e4itmiseks eraldi shelli t\u00f5lgendaja k\u00e4ivitamisel, s\u00fcmboli \u201e$\u201c topelt t\u00f5lgendamine (kasutatakse nii shellis kui make'is), siseste indentide arvesse v\u00f5tmine.\n<p>M\u00e4\u00e4ratud probleemid lahendatakse Goalsis, kasutades s\u00fcmbolit \u201e%\u201c kogumismeetodite jaoks ( \u201e$\u201c j\u00e4\u00e4b ainult shellile), parseri rakendamisega. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/LALR(1)\">LALR(1)<\/a><\/noindex>, mis n\u00f5uab teede ja failide nimede \u00fcmbritsemist jutum\u00e4rkidega ja koodiblokkide eraldamist s\u00fcmbolitega. Kogu bloki k\u00e4sk k\u00e4ivitatakse \u00fches shelli eksemplaris, samas kui bloki sees lubatakse suvalist koodi vormindamist, madala juurdep\u00e4\u00e4su spetsiaalsetele ruumidele.<\/p>\n<p>Oli:<br \/>\n    target: foo.o bar.o<br \/>\n     ${CC} ${CFLAGS} $&lt; -o $@       <\/p>\n<p>Muudetud:<br \/>\n    \u201etarget\u201c: \u201efoo.o\u201c, \u201ebar.o\u201c {<br \/>\n        %CC %CFLAGS %&lt; -o %@<br \/>\n    }<\/p>\n<\/ul>\n<p>Goalsi muud omadused:<\/p>\n<ul>\n<li class=\"l\"> Valikuline tugi suvaliste nimede ja parameetrite m\u00e4\u00e4ramiseks:\n<p>     goal all = : \u201etarget\u201c<\/p>\n<p>     goal link =<br \/>\n     \u201etarget\u201c: \u201efoo.o\u201c, \u201ebar.o\u201c { \u2026 }<\/p>\n<p>     goal compile (name) =<br \/>\n     &#171;%name.o&#187; : &#171;%name.c&#187;, &#171;dep.h&#187; { %CC %CFLAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> Kaks k\u00e4itamisre\u017eiimi: make-re\u017eiim, mis vastab kogumismeetodele failide nimedele (n\u00e4iteks fail \u201efoo.o\u201c vastab eesm\u00e4rgile \u201e%name.o\u201c), ja otsek\u00e4ivitamise re\u017eiim:\n<p>     goal all = : link<\/p>\n<p>     goal link =<br \/>\n     \u201etarget\u201c: \u201efoo.o\u201c, compile (\u201ebar\u201c) { \u2026 }<\/p>\n<p>     goal compile (name) =<br \/>\n     &#171;%name.o&#187; : &#171;%name.c&#187;, &#171;dep.h&#187; { %CC %CFLAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> Kogumise taktika m\u00e4\u00e4ratakse spetsiaalsete reeglite abil, mille kaudu saab m\u00e4\u00e4rata, kas kogumismeetod tuleb uuesti koostada. Kui esinevad failide olemasolu seosed, m\u00e4\u00e4ratakse see selgelt vastava tunnuse kaudu (\u201etarget\u201c reegli nime jaoks ja *file(\u201etarget\u201c) faili kontrollimiseks).\n<p>  \u201etarget\u201c: \u201efoo.o\u201c, \u201ebar.o\u201c { \u2026 }<\/p>\n<p>  *file(\u201etarget\u201c): *file(\u201efoo.o\u201c), *file(\u201ebar.o\u201c) { \u2026 }<\/p>\n<li class=\"l\"> Arendaja v\u00f5ib m\u00e4\u00e4rata suvalisi kogumismeetodi tunnuseid. Tunnus \u201e*file\u201c on m\u00e4\u00e4ratud vaikev\u00e4\u00e4rtuseks (@{\u2026} viitab v\u00e4ljundi summutamisele ja \u201eexit 99\u201c signaalib vajaduse uuesti koostamise j\u00e4rele):\n<p>   tactic *file (failure_name) = {@{<br \/>\n      test -f %filename || exit 99<br \/>\n      for f in %<\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52215\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u043d\u043e\u0432\u0443\u044e \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 Goals, \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043d\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0443\u0442\u0438\u043b\u0438\u0442\u0435 make \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043e\u0431\u0449\u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 make \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432 1976 \u0433\u043e\u0434\u0443 \u0438 \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a, \u0432 Goals \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u0438 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u043e\u0431\u0449\u0435\u0439 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55413","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a Red Hat \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Goals. \u0412\u044b\u043f\u0443\u0441\u043a GNU Make 4.2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Red Hat'i t\u00f6\u00f6taja tutvustas koostamiss\u00fcsteemi Goals. GNU Make 4.2 v\u00e4ljalaskmine | ProHoster","description":"Richard Jones, libguestfsi autor, kes t\u00f6\u00f6tab ettev\u00f5ttes Red Hat.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a Red Hat \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Goals. \u0412\u044b\u043f\u0443\u0441\u043a GNU Make 4.2 | ProHoster","og:description":"\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat,","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55413","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:44:26","updated":"2022-09-28 03:55:10","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=55413"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55413\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=55413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=55413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=55413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}