Pregunta

¿Cuáles son algunas alternativas a hacer para linux/freebsd?

¿Fue útil?

Solución

SCons . Está construido de tal manera que cada escritura de la estructura (un archivo SConstruct) es también un programa de Python sintácticamente válida. Por lo tanto, se puede construir la lógica de Python arbitrarias en su escritura de la estructura si es necesario.

También es mucho más rápido que make y calcula muchos tipos de dependencias automáticamente.

Otros consejos

Mi primera pregunta sería, ¿cuál es la audiencia. Es esto para la construcción de la casa de software que sólo el equipo va a construir? Si es así, explorar algunas de las opciones ya presentadas. Si esto es algo que otros serán la construcción, o bien seguir con la marca, o utilizar una herramienta que crea makefile y enviar esos. Utilizamos autoconf y automake para Linux y otras plataformas Unix. En mi opinión, se necesita una muy buena razón para hacer algo que no sea de configuración; hacer; make install. Boost tiene su propia herramienta (una versión modificada del atasco), y me molesta cada vez que necesito para tratar de que se compile en una máquina inusual.

cmake y imake son a la vez construir servicios públicos, aunque imake ya no se mantiene. Cmake también es multiplataforma y se puede utilizar en Windows también.

Si usted está en java, ANT es una herramienta de construcción orientado a Java (que en realidad no se jugar muy bien con Make).

Troll Tech crea una herramienta llamada qmake , que utilizan para construir QT. Funciona mediante la generación de archivos make - Troll necesitaba una herramienta para apoyar una acumulación multiplataforma -. Por lo que aún necesita otra marca de utilidad

Automake: p que se utiliza comúnmente en la mayoría de las distribuciones de Linux app pero le da un poco más trabajo que un Makefile pero mejores resultados http://www.gnu.org/software/automake/

http://www.openismus.com/documents/linux/automake /automake.shtml <- buena explicación sobre cómo utilizar automake y autoconf

Si usted está buscando algo completamente diferente, hay Ant . No estoy tan interesado en él mismo, pero ofrece algunas ventajas de portabilidad (no depende de la shell de Unix, etc.)

He oído cosas buenas sobre Jam .

OMAKE es una herramienta de construcción para C / C ++, OCaml y látex con dependencia automática análisis. Fácilmente se puede construir proyectos a lo largo de varios directorios, y se encuentra cambios en función de la suma MD5 en lugar de marca de tiempo. También tiene un modo en el que se puede ejecutar en segundo plano, la construcción de su proyecto cada vez que se modifica un archivo. En general, se necesita menos código para construir tipos comunes de los proyectos (C / C ++ o programas OCaml y bibliotecas) que marca lo hace. Yo no lo he probado para proyectos más grandes.

Tenga en cuenta que si quiere programar en OCaml, esta herramienta es muy útil ya que el enlazador OCaml requiere módulos a aparecer en la línea de comandos con el fin dependencia compilado, y averiguar este orden cambia cada vez que algo no es trivial.

He usado CMake para más de mis proyectos, incluida la portabilidad de algunos basados ​​en herramientas automáticas y puedo decir que hace su trabajo muy bien.Es principalmente adecuado para proyectos multiplataforma C/C++.

El proyecto que estoy trabajando heredó algo de código que utiliza Cons en lugar de Make (no confundir con SCons en la respuesta de Greg Hewgill).

Cons está escrito en Perl, al igual que SCons está escrito en Python. Gestiona automáticamente las dependencias, y se puede utilizar cualquier código Perl dentro de la escritura de la estructura para manejar secuencias complejas de construcción.

El principal inconveniente (y la razón principal por la que siento mi proyecto lo utiliza) es que no hace Cons paralelo se basa en el estilo de make -j. Si se está compilando una serie de archivos que no dependen unos de otros Cons los compilará una a la vez, mientras que make -j los compilará en paralelo, que es grande si usted tiene múltiples núcleos y los hilos en su máquina.

Otra hacen para multiplataforma construye es kmake (una parte de kbuild, en sus propias palabras:. kbuild es un marco makefile para escribir archivos make simples para tareas complejas ). Es una versión mejorada de make GNU. Es desarrollado por la gente de VirtualBox. Lo usan para construir su VirtualBox producto para Windows, Linux, MacOS y Solaris. Bastante portátil!

http://svn.netlabs.org/kbuild para más detalles.

WAF es una alternativa interesante. Escrito en Python que permite escribir la lógica de la acumulación en Python normal. Paralelo + construye basada en firmas dependencia funciona el seguimiento de semi-auto-mágica razonablemente bien. Es supuestamente multiplataforma (es decir, sabe hacer se basa en Windows), pero no he probado eso.

Tiene una curva de aprendizaje bastante empinada, pero también viene con rel="nofollow"> para ayudar con el proceso.

scroll top