2009-02-11 10 views
9

Para mi proceso de compilación en C++, estoy usando Bakefile, un simpático generador de Makefile, que le permite especificar sus objetivos de compilación en XML, y puede generar varios Makefiles o archivos de proyecto a partir de él. Funciona bien y lo uso para generar los scripts de autotools de GNU.Generadores de Makefile: premake vs bakefile?

Ahora escuché de Premake, que parece tener una funcionalidad similar. Usted especifica sus objetivos en Lua, y genera Makefiles en consecuencia.

¿Alguien sabe las diferencias entre Bakefile y Premake? ¿Alguien tiene experiencia con ambos? Premake parece más reciente y con un desarrollo más activo?

El analizador XML ticpp usa Premake, pero requiere que descargue premake antes de compilar ticpp. ¿No pueden pregenerar Makefiles para varios sistemas para que no tengas que descargar e instalar premake primero?

Nota: Sé que hay varios hilos SO sobre cuál es la mejor herramienta de construcción es, y por lo general la respuesta es CMake, SCons o Jam. Sin embargo, estoy interesado en algo que mis usuarios no tendrán que descargar antes de construir mi proyecto.

+0

> Sin embargo, estoy interesado en algo que mis usuarios no tendrán que descargar antes de construir mi proyecto. Scons y Cmake (no estoy seguro acerca de Jam) también generan Makefiles. –

+0

Pero, ¿generan todo el desastre de autotools? Solo generar un Makefile no es suficiente. Además, creo que con CMake y sus amigos puedes generar un Makefile para un cierto sistema solo si estás en dicho sistema. – Frank

+0

waf http://code.google.com/p/waf/ está diseñado para ser lo suficientemente pequeño como para agregarlo a su proyecto, por lo que no es una descarga por separado. – Mark

Respuesta

8

Sí, Premake no permite generar un Makefile (o solución de Visual Studio, o ...) que luego puede distribuir, si lo desea. Premake en sí mismo incluye makefiles pregenerados en sus paquetes fuente.

La descarga y ejecución de Premake en la máquina de destino permite que el archivo MAKE se personalice, ya sea mediante un análisis automatizado del sistema, o manualmente mediante indicadores de línea de comando. Para algunos proyectos, es una valiosa compensación, pero no es obligatorio.

9

No es exactamente una respuesta, pero recomiendo de todo corazón premake4, es fantástico.

+1

Iba a soportar el dolor de CMake, pero luego vi premake4 y mi vida volvió a ser buena. – Skurmedel

1

Después de usar tanto Premake 4 como new version of Bakefile, parece que se dirigen a diferentes casos de uso.

  • Bakefile está orientado a lo que desea: genere los archivos de compilación localmente y luego distribuya su proyecto con ellos. He tenido una gran experiencia con esta herramienta.
  • Premake es más parecido a CMake: generación de archivos locales. A veces, tiene muchas configuraciones sofisticadas que deben ejecutarse en la máquina de destino. Bakefile te permite lograr esto usando complementos, pero puede ser desordenado rápidamente. Sin embargo, usted puede pregenerar archivos.

Para su uso, recomendaría Bakefile. Parece que no necesitas nada lujoso.