{"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 Goals kogumis\u00fcsteemi. GNU Make 4.2 v\u00e4ljaanne","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Richard Jones (Richard WM Jones), autor <noindex><a rel=\"nofollow\" href=\"http:\/\/libguestfs.org\/\">libguestfs<\/a><\/noindex>, t\u00f6\u00f6tades Red Hat'is, <noindex><a rel=\"nofollow\" href=\"https:\/\/rwmj.wordpress.com\/2020\/01\/14\/goals-an-experimental-new-tool-which-generalizes-make\/\">esitles<\/a><\/noindex> uus kogumishaldus <noindex><a rel=\"nofollow\" href=\"https:\/\/people.redhat.com\/~rjones\/goals\/\">Goals<\/a><\/noindex>, mille eesm\u00e4rk on k\u00f5rvaldada puudused ja probleemid make utiliidis, s\u00e4ilitades scriptide \u00fcldise lihtsuse ja arusaadavuse. Make utiliit projekteeriti 1976. aastal ja sellel on mitmeid kontseptuaalseid puudusi, mida Goals'is plaanitakse k\u00f5rvaldada, mitte muutes \u00fcldkonseptsiooni.<br \/>\nGoals'i l\u00e4htekood <noindex><a rel=\"nofollow\" href=\"http:\/\/git.annexia.org\/?p=goals.git;a=summary\">levitatakse<\/a><\/noindex> GPLv2+ litsentsi alusel. <\/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\">Probleemid, mida lahendatakse<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Toetatakse ainult \u00fchte s\u00f5ltuvuste lahendamise taktikat \u2014 \u00abehitusjuhend k\u00e4ivitatakse, kui sihtfail puudub v\u00f5i on vanem kui \u00fcks s\u00f5ltuvustest\u00bb. Goals plaanib rakendada ka muid taktikaid, n\u00e4iteks URL-ide olemasolu kontrollimist, muudatusaja v\u00f5rdlemist mis tahes failiga, pakendi ehituse hindamist. <noindex><a rel=\"nofollow\" href=\"https:\/\/fedoraproject.org\/wiki\/Koji\">Koji<\/a><\/noindex>, kontrollsummade v\u00f5rdlemine, testide t\u00e4itmise k\u00e4ivitamine valikuliselt testide vahele j\u00e4tmisega.\n<li class=\"l\"> Konstruktsioonieesm\u00e4rkide t\u00f6\u00f6tlemisel ei eralda utiliit make faile ja reeglite nimesid, mist\u00f5ttu puudub kontroll selle \u00fcle, et reegli k\u00e4ivitamise ajal luuakse tegelikult fail, mille loomine on deklareeritud. N\u00e4iteks, kui reegli nimega \u00abtest\u00bb olemasolek k\u00e4ivitab testide skripte ja juhuslikult luuakse fail nimega \u00abtest\u00bb, siis testid ei k\u00e4ivitu, kuna make arvab, et eesm\u00e4rk on koostatud ja ei vaja t\u00e4iendavaid toiminguid (probleemi v\u00e4ltimiseks saab make\u2019is m\u00e4\u00e4rata direktiivi \u00ab.PHONY: test\u00bb). Goals eristab selgelt faile ja reeglite nimesid.\n<p><center><img decoding=\"async\" alt=\"Red Hat&#039;i t\u00f6\u00f6taja esitles Goals kogumis\u00fcsteemi. 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, et kogumisinstruktsioonidele antakse ainult \u00fcks parameeter.\n<p><center><img decoding=\"async\" alt=\"Red Hat&#039;i t\u00f6\u00f6taja esitles Goals kogumis\u00fcsteemi. 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'is soovitatakse kasutada suvalist arvu nimetatud parameetreid. N\u00e4iteks saab eristada nimest silumisefaili tunnust:<\/p>\n<p><center><img decoding=\"async\" alt=\"Red Hat&#039;i t\u00f6\u00f6taja esitles Goals kogumis\u00fcsteemi. 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 suhtlemisel shell-interpretatsiooniga. N\u00e4iteks vajadus kontrollida ruumide suvandite escaping failide ja kataloogide nimedes, ressursside raiskamine iga k\u00e4su t\u00e4itmisel eraldi shell-interpretatori k\u00e4ivitamiseks, s\u00fcmboli \u00ab$\u00bb kahekordne t\u00f5lgendamine (kasutatakse nii shellis kui ka make\u2019is), sissetulevatest tagasip\u00f6\u00f6rdedest arvestamine.\n<p>Antud probleemid lahendatakse Goalsis, kasutades s\u00fcmbolit \u00ab%\u00bb asemel \u00ab$\u00bb ehitusmuutujate jaoks (\u00ab$\u00bb j\u00e4\u00e4b alles ainult shell\u2019i jaoks), rakendades parsi. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/LALR(1)\">LALR(1)<\/a><\/noindex>, mis tuleb k\u00e4sitleda tee ja failinime \u00fcmbritsemisel jutum\u00e4rkides ning koodiblokkide m\u00e4\u00e4ratlemisel kurvi s\u00fcmbolitega. Kogu blokk k\u00e4ivitub \u00fches k\u00e4surea eksemplaris ja bloki sees on lubatud vaba koodiformaat, ilma spetsiaalsete vahedega seotuna.<\/p>\n<p>Oli:<br \/>\n    target: foo.o bar.o<br \/>\n     ${CC} ${CFLAGS} $&lt; -o $@       <\/p>\n<p>On:<br \/>\n    \u00abtarget\u00bb: \u00abfoo.o\u00bb, \u00abbar.o\u00bb {<br \/>\n        LAGS %&lt; -o %@<br \/>\n    }<\/p>\n<\/ul>\n<p>Muud Goalsi omadused:<\/p>\n<ul>\n<li class=\"l\"> Valikuline tugi suvaliste nimede ja parameetrite m\u00e4\u00e4ramiseks:\n<p>     eesm\u00e4rk all = : \u00abtarget\u00bb<\/p>\n<p>     goal link =<br \/>\n     \u00abtarget\u00bb: \u00abfoo.o\u00bb, \u00abbar.o\u00bb { \u2026 }<\/p>\n<p>     goal compile (name) =<br \/>\n     \u00ab%name.o\u00bb : \u00ab%name.c\u00bb, \u00abdep.h\u00bb { LAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> Kaks k\u00e4ivitamisre\u017eiimi: make re\u017eiim ehitusv\u00f5imaluste vastandamiseks failide nimedele (nt fail \u00abfoo.o\u00bb vastab eesm\u00e4rgile \u00ab%name.o\u00bb), ja otsek\u00e4ivituse kompileerimisre\u017eiim:\n<p>     goal all = : link<\/p>\n<p>     goal link =<br \/>\n     \u00abtarget\u00bb : \u00abfoo.o\u00bb, compile (\u00abbar\u00bb) { \u2026 }<\/p>\n<p>     goal compile (name) =<br \/>\n     \u00ab%name.o\u00bb : \u00ab%name.c\u00bb, \u00abdep.h\u00bb { LAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> Ehitusstrateegia m\u00e4\u00e4ratakse spetsiaalsete reeglite abil, millega saab m\u00e4\u00e4rata, kas ehitusmees peab uuesti ehitama. Kui seondumine on seotud faili olemasoluga, m\u00e4\u00e4ratakse see selgelt vastava n\u00e4itajaga (\u00abtarget\u00bb reegli nime jaoks ja *file(\u00abtarget\u00bb) faili kontrollimiseks).\n<p>  \u00abtarget\u00bb: \u00abfoo.o\u00bb, \u00abbar.o\u00bb { \u2026 }<\/p>\n<p>  *file(\u00abtarget\u00bb) : *file(\u00abfoo.o\u00bb), *file(\u00abbar.o\u00bb) { \u2026 }<\/p>\n<li class=\"l\"> Arendaja v\u00f5ib m\u00e4\u00e4ratleda meelevaldsed tunnused kogumistaktikate jaoks. Tunnus &#171;*file&#187; on vaikimisi m\u00e4\u00e4ratud (@{&#8230;} n\u00e4itab v\u00e4ljundi vaigistamist ja &#171;exit 99&#187; annab m\u00e4rku uuesti kogumise vajadusest):\n<p>   tactic *file (filename) = @{<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.1.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.1.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 Hati t\u00f6\u00f6taja tutvustas Goals ehituss\u00fcsteemi. GNU Make 4.2 v\u00e4ljaanne | ProHoster","description":"Richard Jones, libguestfs'i autor, kes t\u00f6\u00f6tab Red Hat'is,","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}]}}