GNU Make Book - Demistificarea Linux Build Automation

Pe lângă scrierea despre Linux și scrierea de recenzii și tutoriale despre distribuții și instrumente, sunt, de asemenea, foarte implicat în dezvoltarea de software. Din păcate, 99,9% din această dezvoltare software are loc pe platforma Windows.

Am peste 20 de ani de experiență ca dezvoltator C ++, Visual Basic, VB.NET și C # și sunt, de asemenea, o mână dab cu SQL Server atât ca DBA, cât și ca dezvoltator.

Ceea ce nu sunt atât de bun la dezvoltarea de software pentru Linux. Este doar ceva cu care nu m-am deranjat niciodată. Motivul principal este că, după ce am dezvoltat software-ul în timpul zilei, ultimul lucru pe care vreau să-l fac este să stau de o seară scriind mai multe programe.

În mod evident, îmi place să scot scripturile și să scriu programul mic ciudat. Acestea sunt, de obicei, pentru proiecte bazate pe electronice pe PI de Raspberry .

Un lucru pe care mulți dezvoltatori de pe platforma Windows o vor avea probleme atunci când se deplasează mai întâi la Linux învață despre instrumentele necesare pentru a construi și a împacheta aplicații.

Cel mai simplu tip de aplicație de dezvoltat sunt aplicațiile web, deoarece, în general, acestea nu necesită cod compilat (PHP, Perl, Python) și fișierele sunt implementate într-un loc setat pe serverul web.

Un număr mare de aplicații construite pentru Linux sunt dezvoltate folosind C, C ++ sau Python. Compilarea unui singur program C este relativ ușoară, dar când trebuie să compilați un număr de programe C cu multiple dependențe, lucrurile devin puțin mai complicate.

GNU Make este un instrument de construire a automatizării de scripting care vă ajută să vă compilați aplicațiile din nou și din nou și în moduri diferite. De exemplu, puteți furniza un parametru care, în funcție de valoare, va compila o aplicație care utilizează 64 de biți sau 32 de biți.

Cartea GNU Make a fost scrisă de John Graham-Cumming pentru a ajuta utilizatorii GNU Make să obțină un control strâns al complexităților asociate cu GNU Make.

Cartea este împărțită în șase capitole:

  1. Bazele revizuite
  2. Make Debugging
  3. Construcția și reconstrucția
  4. Capcanele și problemele
  5. Împingeți plicul
  6. Biblioteca standard GNU Make

Nu cred că această carte este cu adevărat adresată începătorilor pentru că nu are anumite clarificări pe care le-ați putea aștepta atunci când ați învățat un subiect nou cum ar fi "Ce este GNU?", "Cum creez un fișier Make?", "De ce se utilizează Faceți mai bine decât compilarea fiecărui program unul câte unul? " și "Cum pot compila programe utilizând GNU Make?". Toate aceste domenii sunt acoperite în manualul GNU Make .

Faptul că primul capitol este numit "Bazele revizuite", spre deosebire de "Elementele de bază", arată în mod clar că este de așteptat să aveți o bază în subiectul înainte de a începe.

Primul capitol acoperă toate elementele de bază cum ar fi utilizarea variabilelor, mediile folosite de comenzi și mediul $ (Shell). Pe măsură ce capitolul se mișcă, intrați în subiectul comparării, listelor și funcțiilor definite de utilizator.

Dacă ați folosit GNU Make pentru puțin timp, dar nu vă considerați încă un expert, există câteva sugestii și sfaturi utile care vă vor ajuta să înțelegeți anumite intricaciuni care nu pot fi imediat evidente.

Cel de-al doilea capitol va fi o poveste de dragoste pentru cei dintre voi care au încercat să prindă greșeli în scrierea de scripturi. Secțiunea "Debugare Makefile" este plină de sugestii excelente și sfaturi pentru depanarea aplicațiilor Makefiles și include secțiuni privind tipărirea valorilor variabilelor și chiar dumpingul valorii fiecărei variabile. Mai departe în capitol, există un ghid pentru GNU Debugger pe care îl puteți folosi pentru a trece prin scripturi.

Cel de-al treilea capitol include exemple de makefile, dar mai mult decât atât, vă arată cum să creați fișiere Make pentru a putea rula din nou și din nou.

"Capcane și probleme" privește diferențele dintre anumiți termeni, cum ar fi = și: =, și ifndef și? =.

Am constatat că am mers mai departe prin carte că, pentru că nu încerc în mod activ să folosesc GNU Make și pentru că cunoștințele mele sunt la un nivel foarte de bază, o parte din subiectul a trecut foarte mult peste capul meu.

Până când am ajuns la capitolul "Pusul în plic", ochii mi-au strălucit oarecum.

Rezumatul meu principal, dacă trebuia să rezumă această carte, este că autorul își cunoaște în mod clar lucrurile și că a încercat să transmită cât mai multe informații posibil.

Problema este că, uneori, atunci când un expert în materie încearcă să scrie ceva în jos, are această "ah ușoară, tot ceea ce trebuie să faceți este ..." aura despre ei.

Garnitura de cauciuc de pe ușa din spate a ieșit săptămâna trecută și, deși este doar câțiva ani, am sunat compania care l-am montat, deoarece este încă în garanție.

Doamna de la telefon a spus: "Oh, ok, îți trimit un nou sigiliu".

I-am spus: "Oare trebuie sa-l incadrez singura? Este ceva ce pot face".

Răspunsul a fost: "Sigur că puteți, tot ce trebuie să faceți este să scoateți ușa, să fixați sigiliul și să reintroduceți ușa".

Acum, gândul meu instant a fost "Woah, rewind un pic acolo, scoateți ușa?!". Nu sunt calificat să îndepărtez o ușă, să mănânc o garnitură și să pun la loc ușa. Lasă asta experților.

Cu această carte, simt că aveți nevoie de o altă carte și o anumită experiență scrisă pe Makefiles înainte de a vă fi de folos.

Cred că sugestiile, sfaturile și cunoștințele furnizate îi vor ajuta pe unii să spună "Oh, de aceea face asta" sau "Nu mi-am dat seama că ai putea să o faci așa".

Aprecierea mea este, prin urmare, că ar trebui să cumpărați această carte dacă căutați clarificări sau mai multe cunoștințe intermediare și avansate despre GNU Make, dar nu este o carte pentru începători.