script de construção: como implementar um “pular a etapa concluída anteriormente”

1

Estou tentando criar um script de construção para o GCC (que funciona, por enquanto), mas gostaria de poder pular a reconstrução de todas as bibliotecas de pré-requisitos quando estou atualizando apenas o GCC / binutils, por exemplo. Pensei em fazer o script criar um arquivo no diretório principal da compilação contendo todas as etapas para pular. Como eu faria isso (algo com o comando cat e encontrar para ver se uma etapa está no arquivo?). Isso me permitiria, embora manualmente, habilitar a reconstrução de certas partes quando necessário.

UPDATE: As respostas postadas parecem supor que eu preciso de um makefile, enquanto eu acho isso muito problemático e não o quero; o procedimento de compilação consiste em várias etapas cd, configure, make, make install que simplesmente não quero em um makefile. O script está quase pronto, este é o último passo que preciso para ele ...

UPDATE2: como eu disse no comentário abaixo, estou no windows, usando o MSYS como shell.

Obrigado!

PS: esse "pular etapas concluídas" precisa ser executado toda vez que o script for executado.

    
por rubenvb 19.09.2010 / 12:53

3 respostas

2

Então, parece que você não está realmente fazendo uma pergunta sobre estruturas de construção, mas sim uma questão específica sobre como determinar se uma determinada linha existe em um arquivo de texto?

Se você quiser descobrir se a string foo existe em um arquivo, então:

if grep -q foo thefile; then
   # it's there
else
   # otherwise
fi

deve fazer o truque.

    
por 19.09.2010 / 20:10
4

Parece que você precisa de uma introdução ao make , produzido por nossos amigos no GNU, eu acredito.

Make pode olhar para um monte de arquivos intermediários e determinar quais precisam ser recompilados. E com base em qual (is) delas, também descubra quais precisam de seus arquivos de suporte reconstruídos, recorrendo assim.

Você precisará configurá-lo antecipadamente criando um Makefile, mas isso é algo que parece que você está disposto a fazer.

Para mais informações, eu gostaria de verificar este URL: link . Na verdade, o número de ponto 2 parece que ele descreve melhor do que qualquer coisa que eu possa fazer.

    
por 19.09.2010 / 13:59
0

Você pode querer analisar o CMake . Para o que você descreveu, é provavelmente um exagero e make seria um ajuste melhor, mas se você começar a entrar no autotools coisas, isso poderia tornar sua vida muito mais fácil.

    
por 19.09.2010 / 14:33

Tags