Pergunta

Eu sou um usuário muito freqüente do GNU Autotools (principalmente Autoconf , ocasionalmente, Libtool ). Eu estou trabalhando em um projeto onde a portabilidade vai ser um ponto de atrito .. No entanto, o resto da equipe não é apenas trabalho confortável com m4 . Eu tenho este na minha caixa de entrada de não um, mas quatro pessoas:

M4 não é lisp, caramba!

De qualquer forma, talvez alguém poderia recomendar algo Python ou PHP com base? Eu estou trabalhando na extremidade C de uma árvore muito maior; Posso ter certeza de Python ou PHP 5 estarão presentes, como eles são pré-requisitos.

Foi útil?

Solução

Eu ouvi coisas boas sobre CMake que tenta resolver os mesmos problemas. Aqui é o artigo wikipedia

Outras dicas

Eu estou tendo a chance de ser downvoted mas, devo admitir, que, infelizmente, não há nenhum substituto real para autotools. CMake, SCons, bjam são bons, mas, quando se trata de um trabalho sério ... isso é bastante claro que autotools são superiores, não porque CMake não pode fazer a mesma coisa, mas porque é apenas muito mais difícil de fazê-lo com ele .

Por exemplo, CMake, a alternativa mais popular para autotools, tem os seguintes inconvenientes:

  • Não há suporte de gettext. Isso pode ser um problema real quando você precisa gerenciar uma grande quantidade de traduções e código fonte traduzido.
  • Não há suporte para um alvo de desinstalação. É bastante desagradável para descobrir que você não pode desinstalar o programa instalado.
  • Não construção automática de ambos bibliotecas compartilhadas e estáticas.
  • A documentação é muito limitado e mau.

E assim por diante.

Há muitos outros pontos. Infelizmente, não existe um verdadeiro substituto de alta qualidade para autotools. Por outro lado, se você desenvolver no Windows e para o Visual Studio, então você não pode usar autotools e você precisa escolher CMake que fornece tais ferramentas.

Eu tive um bom sucesso com SCons . Ele é construído com Python e os scripts de construção são realmente Python roteiros próprios, o que dá uma grande quantidade de poder expressivo. A partir do web site:

SCons é uma ferramenta que-é, uma ferramenta de construção Open Source construção de software de próxima geração. Pense SCons como uma versão melhorada e substituto de plataforma cruzada para o utilitário clássico Make com funcionalidade integrado semelhante ao autoconf/automake e caches compilador tais como ccache. Em suma, SCons é uma maneira mais fácil, mais confiável e mais rápido para software de criação.

Há um monte de diferentes geradores Makefile alternativas e sistemas de construção lá fora:

Também disponível, mas não rigorosamente orientados para C / C ++:

  • predispõem
  • Ant (para Java)
  • Rake (para Ruby)
  • (Definitivamente mais, eu só não sei todos eles ...)

Mas depois de enumerar todos estes, autotools têm a grande vantagem de não necessitar de qualquer outra dependência para o usuário final. Um script de configuração é gerado somente uma vez pelo programador e não requer especial nada sobre o usuário final, pois é um script shell. As ferramentas listadas acima têm de ser instalado antes de qualquer um pode construir sua fonte e eles ainda podem ter-se dependências.

Que tal simplesmente usando Faça e pkg-config ?

Aqui é um Makefile modelo para você começar.

Menos é mais pessoas.

Mais uma auto * substituição - mk-configure . Docs pode ser encontrada href="http://www.mova.org/~cheusov/pub/mk-configure/" aqui

Eu tive uma olhada CMake, que parece uma boa alternativa a não ser que você está compilação cruzada. Se você estiver fazendo compilação nativa, você deve tentar

Há uma versão python de make sendo criado pelo Mozilla - pymake - que presumivelmente suporta o uso de plataforma cruzada

.

Para a construção de software C / C ++ a partir de Ant ou Maven que você pode estar interessado em terp . Ele inclui um C ++ tarefa compilador portátil que trabalha com muitos C ++ compiladores em várias plataformas.

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