Mosebeletsi e mong oa Red Hat o ile a hlahisa tsamaiso ea kopano ea Goals. Ho lokolloa ha GNU Etsa 4.2

Richard WM Jones, sengoli libapilo, ho sebetsa Red Hat, tsebisoa sesebelisoa se secha sa kopano Lipakane Tsa, e reretsoeng ho felisa mefokolo le mathata molemong oa ho etsa ha ho ntse ho bolokoa bonolo le kutloisiso ea lingoliloeng. The make utility e entsoe ka 1976 mme e na le mefokolo e mengata ea mohopolo; Lipakane li rera ho felisa mefokolo ena ntle le ho fetola mohopolo o akaretsang.
Lintlha tsa mohloli oa khoutu ajoa ke e nang le laesense tlasa GPLv2+.

Mathata a lokelang ho rarolloa:

  • Ts'ehetso bakeng sa leano le le leng feela la ho rarolla ts'epo - "taelo ea kopano e tsamaisoa haeba faele e shebiloeng e le sieo kapa e tsofetse ho feta e 'ngoe ea batho ba itšetlehileng ka eona." Lipakane li rera ho kenya ts'ebetsong maqheka a mang, joalo ka ho lekola boteng ba URL, ho bapisa linako tsa phetoho le faele efe kapa efe, ho lekola sephutheloana se hahelletsoeng. kōji, papiso ea li-checksum, ho tsamaisa linyeoe tsa liteko ka ho tlola liteko ka mokhoa o ikhethileng.
  • Ha ho sebetsana le lipakane tsa ho haha, ho etsa ha ho arole lifaele le mabitso a molao, 'me ka lebaka leo, ha ho na ho hlahloba hore ha ho etsoa molao, faele eo e ipolelang hore e bōpiloe e tla bōptjoa. Ka mohlala, haeba u na le molao o bitsoang "test" o tsamaisang mangolo ka liteko, faele e bitsoang "test" e entsoe ka phoso, joale liteko ha li sa tla bitsoa, ​​kaha make e tla nka hore sepheo se hahiloe 'me ha se hloke. ketso efe kapa efe (bakeng sa Ho rarolla bothata bo entsoeng, o ka hlakisa taelo ea ".PHONY: test"). Lipakane li arola lifaele le mabitso a melao ka ho hlaka.

    Mosebeletsi e mong oa Red Hat o ile a hlahisa tsamaiso ea kopano ea Goals. Ho lokolloa ha GNU Etsa 4.2

  • Bothata ba ho fana ka parameter e le 'ngoe feela bakeng sa litaelo tsa kopano.

    Mosebeletsi e mong oa Red Hat o ile a hlahisa tsamaiso ea kopano ea Goals. Ho lokolloa ha GNU Etsa 4.2

    Lipakane li u lumella ho sebelisa palo e sa lekanyetsoang ea li-parameter tse boletsoeng. Mohlala, o ka ntša ka thoko letšoao la faele ea debug ho tsoa ho lebitso:

    Mosebeletsi e mong oa Red Hat o ile a hlahisa tsamaiso ea kopano ea Goals. Ho lokolloa ha GNU Etsa 4.2

  • Mathata a ho sebelisana le mofetoleli oa likhetla. Ka mohlala, tlhokahalo ea ho laola ho phonyoha ha libaka ka mabitso a lifaele le li-directory, ho senyeha ha lisebelisoa ho qala mofetoleli oa khetla e arohaneng ha a phethahatsa taelo e 'ngoe le e' ngoe, tlhaloso e habeli ea "$" (e sebelisoang ka bobeli le ho etsa), ho ela hloko indentations.

    Mathata ana a rarolloa ho Lipakane ka ho sebelisa letšoao la "%" ho e-na le "$" bakeng sa mefuta-futa ea kopano ("$" e sala feela bakeng sa khetla), ho sebelisoa mohlahlobi. LALR(1), e hlokang hore u pota-potile litsela le mabitso a lifaele ka mantsoe a qotsitsoeng le ho totobatsa li-block blocks ka li-curly braces. Taelo eohle ea taelo e qalisoa ketsahalong e le 'ngoe ea khetla ea taelo,' me ka har'a thibelo, ho etsoa ka mokhoa o sa lumellaneng oa khoutu ho lumelloa, ntle le ho bua ka libaka tse khethehileng.

    E ne e le:
    sepheo: foo.o bar.o
    ${CC} ${CFLAGS} $< -o $@

    E fetohile:
    "target": "foo.o", "bar.o" {
    %CC %CFLAGS %< -o %@
    }

Likarolo tse ling tsa Lipakane:

  • Tšehetso ea boikhethelo bakeng sa ho hlakisa mabitso le li-parameter:

    sepheo kaofela = : "sepheo"

    sehokelo sa sepheo =
    "target" : "foo.o", "bar.o" {... }

    sepheo bokella (lebitso) =
    "%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@ }

  • Mekhoa e 'meli ea ho qala: etsa mokhoa oa ho tsamaisana le lipehelo tsa kaho le mabitso a lifaele (mohlala, faele "foo.o" e tsamaisana le sepheo "%name.o"), le mokhoa oa ho bokella ka kotloloho:

    sepheo kaofela = : sehokelo

    sehokelo sa sepheo =
    "target" : "foo.o", bokella ("bar") {... }

    sepheo bokella (lebitso) =
    "%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@ }

  • Maqheka a kopano a khethoa ke melao e khethehileng e ka sebelisoang ho fumana tlhokahalo ea ho tsosolosa sepheo sa kopano. Haeba khokahanyo e etsoa ho ba teng ha faele, joale sena se khethoa ka ho hlaka ka letšoao le lumellanang ("sepheo" bakeng sa lebitso la molao le * faele ("sepheo") bakeng sa ho hlahloba faele).

    "target" : "foo.o", "bar.o" {... }

    *file("target") : *file("foo.o"), *file("bar.o") { ... }

  • Moqapi a ka hlalosa litšobotsi tse sa lumellaneng tsa maqheka a kopano. Folakha ea "*file" e hlalosoa ka mokhoa oa kamehla (@{...} e bonts'a khatello ea tlhahiso, 'me "tsoa 99" e bontša tlhoko ea ho aha bocha):

    leqheka *faele (lebitso la faele) = @{
    teko -f % filename || tsoa 99
    bakeng sa f ka%

    Source: opennet.ru

Eketsa ka tlhaloso