./configure: O que é um ambiente de construção insano?


Respostas:


51

Isso vem do automake , especificamente de sua AM_SANITY_CHECK macro , que é chamada de AM_INIT_AUTOMAKE, normalmente chamada no início configure.ac. A essência desta macro é:

  • Verifique se o caminho para o diretório de origem não contém certos caracteres "inseguros" que podem ser difíceis de incluir adequadamente nos makefiles dos scripts de shell.
  • Verifique se lsparece funcionar.
  • Verifique se um novo arquivo criado no diretório de construção é mais novo que o configurearquivo. Se não estiver (normalmente porque o relógio no sistema de compilação não está definido corretamente), é provável que o processo de compilação falhe porque os processos de compilação geralmente dependem de arquivos gerados com um carimbo de data e hora mais recente do que os arquivos de origem dos quais são gerados.

Por que lsespecificamente? É apenas para testar se os executáveis ​​básicos estão disponíveis e funcionais ou é de lsalguma forma usado no processo de criação?
terdon

2
@terdon Alguns modelos de automação usam ls. A AM_SANITY_CHECKprópria macro usa lspara verificar os tempos relativos configuree um arquivo temporário (não é usado test -ntporque nem todos os shells o possuem).
Gilles 'SO- stop be evil'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.