Alternativas para fazer para Linux / FreeBSD? [fechadas]
Pergunta
Quais são algumas alternativas para fazer para Linux / FreeBSD?
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.