Função para verificar se um arquivo existe com o GNU Make

Os makefiles GNU permitem que sua pequena empresa elabore código-fonte que possa adaptar sua compilação a uma máquina específica de um cliente e detecte antecipadamente problemas ou dependências de software não atendidas. Verificar se determinados arquivos existem é central para a função make do GNU, e você pode escolher entre um dos vários métodos para fazer exatamente isso.

Regras

Uma maneira de verificar se um arquivo existe dentro do makefile do GNU envolve seu sistema interno de regras. O código abaixo da sintaxe "target: normal-prerequisites | order-only-prerequisites" só será executado se o arquivo ou arquivos especificados como "target" não forem mais recentes do que aqueles especificados em "pré-requisitos normais" e se os arquivos Especifique em "somente pré-requisitos de pedido". Se você usar a sintaxe "target: | order-only-pré-requisitos" e não especificar nenhum arquivo no lado esquerdo do "|" Em seguida, o código abaixo será executado somente se o arquivo ou arquivos especificados como "pré-requisitos somente de pedido" existirem.

Função de teste

O comando "test -f" também pode verificar se existe um determinado arquivo. Este comando pega um nome de arquivo como um argumento, então retorna um valor booleano de "true" se o caminho do arquivo que você passou o comando existir, e "false" se ele não estiver lá. Você pode integrar este comando em instruções "if" e outras funções de controle que você coloca no makefile para obter um controle mais refinado sobre o tratamento de qualquer resultado.

Verificando o diretório

O método de regras ou o comando "test -d" funciona exatamente como o comando "test -f", apenas retorna true se o caminho fornecido como argumento for um diretório existente, em vez de verificar se o argumento é um arquivo . Se você está verificando a existência de um diretório no qual o makefile irá compilar ou construir arquivos, o comando "mkdir -p directory-name" tentará criar um diretório com o nome que você especificou como "directory-name", a menos que já existe. O argumento "-p" evita que o mkdir envie uma mensagem de erro que faz com que o usuário final pense que algo deu errado. Você pode então empregar o diretório em seu código makefile sabendo que o arquivo existe - porque ele já estava lá ou porque mkdir o criou.

Makefile robusto

Diferentes sistemas clientes armazenam pacotes dos quais seu software depende em caminhos de diretório ligeiramente diferentes. Se você assumir um único local, no entanto, seus clientes poderão receber arquivos que informam que eles precisam de um pacote de software que já possuem. Você pode minimizar esse problema pesquisando os diferentes sistemas usados ​​por sua base de clientes de destino e garantir que seu makefile verifique vários locais possíveis para pacotes de software dependentes.

Publicações Populares