Pregunta

Soy un usuario muy frecuente de GNU Autotools (en su mayoría Autoconf , ocasionalmente Libtool ). Estoy trabajando en un proyecto donde la portabilidad va a ser un punto de fricción. Sin embargo, el resto del equipo no se siente cómodo trabajando con m4 . Obtuve esto en mi bandeja de entrada de una, sino de cuatro personas:

m4 NO es lisp, ¡maldita sea!

De todos modos, ¿quizás 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 & nbsp; 5 estarán presentes, ya que son requisitos previos.

¿Fue útil?

Solución

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

Otros consejos

Me arriesgo a ser bajado de votos, pero debo admitir que, lamentablemente, no hay un sustituto real para las autotools. CMake, SCons, bjam son agradables pero, cuando se trata de un trabajo serio ... está 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 eso. .

Por ejemplo, CMake, la alternativa más popular a las herramientas automáticas, tiene los siguientes inconvenientes:

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

Y así sucesivamente.

Hay muchos otros puntos. Desafortunadamente, no existe un sustituto real de alta calidad para los 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.

He tenido buen éxito con SCons . Está construido con Python y los scripts de construcción son en realidad scripts de Python, lo que le da un gran poder expresivo. Desde el sitio web:

  

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

Hay muchos generadores de Makefile alternativos diferentes y sistemas de compilación por ahí:

También está disponible, pero no está orientado de forma estricta en C / C ++:

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

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

¿Qué tal si simplemente usas Make y pkg-config ?

Aquí hay una plantilla de Makefile para comenzar.

Menos es más gente.

Un reemplazo automático * más - mk-configure . Los documentos se pueden encontrar en aquí

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

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

Para compilar software C / C ++ de ANT o maven, puede estar interesado en terp . Incluye una tarea de compilador C ++ portátil que funciona con muchos compiladores C ++ en muchas plataformas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top