Ang GNU Make Book - Demystifying Linux Build Automation

Pati na rin ang pagsulat tungkol sa Linux at pagsulat ng mga review at mga tutorial tungkol sa mga distribusyon at mga tool din ako ay lubos na kasangkot sa software development. Sa kasamaang palad, 99.9% ng pag-unlad ng software ay tumatagal ng lugar sa platform ng Windows.

Mayroon akong higit sa 20 taon na karanasan bilang isang C ++, Visual Basic, VB.NET, at C # developer at ako din ay isang dab kamay sa SQL Server parehong bilang isang DBA at isang developer.

Kung ano ang hindi ko napakahusay sa pagbubuo ng software para sa Linux. Ito ay isang bagay na hindi ko talaga naramdaman. Ang pangunahing dahilan ay na pagkatapos ng pagbuo ng software sa araw na ang huling bagay na nais kong gawin ay umupo sa paligid ng isang gabi pagsulat ng higit pang software.

Malinaw kong ginagawa ang pag-uusap sa pag-script at pagsulat ng kakaunting maliit na programa. Ang mga ito ay karaniwang para sa mga proyekto batay sa electronics sa Raspberry PI .

Isang bagay na maraming mga developer sa platform ng Windows ay magkakaroon ng problema sa kapag sila ay unang lumipat sa Linux ay pag-aaral tungkol sa mga tool na kinakailangan upang bumuo at pakete ng mga application.

Sa pamamagitan ng malayo ang pinakamadaling uri ng application na bumuo ay mga web application dahil sa pangkalahatan hindi nila nangangailangan ng pinagsama-sama na code (PHP, Perl, Python) at ang mga file ay na-deploy sa isang nakalagay na lugar sa web server.

Ang isang malaking bilang ng mga application na binuo para sa Linux ay binuo gamit ang C, C + + o Python. Ang pag-compile ng isang programa ng C ay relatibong madali ngunit kapag kailangan mo na sumulat ng libro ang isang bilang ng mga programa sa C na may maraming dependency ang mga bagay ay nakakakuha ng kaunti pa nakakalito.

Ang GNU Make ay isang tool sa pagbuo ng pag-aautomat ng script na tumutulong sa iyo na i-compile muli ang iyong mga application at sa iba't ibang paraan. Halimbawa, maaari kang magbigay ng isang parameter na depende sa halaga ay sumulat ng libro sa isang application gamit ang 64-bit o 32-bit.

Ang GNU Make book ay isinulat ni John Graham-Cumming upang tulungan ang mga gumagamit ng GNU Gumawa ng makakuha ng isang masigpit na mahigpit na pagkakahawak ng mga pagkakumplikado na nauugnay sa GNU Make.

Ang aklat ay nahati sa anim na kabanata:

  1. Ang Mga Pangunahing Kaalaman ay Revisited
  2. Makefile Debugging
  3. Pagbuo at muling pagtatayo
  4. Mga Pitfalls at Problema
  5. Itulak ang Sobre
  6. Gumawa ng Standard Library ang GNU

Hindi ako naniniwala na ang libro ay talagang naglalayon sa mga nagsisimula dahil wala itong ilang mga paglilinaw na iyong inaasahan sa pag-aaral ng isang bagong paksa tulad ng "Ano ang Gawa ng GNU?", "Paano ako makakagawa ng Gumawa ng file?", "Bakit ay gumagamit ng Gumawa ng mas mahusay kaysa sa pag-ipon ng bawat programa ng isa-isa? " at "Paano ko itatabi ang mga programa gamit ang GNU Make?". Ang lahat ng mga paksang ito ay sakop sa GNU Make Manual .

Ang katotohanang ang unang kabanata ay tinatawag na "Ang Mga Pangunahing Kaalaman na Revisited" bilang kabaligtaran sa "Ang Mga Pangunahing Kaalaman" ay malinaw na nagpapakita na inaasahang magkaroon ka ng saligan sa paksa bago ka magsimula.

Sinasaklaw ng unang kabanata ang lahat ng mga pangunahing kaalaman tulad ng paggamit ng mga variable, mga kapaligiran na ginagamit ng mga utos at ang $ (Shell) na kapaligiran. Habang ang kabanata ay gumagalaw sa iyo nakarating sa paksa ng paghahambing, mga listahan, at tinukoy ng mga function ng gumagamit.

