auto make / build (não GNU automake)

1

Existe algum utilitário para monitorar alterações de arquivos e invocar o GNU make?

Ou, mais geralmente, invoca periodicamente um comando quando algum arquivo é alterado? ou Makefile contém o intervalo de verificação?

    
por Xiè Jìléi 09.07.2010 / 16:29

4 respostas

1

periodically invoke a command when some file changed

Você pode fazer isso com incron . Para evitar loops, construa fora da árvore de origem, verifique se o arquivo modificado está sob controle de origem ou use a opção IN_NO_LOOP.

    
por 10.07.2010 / 10:44
1

Qual plataforma? Você pode invocar a seguinte linha no shell Bourne ou bash para executar make a cada 60 segundos, por exemplo. Se o seu Makefile for projetado corretamente, ele sairá sem alterar nada se nenhum arquivo for alterado:

enquanto verdadeiro; faça; dormir 60; feito

Se você está tentando compilar o código quando ele é registrado, dê uma olhada em "Continuous Integration" por Paul Duvall, Addison Wesley. Ele descreve ferramentas e técnicas para isso.

    
por 09.07.2010 / 17:14
1

Sim, existem maneiras de fazer isso, mas você não especificou sua plataforma.

Se make e source estiverem envolvidos, um sistema de controle de versão deve estar envolvido e os VCS modernos têm "commit hooks" que podem acionar uma compilação baseada em certas atividades do VCS.

Aleatoriamente, tentar uma compilação baseada apenas em "a fonte foi alterada" é uma maneira muito fácil de produzir compilações que não funcionam.

adicionado com base no comentário :

Eu estou supondo que você está vindo de um ambiente IDE e trouxe alguns maus hábitos com você. Você deve gastar muito tempo pensando, codificando um pouco e compilando raramente. Caso contrário, gera código desleixado que será infeliz para você e o próximo cara, então não faça isso.

Além disso, não há nada que impeça você de usar o Git ou o Mercurial para suas próprias mudanças locais e para o Subversion quando tiver algo valioso para o repositório central enquanto estiver protegido de suas próprias mudanças ruins.

No entanto, eu recomendo strongmente que você não use seu compilador como um verificador de erros. Você será um programador pior se você fizer isso.

    
por 09.07.2010 / 17:08
0

Você pode configurar algum tipo de tarefa Cron para fazer isso em um intervalo especificado.

Ou, escreva um script de shell que use um loop de pesquisa para verificar se os arquivos foram modificados. Então, ou durma ou corra, faça. Você executaria isso como um daemon ou no plano de fundo de sua sessão.

    
por 09.07.2010 / 16:38