c autotools autoconf

Alternativas a Autoconf y Autotools?



(9)

Soy un usuario frecuente de GNU Autotools (principalmente Autoconf , ocasionalmente Libtool ). Estoy trabajando en un proyecto donde la portabilidad va a ser un punto difícil. Sin embargo, el resto del equipo simplemente no se siente cómodo trabajando con m4 . Lo recibí en mi bandeja de entrada de no uno, sino de cuatro personas:

De todos modos, ¿alguien podría recomendar algo basado en Python o PHP? Estoy trabajando en el extremo C de un árbol mucho más grande; Puedo estar seguro de que Python o PHP 5 estarán presentes, ya que son requisitos previos.



Estoy arriesgándome a ser votado negativamente pero, debo admitirlo, desafortunadamente no existe un sustituto real para las autotools. CMake, SCons, bjam son agradables pero, cuando se trata de un trabajo serio ... es bastante claro que los autotools son superiores, no porque CMake no pueda hacer lo mismo, sino porque es mucho más difícil hacerlo con él. .

Por ejemplo, CMake, la alternativa más popular a autotools, tiene los siguientes inconvenientes:

  • Sin soporte de gettext. Esto puede ser un problema real cuando necesita administrar muchas traducciones y códigos fuente traducidos.
  • Sin soporte para un objetivo de desinstalación. Es bastante desagradable descubrir que no puede desinstalar el programa que instaló.
  • Sin compilación automática de bibliotecas compartidas y estáticas.
  • La documentación es muy limitada y mala.

Y así.

Hay muchos otros puntos. Desafortunadamente, no existe un verdadero sustituto de alta calidad para autotools. Por otro lado, si desarrolla en Windows y para Visual Studio, entonces no puede usar autotools y debe elegir CMake que proporcione dichas herramientas.


Hay muchos diferentes generadores de Makefile y sistemas de compilación disponibles:

También disponible, pero no estrictamente dirigido a C / C ++:

  • Premake
  • Ant (para Java)
  • Rake (para Ruby)
  • (Definitivamente más, simplemente no los conozco a todos ...)

Pero después de enumerar todo esto, las autotools tienen la gran ventaja de no requerir ninguna otra dependencia para el usuario final. Un script de configuración solo se genera una vez por el desarrollador y no requiere nada especial en el extremo del usuario, ya que es un script de shell. Las herramientas enumeradas anteriormente deben instalarse antes de que cualquiera pueda construir su fuente e incluso pueden tener dependencias.


Hay una versión de python de make creada en Mozilla - pymake - que presumiblemente soporta el uso multiplataforma.


He echado un vistazo a CMake, que parece una buena alternativa a menos que esté compilando de forma cruzada. Si está haciendo una compilación nativa, debería intentarlo


He escuchado cosas buenas sobre CMake que trata de resolver los mismos problemas. Here está el artículo de wikipedia


He tenido mucho éxito con SCONS . Está construido con Python y los scripts de compilación son en realidad scripts de Python, lo que le da una gran cantidad de poder expresivo. Desde el sitio web:

SCons es una herramienta de construcción de software de código abierto, es decir, una herramienta de compilación de próxima generación. Piense en SCons como un sustituto mejorado y multiplataforma para la utilidad clásica Make con funcionalidad integrada similar a autoconf/automake y memorias caché de compilador como ccache . En resumen, SCons es una forma más fácil, más confiable y más rápida de crear software.


Para crear software C / C ++ de ANT o maven, es posible que le interese terp . Incluye una tarea portátil del compilador de C ++ que funciona con muchos compiladores de C ++ en muchas plataformas.


Una sustitución más automática * - mk-configure . Los documentos se pueden encontrar here