Kung gumamit ka ng GNU Make for a little while ngunit hindi mo pa itinuturing ang iyong sarili na isang dalubhasa may ilang mga magandang pahiwatig at mga tip na tutulong sa iyo na maintindihan ang ilang mga intricacy na maaaring hindi agad maliwanag.

Ang ikalawang kabanata ay magiging isang kaloob na kalooban para sa mga sa iyo na nagsisikap na mabitag mga pagkakamali sa pagtatayo ng mga script. Ang "Makefile Debugging" na seksyon ay puno ng mga mahusay na pahiwatig at mga tip para sa debugging Makefiles at may kasamang mga seksyon sa mga halaga ng pag-print ng mga variable at kahit na ibinubura ang halaga ng bawat variable. Karagdagang sa kabanata, may gabay sa GNU Debugger na maaari mong gamitin upang hakbang sa pamamagitan ng mga script.

Kabilang sa ikatlong kabanata ang mga halimbawa makefiles ngunit higit pa sa na nagpapakita sa iyo kung paano lumikha ng Makefiles na maaari mong patakbuhin muli at muli.

Tinitingnan ng "Mga Pitfalls at Problema" ang mga pagkakaiba sa pagitan ng ilang mga termino tulad ng = at: =, at ifndef at? =.

Natagpuan ko habang dumadaan ako sa pamamagitan ng aklat na dahil hindi ako aktibong nagsisikap na gumamit ng GNU Make at dahil ang aking kaalaman ay nasa isang napaka basic na antas na ang ilan sa mga paksa ay napakarami sa aking ulo.

Sa oras na nakuha ko sa "Pushing The Envelope" na kabanata ang aking mga mata ay glazed sa medyo.

Ang aking pangunahing buod, kung kailangan kong buuin ang aklat na ito, ay malinaw na alam ng may-akda ang kanyang mga bagay-bagay at sinubukan na ipasa ang mas maraming impormasyon hangga't maaari.

Ang problema ay kung minsan kapag ang isang eksperto sa paksa ay sumusubok na magsulat ng isang bagay down na mayroon sila na ito "oh madaling nito, ang lahat ng kailangan mong gawin ay ...." aura tungkol sa mga ito.

Ang goma seal sa aking pinto sa likod ay dumating off noong nakaraang linggo at bilang ito ay lamang ng isang pares ng mga taon gulang na tinatawag ko ang kumpanya na karapat-dapat ito bilang ito ay pa rin sa warranty.

Ang babaeng nasa telepono ay nagsabi, "oh na ok, padadalhan kita ng bagong selyo".

Sinabi ko "O kailangan ko bang magkasya ito sa aking sarili? Iyan ba ang isang bagay na magagawa ko".

Ang tugon ay "Tiyak na magagawa mo, ang kailangan mo lang gawin ay alisin ang pinto, magkasya ang selyo at ibalik ang pinto".

Ngayon ang aking mga instant na pag-iisip ay "woah, rewind kaunti doon. Mag-alis ng pinto?!?". Hindi ako karapat-dapat na mag-alis ng pinto, magkasya sa isang selyo at gawing muli ang pinto. Iniwan ko iyan sa mga eksperto.

Sa aklat na ito, nararamdaman ko na kailangan mo ng isa pang libro at isang tiyak na halaga ng karanasan sa pagsusulat ng Makefiles bago mo ito mapakinabangan.

Sa tingin ko ang mga pahiwatig, mga tip, at kaalaman na ibinigay ay makakatulong sa ilang mga tao na nagsasabing "Oh, kaya iyon ang dahilan kung bakit iyon" o "Hindi ko napagtanto na maaari mong gawin iyon nang ganoon".

Kung gayon, ang aking pagtatasa ay dapat mong bilhin ang aklat na ito kung ikaw ay naghahanap ng paglilinaw o higit pang intermediate sa mga advanced na kaalaman sa GNU Gumawa ngunit ito ay hindi isang libro para sa mga nagsisimula.