Pergunta

Quais são algumas alternativas para fazer para Linux / FreeBSD?

Foi útil?

Solução

Eu gosto SCons . Ele é construído de tal forma a que cada script de construção (um arquivo SConstruct) é também um programa Python sintaticamente válido. Assim, você pode construir a lógica arbitrária Python em seu script de construção, se você precisa.

Também é muito mais rápido do que make e calcula muitos tipos de dependências automaticamente.

Outras dicas

A minha primeira pergunta seria, o que é o público. É este para a construção de in-house software que só a sua equipa vai construir? Se assim for, explorar algumas das opções já apresentadas. Se isso é algo que os outros vão estar construindo, ou vara com marca, ou usar uma ferramenta que cria makefile e enviá-los. Usamos autoconf e automake para Linux e outras plataformas UNIX. Na minha opinião, você precisa de uma razão muito boa para fazer outra coisa que não configure; faço; make install. Boost tem sua própria ferramenta (uma versão modificada do Jam), e irrita-me sempre que eu preciso para tentar obtê-lo para compilar em uma máquina incomum.

cmake e imake são ambos utilitários de compilação, embora imake não é mais mantido. Cmake também é multi-plataforma e pode ser usado no Windows também.

Se você estiver em java, ANT é uma ferramenta de construção orientada para Java (que realmente não jogar bem com Marca).

Troll tecnologia tornar uma ferramenta chamada qmake , que eles usam para construir QT. Ele funciona através da makefiles gerando - Troll precisava de uma ferramenta para apoiar uma compilação multi-plataforma -. Assim você ainda precisa de outro utilitário make

Automake: p que é comumente usado na maioria das distribuições Linux de aplicativos, mas dá um pouco mais de trabalho do que um Makefile, mas melhores resultados http://www.gnu.org/software/automake/

http://www.openismus.com/documents/linux/automake /automake.shtml <- boa explicação sobre como usar o automake e autoconf

Se você está procurando algo completamente diferente, há Ant . Eu não sou tão interessado nele mesmo, mas oferece algumas vantagens de portabilidade (sem confiança no shell unix, etc.)

Eu ouvi coisas boas sobre Jam .

Omake é uma ferramenta de construção de C / C ++, OCaml e LaTeX com dependência automática análise. -Lo facilmente pode construir projetos ao longo de vários diretórios, e encontra mudanças com base na soma MD5 em vez de timestamp. Ele também tem um modo em que ele pode ser executado em segundo plano, a construção de seu projeto sempre que um arquivo é modificado. Geralmente, leva menos código para construir tipos comuns de projectos (programas C / C ++ ou OCaml e bibliotecas) de make faz. Eu não tentei-lo para projetos maiores.

Note que se você quiser programa em OCaml, esta ferramenta é muito útil uma vez que o vinculador OCaml requer módulos para aparecer na linha de comando, a fim dependência compilado, e descobrir esta ordem cada vez que algo muda é não-trivial.

Eu usei CMake para mais de meus projetos, incluindo portando alguns autotools baseado queridos e posso dizer que ele faz o seu trabalho muito bem. É principalmente apropriado para C / C ++ projectos multi-plataforma.

O projeto que estou trabalhando na herdou algum código que usos Cons vez de Make (não confundir com SCons na resposta de Greg Hewgill).

Cons é escrito em Perl, bem como SCons é escrito em Python. Ele gerencia as dependências automaticamente, e você pode usar qualquer código Perl dentro do script de construção para lidar com seqüências de construir complexo.

A principal desvantagem (ea razão principal Sinto muito meus usos do projeto) é que Cons não faz paralelo cria no estilo de make -j. Se você está compilando uma série de arquivos que não dependem uns dos outros Cons vai compilá-los um de cada vez, enquanto make -j vai compilá-los em paralelo, o que é ótimo se você tiver vários núcleos e threads em sua máquina.

Outra make para cross-platform constrói é kmake (a parte de kbuild, nas suas próprias palavras: kbuild é um quadro makefile para escrever makefiles simples para tarefas complexas .). É uma versão melhorada do GNU make. É desenvolvido pelo pessoal do VirtualBox. Eles usá-lo para construir o seu VirtualBox do produto para Windows, Linux, MacOS e Solaris. Muito portátil!

Consulte http://svn.netlabs.org/kbuild para mais detalhes.

WAF é uma alternativa interessante. Escrito em Python que permite que você escreva a sua lógica de construção em Python simples. Paralelo constrói + dependência trabalho de rastreamento baseada em assinaturas, semi-auto magia razoavelmente bem. É supostamente multi-plataforma (ou seja, sabe como fazer baseia-se em Windows), mas eu não tentei isso.

Ele tem uma curva de aprendizado bastante íngreme, mas ele também vem com "O WAF livro " para auxílio com o processo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top