2010-07-08 8 views
14

Así que hace un par de años me tomé un tiempo para grok make, y ha pagado enormemente. Escribir pequeños makefiles para construir mis proyectos y automatizar tareas es divertido y productivo.¿Cómo aprender la alegría de Autotools?

La desventaja es, por supuesto, que mis makefiles son excesivos, especialmente cuando se trata de plataformas y ubicaciones de bibliotecas.

Este es el punto en el que la gente me dice "¡autotools al rescate!" Y ciertamente parecen hacer el truco cuando otras personas los hacen (me encanta descargar algo y ejecutar configure && make && sudo make install y verlo funcionar), pero no puedo entenderlos.

He buscado en algunos archivos configure.ac y Makefile.am, y simplemente no entiendo lo que está pasando. No sé qué parte de los identificadores es la elección del desarrollador, y qué parte es significativa para las herramientas automáticas. No estoy seguro de entender todo el flujo y el punto de Makefile.in. Creo que estoy llegando a un muro mental desde el sistema al que estoy acostumbrado (make) a algo que está una o dos capas por encima de eso.

¿Alguien puede dirigirme hacia un tutorial o libro (preferiblemente no demasiado seco) que pueda enseñarme la alegría de las autotools? ¿Cuáles son los pasos, y cómo puedo usarlos, cómo puedo escribir mi propio configure.ac y Makefile.am desde cero? Muéstrame cómo ser efectivo y divertirte con ellos?

+2

Realmente no responde su pregunta, pero es posible que también desee considerar cmake. Me pareció mucho más fácil de trabajar que las autotools habituales. –

+9

Usted, como usuario, aprendió la alegría de las autotools. Ahora vas a aprender sus dolores :) –

+1

Realmente puedo agradecer los comentarios de @Evan Teran y @Vitor Py. Las autotools (especialmente cuando se combinan con libtool) tienen una tendencia a causar mucho dolor. Aquí en la compañía, actualmente nos alejamos de autotools para hacer cmake, sin lamentarnos. – Rudi

Respuesta

5

Aunque considero de Alexandre Duret-Lutz Autotools Tutorial, mencionado en la respuesta de Elmarco, para ser los mejores disponibles, usted debe También saber sobre el libro de cabra:

http://sourceware.org/autobook/

Las versiones de las herramientas de los que se ocupa son bastante antiguo, pero es una buena introducción y se presenta en un orden lógico. También es más completo que el Tutorial. Quizás se use mejor como lectura suplementaria después de haber trabajado en el Tutorial.

ACTUALIZACIÓN También hay John Calcote's book, fue publicado alrededor de agosto de 2010 y que es muy bueno. No estoy seguro de si todo el libro está en línea en ese enlace, pero al menos una parte sí lo está.

9

No estoy seguro de que pueda divertirse con los sistemas de compilación ... ¿Ha estado leyendo el Tutorial de Autotools?

http://www.lrde.epita.fr/~adl/autotools.html

Hay varios recursos sobre autotools, el problema es que tienden a ser incompletos, un poco anticuado, etc ...

Un documento reciente y excelente es Autotools Mythbuster, aunque no es una introducción :

http://www.flameeyes.eu/autotools-mythbuster/index.html

+2

+1 para los enlaces, gracias! Pero espero que estés equivocado sobre tu reclamo inicial. Con la programación (y cualquier sistema de compilación suficientemente complejo es la programación), a menudo pienso que si no te estás divirtiendo, lo estás haciendo mal. Esta puede ser la misma tendencia que lleva a los programadores a preferir la solución más compleja cuando se trata de una solución simple, pero eso parece ser un voto a favor de la moderación más que cualquier otra cosa. – rampion

+1

La sección más esclarecedora del tutorial de Autotools para mí fue el diagrama de qué archivos se utilizan para generar qué otros archivos y qué se supone que deben hacer. Ese fue el momento en que entendí la Alegría de Autotools, y dejé de verlos como vudú. – ptomato

+1

Estoy muy por debajo de la mención del tutorial Autotools de Alexandre Duret-Lutz (el primer enlace mencionado anteriormente). Por una inversión de tiempo de solo una o dos horas trabajando en su excelente conjunto de diapositivas, aprenderá lo suficiente de las Autotools como para funcionar en la mayoría de los casos de uso. –