Otu onye ọrụ Red Hat gosipụtara usoro mgbakọ Goals. Mwepụta nke GNU Mee 4.2

Richard WM Jones, onye edemede ndị na -ekwu okwu efuna-arụ ọrụ na Red Hat, webatara ọhụrụ mgbakọ ịba uru Goals, iji kpochapụ adịghị ike na nsogbu na uru nke ime ka ị na-ejigide ịdị mfe na nghọta nke edemede. Emebere ihe eji eme ihe na 1976 ma nwee ọtụtụ mmejọ echiche;
Koodu isi mmalite ebumnuche kesara site nyere ikike n'okpuru GPLv2+.

Nsogbu a ga-edozi:

  • Nkwado maka naanị otu usoro mkpebi ndabere - "ntụziaka mgbakọ na-agba ọsọ ma ọ bụrụ na faịlụ echere efu efu ma ọ bụ karịa otu n'ime ihe ndabere." Ebumnobi na-ezube itinye usoro ndị ọzọ, dị ka ịlele maka ọnụnọ URL, na-atụnyere oge mgbanwe na faịlụ ọ bụla, na-enyocha ngwungwu ewu na kọji, ntụnyere nke checksums, na-agba ọsọ ule na-ahọrọ ịwụ nke ule.
  • Mgbe nhazi ihe mgbaru ọsọ, mee adịghị ekewa faịlụ na aha iwu, na n'ihi ya, ọ dịghị elele na mgbe na-agba ọsọ a iwu, faịlụ ọ na-ekwu na e kere ga-mere n'ezie. Dịka ọmụmaatụ, ọ bụrụ na ị nwere iwu a na-akpọ "ule" nke na-eme scripts na ule, a na-emepụta faịlụ aha ya bụ "ule" na mberede, mgbe ahụ, a gaghị akpọ ule ndị ahụ ọzọ, ebe ọ bụ na-eme ka ọ bụrụ na e wuru ihe mgbaru ọsọ ma ọ dịghị achọ. ihe ọ bụla omume (maka Iji rụọ ọrụ gburugburu nsogbu a na-eme, ị nwere ike ezipụta ".PHONY: test" ntụziaka). Ebumnuche na-ekewapụta faịlụ na aha iwu n'ụzọ doro anya.

    Otu onye ọrụ Red Hat gosipụtara usoro mgbakọ Goals. Mwepụta nke GNU Mee 4.2

  • Nsogbu na ịnye naanị otu paramita maka ntuziaka mgbakọ.

    Otu onye ọrụ Red Hat gosipụtara usoro mgbakọ Goals. Mwepụta nke GNU Mee 4.2

    Ebumnobi na-enye gị ohere iji ọnụọgụ aka ike nke parampat akpọrọ aha. Dịka ọmụmaatụ, ị nwere ike wepụ akara nke faịlụ debug iche iche n'aha:

    Otu onye ọrụ Red Hat gosipụtara usoro mgbakọ Goals. Mwepụta nke GNU Mee 4.2

  • Nsogbu na-emekọrịta ihe na onye ntụgharị okwu shei. Dịka ọmụmaatụ, ọ dị mkpa ijikwa ụzọ mgbapụ nke oghere dị na faịlụ na ndekọ aha, mkpofu ihe onwunwe na ịmepụta onye ntụgharị okwu shei dị iche iche mgbe ị na-eme iwu ọ bụla, nkọwa abụọ nke àgwà "$" (eji na shei ma mee), na-eburu n'uche indentations.

    A na-edozi nsogbu ndị a na ebumnuche site na iji akara "%" kama "$" maka mgbanwe mgbakọ ("$" na-anọ naanị maka shei), na-eji parser. LALR (1), nke na-achọ ka ị gbachie okporo ụzọ na faịlụ aha na ntinye akwụkwọ ma gosipụta ngọngọ koodu na ihe nkwado. A na-ewepụta ihe mgbochi iwu niile n'otu oge nke shei iwu ahụ, a na-ahapụkwa usoro koodu aka ike n'ime ngọngọ ahụ, na-ekwughị maka oghere pụrụ iche.

    bụ:
    ebumnuche: foo.o bar.o
    ${CC} ${CFLAGS} $<-o $@

    ghọrọ:
    "target": "foo.o", "bar.o" {
    %CC %CFLAGS %<-o %@
    }

Atụmatụ ndị ọzọ nke ebumnuche:

  • Nkwado nhọrọ maka ịkpọpụta aha aka ike na parampat:

    ihe mgbaru ọsọ niile = : "ebumnobi"

    njikọ mgbaru ọsọ =
    "target": "foo.o", "bar.o" {...}

    mkpokọta ihe mgbaru ọsọ (aha) =
    "%name.o": "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@}

  • Ụdị mwepụta abụọ: mee ka ọnọdụ dabara na ebumnuche ewu na aha faịlụ (dịka faịlụ "foo.o" dakọtara ebumnuche "% aha.o"), yana ụdị nchịkọta ozugbo:

    mgbaru ọsọ niile =: njikọ

    njikọ mgbaru ọsọ =
    "target": "foo.o", chịkọta (" mmanya") {... }

    mkpokọta ihe mgbaru ọsọ (aha) =
    "%name.o": "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@}

  • A na-ekpebi usoro mgbakọ site na iwu pụrụ iche nke enwere ike iji chọpụta mkpa ọ dị iji chịkọta ebumnuche mgbakọ. Ọ bụrụ na e mere njikọ na ọnụnọ nke faịlụ, mgbe ahụ, a na-ekpebi nke a n'ụzọ doro anya site na akara kwekọrọ ("lekwasịrị" maka aha iwu na * faịlụ ("lekwasịrị") maka ịlele faịlụ ahụ).

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

    * faịlụ ("lekwasịrị"): * faịlụ ("foo.o"), * faịlụ ("bar.o") {... }

  • Onye nrụpụta nwere ike kọwapụta njirimara aka ike nke usoro mgbakọ. A kọwapụtara ọkọlọtọ "*faịlụ" na ndabara (@{...} na-egosi nkwụsị nke mmepụta, yana "wepụ 99" na-egosi mkpa ọ dị maka iwughachi):

    tactic * faịlụ (aha faịlụ) = @{
    ule -f % aha faịlụ || pụọ 99
    maka f na%

    isi: opennet.ru

Tinye a comment