Regras internas para o programa de make

As regras internas para o comando make estão localizadas em um arquivo que se parece com um arquivo de descrição.

Quando a sinalização -r é especificada, o comando make não usa o arquivo de regras internas. Você deve fornecer as regras para criar os arquivos em seu arquivo de descrição. O arquivo de regras internas contém uma lista de sufixos de nome de arquivo (como .o ou .a) que o comando make compreende, e regras que informaam o comando make como criar um arquivo com um sufixo de um arquivo com outro sufixo. Se você não alterar a lista, o comando make compreende os seguintes sufixos:

Sufixo Descrição
.a Biblioteca de arquivo
.C Arquivo do Fonte em C
.C\ ~ Arquivo de Código de Controle de Código de Origem (SCCS) contendo arquivo de origem C++
.c Arquivo do Fonte em C
.c ~ Arquivo SCCS contendo arquivo de origem C
.f Arquivo de origem FORTRAN
.f ~ Arquivo SCCS contendo arquivo de origem FORTRAN
.h Arquivo de cabeçalho de linguagem C.
.h ~ Arquivo SCCS contendo arquivo de cabeçalho de linguagem C
.l Gramática de origem lex
.l ~ Arquivo SCCS contendo a gramática de origem lex .
.o Arquivo de objeto.
.s Arquivo de origem do assembler.
.s ~ Arquivo SCCS contendo arquivo de origem do assembler.
.sh Arquivo de origem do shell-comando.
.sh ~ Arquivo SCCS contendo arquivo de origem shell-comando.
.y Gramática de origem yacc-c .
.y ~ Arquivo SCCS contendo gramática de origem yacc-c .

A lista de sufixos é semelhante a uma lista de dependência em um arquivo de descrição e segue o nome falso de destino de .SUFFIXES. Como o comando make olha para a lista de sufixos em ordem da esquerda para a direita, a ordem das entradas é importante.

O comando make usa a primeira entrada na lista que satisfaz as seguintes equitações:

  • A entrada corresponde aos requisitos de sufixo de entrada e saída para os arquivos de destino e de dependência atuais.
  • A entrada tem uma regra atribuída a ele.

O comando make cria o nome da regra a partir dos dois sufixos dos arquivos que a regra define. Por exemplo, o nome da regra para transformar um arquivo .c em um arquivo .o é .c.o.

Para adicionar mais sufixos à lista, inclua uma entrada para o nome de destino falso de .SUFFIXES no arquivo de descrição. Para uma linha .SUFFIXES sem nenhum sufixo seguindo o nome do destino no arquivo de descrição, o comando make apaga a lista atual. Para alterar a ordem dos nomes na lista, apague a lista atual e, em seguida, atribua um novo conjunto de valores para .SUFIXOS.