O GNU Make Book: Demystifying Linux Build Automation

Ademais de escribir sobre Linux e escribir comentarios e tutoriais sobre distribucións e ferramentas, tamén estou moi involucrado no desenvolvemento de software. Desafortunadamente, o 99,9% do desenvolvemento de software ten lugar na plataforma Windows.

Teño máis de 20 anos de experiencia como desenvolvedor de C ++, Visual Basic, VB.NET e C # e tamén estou moi ben con SQL Server como DBA e desenvolvedor.

O que non estou tan bo é desenvolver software para Linux. É algo que realmente nunca me molestou. A razón principal é que despois de desenvolver software durante o día o último que quero facer é sentar ao redor dunha noite escribindo máis software.

Eu, obviamente, gusto de xogar con script e escribir un pequeno programa pequeno. Estes adoitan ser para proxectos electrónicos baseados no Raspberry PI .

Unha cousa que moitos desenvolvedores na plataforma Windows terán problemas con cando pasen primeiro a Linux é aprender sobre as ferramentas necesarias para construír e empregar as aplicacións.

De lonxe, o tipo de aplicación máis sinxelo a desenvolver son aplicacións web porque generalmente non precisan o código compilado (PHP, Perl, Python) e os ficheiros despréganse nun lugar establecido no servidor web.

Unha gran cantidade de aplicacións construídas para Linux desenvolvéronse usando C, C ++ ou Python. A compilación dun único programa C é relativamente sinxelo, pero cando cómpre compilar unha serie de programas C con varias dependencias, as cousas son un pouco máis complicadas.

GNU Make é unha ferramenta de script de automatización de compilación que axuda a compilar as túas aplicacións unha e outra vez e de diferentes xeitos. Por exemplo, pode fornecer un parámetro que, dependendo do valor, compilará unha aplicación con 64 bits ou 32 bits.

O libro de GNU Make foi escrito por John Graham-Cumming para axudar aos usuarios de GNU a conseguir un control máis firme das complexidades asociadas a GNU Make.

O libro divídese en seis capítulos:

  1. Os conceptos básicos revisados
  2. Depuración do ficheiro makefile
  3. Construción e reconstrución
  4. Trampas e problemas
  5. Empurrar o sobre
  6. A biblioteca estándar de GNU Make

Non creo que o libro estea realmente destinado aos principiantes porque carece de certas aclaracións que esperaría ao aprender un novo tema como "¿Que é GNU Make?", "¿Como creo un ficheiro Make?", "Por que está a facer mellor que compilar cada programa un por un? " e "¿Como compilar os programas que usan GNU Make?". Todas estas áreas están cubertas no manual de GNU Make .

O feito de que o primeiro capítulo chame "The Basics Revisited" en oposición a "The Basics" mostra claramente que se espera que teña unha base na materia antes de comezar.

O primeiro capítulo abarca todos os conceptos básicos como o uso das variables, os contornos utilizados polos comandos e o contorno $ (Shell). A medida que avanza o capítulo introdúcese no tema de comparación, listas e funcións definidas polo usuario.

Se estivo a usar GNU Make por un tempo pero aínda non se considera un experto, hai algúns consellos e consellos simples que o axudarán a comprender certos meandros que poden non ser inmediatamente evidentes.

O segundo capítulo será un debuxo de deus para aqueles de vostedes que intentaron atrapar erros nos scripts de compilación. A sección "Depuración de ficheiros de ficheiros" está chea de excelentes consellos e suxestións para depurar Makefiles e inclúe seccións sobre a impresión de valores de variábeis e mesmo abaratando o valor de cada variable. Máis aló do capítulo, hai unha guía para o depurador de GNU que pode empregar para pasar por scripts.

O terceiro capítulo inclúe exemplos de makefiles pero máis que iso mostra como crear Makefiles que pode executar unha e outra vez.

"Pitfalls and Problems" mira as diferenzas entre certos termos como = and: =, e ifndef e? =.

Atopei cando fun máis ao longo do libro porque non estou tentando activamente usar GNU Make e porque o meu coñecemento está nun nivel moi básico, algúns dos temas foron moi por riba da miña cabeza.

Ata o momento chegu ao capítulo "Empurrar o sobre" os meus ollos acristaláronse un pouco.

O meu resumo principal, se tivese que resumir este libro, é que o autor coñece claramente as súas cousas e tratou de transmitir a maior información posible.

O problema é que, ás veces, cando un experto en temas intenta escribir algo, eles teñen este "oh é doado, todo o que tes que facer é ..." aura sobre eles.

O selo de goma na miña porta traseira saíu a semana pasada e como tiña un par de anos chamei á compañía que a equipaba xa que aínda está en garantía.

A dama do teléfono dixo: "iso é correcto, vou enviarlle un novo selo".

Eu dixen: "¿Debo encaixar a min mesmo? É algo que podo facer".

A resposta foi "Claro que podes, o único que tes que facer é quitarse a porta, axustar o selo e volver a poñer a porta".

Agora o meu pensamento inmediato era "woah, rebobinar un pouco alí. ¡Quítase a porta!". Non estou habilitado para eliminar unha porta, encaixar un selo e volver á porta. Deixo isto aos expertos.

Con este libro, creo que necesita outro libro e certa experiencia escribindo Makefiles antes de que o considere útil.

Creo que as suxestións, consellos e coñecementos proporcionados axudarían a algunhas persoas a dicir "Oh, por iso é que iso fai iso" ou "non me decatei de que podería facelo así".

A miña avaliación é, polo tanto, que debe comprar este libro se está a buscar aclaración ou máis intermedio ao coñecemento avanzado sobre GNU Make pero non é un libro para principiantes.