The GNU Make Book – Construir automatización


Además de escribir sobre Linux y escribir reseñas y tutoriales sobre distribuciones y herramientas, también estoy muy involucrado en el desarrollo de software. Desafortunadamente, el 99,9% de ese desarrollo de software tiene lugar en la plataforma Windows.

Tengo más de 20 años de experiencia como desarrollador de C++, Visual Basic, VB.NET, y C# y también soy un experto en SQL Server como DBA y como desarrollador.

En lo que no soy muy bueno es en desarrollar software para Linux. Es algo con lo que nunca me he molestado. La razón principal es que después de desarrollar software durante el día lo último que quiero hacer es sentarme a escribir más software.

Obviamente me gusta jugar con los guiones y escribir un pequeño programa. Estos son generalmente para proyectos electrónicos basados en el PI Frambuesa.

Una de las cosas con las que muchos desarrolladores en la plataforma Windows tendrán problemas cuando se trasladen por primera vez a Linux es aprender sobre las herramientas necesarias para crear y empaquetar aplicaciones.

El tipo de aplicación más fácil de desarrollar son las aplicaciones web porque generalmente no requieren código compilado (PHP, Perl, Python) y los archivos se despliegan en un lugar fijo en el servidor web.

Un gran número de aplicaciones construidas para Linux se desarrollan usando C, C++ o Python. Compilar un solo programa en C es relativamente fácil, pero cuando se necesita compilar un número de programas en C con múltiples dependencias las cosas se ponen un poco más complicadas.

GNU Make es una herramienta de creación de scripts de automatización que le ayuda a compilar sus aplicaciones una y otra vez y de diferentes maneras. Por ejemplo, puede proporcionar un parámetro que, dependiendo del valor, compilará una aplicación utilizando 64 o 32 bits.

El libro de GNU Make ha sido escrito por John Graham-Cumming para ayudar a los usuarios de GNU Make a comprender mejor las complejidades asociadas con GNU Make.

El libro está dividido en seis capítulos:

  1. Lo Básico Revisado
  2. Depuración de Makefile
  3. Construcción y reconstrucción
  4. Trampas y problemas
  5. Empujar el sobre
  6. La biblioteca estándar de GNU

No creo que el libro esté realmente dirigido a principiantes porque carece de ciertas aclaraciones que se podrían esperar al aprender un nuevo tema como «¿Qué es GNU Make? y cómo crear un archivo Make», «¿Por qué es mejor usar Make que compilar cada programa uno por uno? Todas estas áreas temáticas están cubiertas en el manual de GNU Make.

El hecho de que el primer capítulo se llame «The Básico Revisited» en contraposición a «The Básico» muestra claramente que se espera que usted tenga una base en el tema antes de comenzar.

El primer capítulo cubre todos los aspectos básicos como el uso de variables, los entornos utilizados por los comandos y el entorno $(Shell). A medida que el capítulo avanza, usted entra en el tema de la comparación, las listas y las funciones definidas por el usuario.

Si ha estado usando GNU Make por un tiempo pero aún no se considera un experto, hay algunos consejos y sugerencias que le ayudarán a entender ciertas complejidades que pueden no ser aparentes inmediatamente.

El segundo capítulo será una bendición para aquellos de ustedes que han estado tratando de atrapar errores en la construcción de scripts. La sección «Makefile Debugging» está llena de excelentes consejos y sugerencias para depurar Makefiles e incluye secciones sobre la impresión de valores de variables e incluso la descarga del valor de cada variable. Más adelante en el capítulo, hay una guía del Depurador de GNU que puede usar para revisar los scripts.

El tercer capítulo incluye makefiles de ejemplo, pero más que eso te muestra cómo crear Makefiles que puedes ejecutar una y otra vez.

«Trampas y Problemas» examina las diferencias entre ciertos términos tales como = y :=, y ifndef y ?=.

Me di cuenta, a medida que avanzaba en el libro, que debido a que no estoy tratando activamente de usar GNU Make y a que mi conocimiento está a un nivel muy básico, algunos de los temas que se trataban pasaban por alto.

En el momento en que llegué al capítulo «Empujar el sobre», mis ojos se habían vuelto algo vidriosos.

Mi resumen principal, si tuviera que resumir este libro, es que el autor conoce claramente su contenido y ha tratado de transmitir toda la información posible.

El problema es que a veces, cuando un experto en la materia trata de escribir algo, tiene este «oh, es fácil, todo lo que tienes que hacer es….» aura sobre ellos.

El sello de goma de mi puerta trasera se desprendió la semana pasada y como sólo tiene un par de años llamé a la compañía que lo instaló, ya que todavía está en garantía.

La señora al teléfono dijo: «Oh, está bien, te enviaré un nuevo sello».

Le dije: «Oh, ¿tengo que hacerlo yo mismo? Es algo que puedo hacer».

La respuesta fue «Claro que puedes, todo lo que tienes que hacer es quitar la puerta, colocar el sello y volver a poner la puerta».

Ahora mi pensamiento instantáneo fue «woah, rebobina un poco. Quita la puerta?!??». No estoy capacitado para quitar una puerta, colocar un sello y volver a colocar la puerta. Eso se lo dejo a los expertos.

Con este libro, siento que necesitas otro libro y una cierta cantidad de experiencia escribiendo Makefiles antes de que te resulte útil.

Creo que las sugerencias, consejos y conocimientos que se ofrecen ayudarían a algunas personas a decir «Oh, así que por eso hace eso» o «No me di cuenta de que podías hacerlo de esa manera».

Mi evaluación es, por lo tanto, que debería comprar este libro si está buscando clarificación o conocimientos más intermedios o avanzados sobre GNU Make, pero no es un libro para principiantes.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *