InglêsFrancêsEspanhol

favicon do OnWorks

bmake - Online na nuvem

Execute o bmake no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando bmake que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


fazer - manter dependências do programa

SINOPSE


fazer [-BeikNnqrstWwX] [-C anuário] [-D variável] [-d bandeiras] [-f makefile] [-I anuário]
[-J privado] [-j max_empregos] [-m anuário] [-T lima] [-V variável] [variável = valor]
[alvo ...]

DESCRIÇÃO


fazer é um programa projetado para simplificar a manutenção de outros programas. Sua entrada é um
lista de especificações quanto aos arquivos dos quais os programas e outros arquivos dependem. Se não -f
makefile opção makefile é fornecida, fazer vai tentar abrir 'makefile' então 'Makefile' no
a fim de encontrar as especificações. Se o arquivo '.depender'existe, é lido (ver mkdep(1)).

Esta página do manual é apenas um documento de referência. Para uma descrição mais completa
of fazer e makefiles, por favor consulte PMMake - A Tutorial.

fazer irá preceder o conteúdo do MAKEFLAGS variável de ambiente para a linha de comando
argumentos antes de analisá-los.

As opções são as seguintes:

-B Tente ser compatível com versões anteriores executando um único shell por comando e por
executar os comandos para criar as fontes de uma linha de dependência em sequência.

-C anuário
Mudar para anuário antes de ler os makefiles ou fazer qualquer outra coisa. Se
múltiplo -C opções são especificadas, cada uma é interpretada em relação à anterior:
-C / -C etc. é equivalente a -C / Etc.

-D variável
Definir variável para ser 1, no contexto global.

-d [-]bandeiras
Ative a depuração e especifique quais partes do fazer são para imprimir depuração
em formação. A menos que os sinalizadores sejam precedidos por '-', eles são adicionados ao MAKEFLAGS
variável de ambiente e será processado por qualquer processo de criação filho. Por padrão,
as informações de depuração são impressas com o erro padrão, mas isso pode ser alterado usando
da F sinalizador de depuração. A saída de depuração é sempre sem buffer; além disso, se
a depuração está habilitada, mas a saída de depuração não é direcionada para a saída padrão, então
a saída padrão é armazenada em linha. Bandeiras é um ou mais dos seguintes:

A Imprima todas as informações de depuração possíveis; equivalente a especificar todos os
os sinalizadores de depuração.

a Imprima informações de depuração sobre pesquisa de arquivo e armazenamento em cache.

C Imprime informações de depuração sobre o diretório de trabalho atual.

c Imprime informações de depuração sobre avaliação condicional.

d Imprime informações de depuração sobre pesquisa de diretório e armazenamento em cache.

e Imprime informações de depuração sobre comandos e destinos com falha.

F[+]nome do arquivo
Especifique onde a saída de depuração é gravada. Esta deve ser a última bandeira,
porque consome o resto do argumento. Se o personagem
imediatamente após o sinalizador 'F' ser '+', o arquivo será aberto em
modo anexo; caso contrário, o arquivo será sobrescrito. Se o nome do arquivo for
'stdout' ou 'stderr' então a saída de depuração será escrita no padrão
saída ou descritores de arquivo de saída de erro padrão, respectivamente (e o '+'
opção não tem efeito). Caso contrário, a saída será gravada no nome
Arquivo. Se o nome do arquivo terminar com '.% D', '% d' será substituído pelo pid.

f Imprime informações de depuração sobre a avaliação do loop.

g1 Imprima o gráfico de entrada antes de fazer qualquer coisa.

g2 Imprima o gráfico de entrada depois de fazer tudo ou antes de sair em erro.

g3 Imprima o gráfico de entrada antes de sair com erro.

j Imprime informações de depuração sobre a execução de vários shells.

l Imprimir comandos em Makefiles independentemente de serem ou não prefixados
por '@' ou outro sinalizador "silencioso". Também conhecido como comportamento "barulhento".

M Imprime informações de depuração sobre as decisões do modo "meta" sobre os alvos.

m Imprimir informações de depuração sobre como fazer alvos, incluindo modificação
datas.

n Não exclua os scripts de comando temporários criados ao executar comandos.
Esses scripts temporários são criados no diretório referido pelo
Variável de ambiente TMPDIR, ou em / Tmp se TMPDIR não estiver definido ou definido para o
string vazia. Os scripts temporários são criados por mkstemp(3), e tem
nomes do formulário fazerXXXXXX. NOTA: Isso pode criar muitos arquivos em TMPDIR ou
/ Tmp, então use com cuidado.

p Imprime informações de depuração sobre a análise de makefile.

s Imprima informações de depuração sobre regras de transformação de sufixo.

t Imprima informações de depuração sobre a manutenção da lista de alvos.

V Forçar o -V opção para imprimir valores brutos de variáveis.

v Imprime informações de depuração sobre atribuição de variável.

x Execute comandos shell com -x então os comandos reais são impressos como são
executado.

-e Especifique que as variáveis ​​de ambiente substituam as atribuições de macro nos makefiles.

-f makefile
Especifique um makefile para ler em vez do padrão 'makefile'. Se makefile é '-',
a entrada padrão é lida. Vários makefiles podem ser especificados e são lidos no
pedido especificado.

-I anuário
Especifique um diretório no qual pesquisar makefiles e makefiles incluídos. O
diretório makefile do sistema (ou diretórios, consulte o -m opção) é automaticamente
incluído como parte desta lista.

-i Ignora a saída diferente de zero dos comandos do shell no makefile. Equivalente a especificar
'-'antes de cada linha de comando no makefile.

-J privado
Esta opção deve não ser especificado pelo usuário.

Quando o j opção está em uso em uma construção recursiva, esta opção é passada por um make para
child faz para permitir que todos os processos de make no build cooperem para evitar
sobrecarregando o sistema.

-j max_empregos
Especifique o número máximo de trabalhos que fazer pode ter executado a qualquer momento. O
valor é salvo em .FAÇA.TRABALHOS. Desativa o modo de compatibilidade, a menos que o B bandeira é
também especificado. Quando o modo de compatibilidade está desligado, todos os comandos associados a um
destino são executados em uma única invocação de shell em oposição ao tradicional
invocação do shell por linha. Isso pode quebrar scripts tradicionais que mudam
diretórios em cada chamada de comando e, em seguida, espere começar com um novo
ambiente na próxima linha. É mais eficiente corrigir os scripts do que
do que ativar a compatibilidade com versões anteriores.

-k Continue o processamento depois que os erros forem encontrados, mas apenas nos destinos que
não depende do destino cuja criação causou o erro.

-m anuário
Especifique um diretório no qual pesquisar sys.mk e makefiles incluídos por meio do
limaDeclaração de inclusão de estilo⟩. O -m opção pode ser usada várias vezes para formar um
caminho de pesquisa. Este caminho substituirá o caminho padrão de inclusão do sistema:
/ usr / share / mk. Além disso, o caminho de inclusão do sistema será anexado à pesquisa
caminho usado para "lima"-style incluir declarações (consulte o -I opção).

Se um arquivo ou nome de diretório no -m argumento (ou o ambiente MAKESYSPATH
variável) começa com a string "... /" e depois fazer irá procurar o especificado
arquivo ou diretório nomeado na parte restante da string do argumento. A pesquisa
começa com o diretório atual do Makefile e depois segue em direção ao
raiz do sistema de arquivos. Se a pesquisa for bem-sucedida, o diretório resultante
substitui a especificação "... /" no -m argumento. Se usado, este recurso permite
fazer para pesquisar facilmente na árvore de origem atual por arquivos sys.mk personalizados (por exemplo,
usando "... / mk / sys.mk" como um argumento).

-n Exibe os comandos que teriam sido executados, mas não os executa de fato
a menos que o destino dependa da fonte especial .MAKE (veja abaixo).

-N Exibe os comandos que teriam sido executados, mas não executa nenhum
deles; útil para depurar makefiles de nível superior sem descer para
subdiretórios.

-q Não execute nenhum comando, mas saia de 0 se os destinos especificados estiverem atualizados e
1, caso contrário.

-r Não use as regras embutidas especificadas no makefile do sistema.

-s Não ecoe nenhum comando à medida que são executados. Equivalente a especificar '@' antes
cada linha de comando no makefile.

-T arquivo de rastreamento
Quando usado com o -j sinalizador, anexe um registro de rastreamento para arquivo de rastreamento para cada trabalho iniciado
e concluído.

-t Em vez de reconstruir um destino conforme especificado no makefile, crie-o ou atualize
sua hora de modificação para fazer com que pareça atualizado.

-V variável
Impressão fazera ideia do valor de variável, no contexto global. Não construa
quaisquer alvos. Várias instâncias desta opção podem ser especificadas; as variáveis ​​vão
ser impresso um por linha, com uma linha em branco para cada variável nula ou indefinida. Se
variável contém um '$' então o valor será expandido antes da impressão.

-W Trate quaisquer avisos durante a análise do makefile como erros.

-w Imprime as mensagens de entrada e saída do diretório, pré e pós-processamento.

-X Não exporte variáveis ​​passadas na linha de comando para o ambiente individualmente.
Variáveis ​​passadas na linha de comando ainda são exportadas por meio do MAKEFLAGS
variável de ambiente. Esta opção pode ser útil em sistemas que têm um pequeno limite
no tamanho dos argumentos do comando.

variável = valor
Defina o valor da variável variável para valor. Normalmente, todos os valores passados ​​no
linha de comando também são exportados para subfabricados no ambiente. O -X bandeira
desativa esse comportamento. As atribuições de variáveis ​​devem seguir as opções para POSIX
compatibilidade, mas nenhuma ordem é imposta.

Existem sete tipos diferentes de linhas em um makefile: especificações de dependência de arquivo,
comandos shell, atribuições de variáveis, instruções de inclusão, diretivas condicionais, loops for,
e comentários.

Em geral, as linhas podem ser continuadas de uma linha para a próxima, terminando-as com uma barra invertida
('\'). O caractere de nova linha à direita e o espaço em branco inicial na linha a seguir são
comprimido em um único espaço.

ARQUIVO DEPENDÊNCIA ESPECIFICAÇÕES


As linhas de dependência consistem em um ou mais destinos, um operador e zero ou mais fontes.
Isso cria uma relação em que os alvos "dependem" das fontes e geralmente são
criado a partir deles. A relação exata entre o destino e a origem é determinada
pelo operador que os separa. Os três operadores são os seguintes:

: Uma meta é considerada desatualizada se seu tempo de modificação for menor que o de qualquer
de suas fontes. As origens de um destino se acumulam nas linhas de dependência quando este
operador é usado. O alvo é removido se fazer é interrompido.

! Os alvos são sempre recriados, mas não até que todas as fontes tenham sido examinadas e refeitas
criado conforme necessário. As origens de um destino se acumulam nas linhas de dependência quando este
operador é usado. O alvo é removido se fazer é interrompido.

:: Se nenhuma fonte for especificada, o destino será sempre recriado. Caso contrário, um alvo é
considerado desatualizado se alguma de suas fontes foi modificada mais recentemente do que o
alvo. As origens de um destino não se acumulam nas linhas de dependência quando este
operador é usado. O alvo não será removido se fazer é interrompido.

Os destinos e as fontes podem conter os valores curinga do shell '?', '*', '[]' E '{}'. O
os valores '?', '*' e '[]' só podem ser usados ​​como parte do componente final do destino ou
fonte e deve ser usado para descrever arquivos existentes. O valor '{}' não precisa ser necessariamente
usado para descrever arquivos existentes. A expansão está na ordem do diretório, não em ordem alfabética como
feito no shell.

SHELL COMANDOS


Cada destino pode ter associado a ele uma ou mais linhas de comandos de shell, normalmente usados
para criar o alvo. Cada uma das linhas neste script devo ser precedido por uma guia. (Por
razões históricas, os espaços não são aceitos.) Embora os alvos possam aparecer em muitas dependências
linhas se desejado, por padrão, apenas uma dessas regras pode ser seguida por um script de criação.
Se o '::'operador é usado, no entanto, todas as regras podem incluir scripts e os scripts são
executado na ordem encontrada.

Cada linha é tratada como um comando shell separado, a menos que o fim da linha seja escapado com um
barra invertida ('\'), caso em que essa linha e a próxima são combinadas. Se os primeiros personagens
do comando são qualquer combinação de '@','+'ou'-', o comando é tratado de maneira especial. UMA
'@'faz com que o comando não seja ecoado antes de ser executado. UMA '+'faz com que o comando
ser executado mesmo quando -n é dada. Isso é semelhante ao efeito do .MAKE especial
fonte, exceto que o efeito pode ser limitado a uma única linha de um script. UMA '-' no
o modo de compatibilidade faz com que qualquer status de saída diferente de zero da linha de comando seja ignorado.

Quando fazer é executado em modo de trabalho com -j max_empregos, todo o script para o destino é alimentado para
uma única instância do shell. No modo de compatibilidade (não trabalhos), cada comando é executado em um
processo separado. Se o comando contém quaisquer metacaracteres shell
('# = | ^ () {}; & <> *? []: $ `\\ n') será passado para o shell; de outra forma fazer vai tentar
execução direta. Se uma linha começa com '-'e o shell tem ErrCtl habilitado, em seguida, falha
da linha de comando será ignorado no modo de compatibilidade. De outra forma '-'afeta o
trabalho inteiro; o script irá parar na primeira linha de comando que falhar, mas o alvo irá
não ser considerado como tendo falhado.

Makefiles devem ser escritos de forma que o modo de fazer operação não muda seu
comportamento. Por exemplo, qualquer comando que precise usar “cd” ou “chdir” sem potencialmente
alterar o diretório para comandos subsequentes deve ser colocado entre parênteses para que seja executado
em uma subcamada. Para forçar o uso de um shell, escape das quebras de linha para fazer o
script inteiro um comando. Por exemplo:

Avoid-chdir-side-effects:
@echo Building $ @ em `pwd`
@ (cd $ {. CURDIR} && $ {MAKE} $ @)
@echo De volta ao `pwd`

garantir-um-shell-independentemente-do-modo:
@echo Building $ @ em `pwd`; \
(cd $ {. CURDIR} && $ {MAKE} $ @); \
echo de volta em `pwd`

Como fazer precisarão chdir(2) para '.OBJDIR'antes de executar quaisquer metas, cada processo filho
começa com isso como seu diretório de trabalho atual.

VARIÁVEL TAREFAS


As variáveis ​​no make são muito parecidas com as variáveis ​​no shell e, por tradição, consistem em todos
letras maiúsculas.

Variável atribuição modificadores
Os cinco operadores que podem ser usados ​​para atribuir valores a variáveis ​​são os seguintes:

= Atribua o valor à variável. Qualquer valor anterior é substituído.

+= Acrescente o valor ao valor atual da variável.

?= Atribua o valor à variável se ainda não estiver definido.

:= Atribua com expansão, ou seja, expanda o valor antes de atribuí-lo à variável.
Normalmente, a expansão não é feita até que a variável seja referenciada. NOTA: Referências
para variáveis ​​indefinidas são não expandido. Isso pode causar problemas quando variável
modificadores são usados.

!= Expanda o valor e passe-o ao shell para execução e atribua o resultado ao
variável. Quaisquer novas linhas no resultado são substituídas por espaços.

Qualquer espaço em branco antes do atribuído valor é removido; se o valor estiver sendo anexado, um
um único espaço é inserido entre o conteúdo anterior da variável e o anexo
valor.

As variáveis ​​são expandidas circundando o nome da variável com chaves ('{}') ou
parênteses ('()') e precedendo-o com um cifrão ('$'). Se o nome da variável contém
apenas uma única letra, os colchetes ou parênteses não são necessários. Este mais curto
formulário não é recomendado.

Se o nome da variável contiver um dólar, o próprio nome será expandido primeiro. Isso permite
nomes de variáveis ​​quase arbitrários, porém nomes contendo cifrões, colchetes, parênteses ou
é melhor evitar espaços em branco!

Se o resultado da expansão de uma variável contiver um cifrão ('$'), a string é expandida
novamente.

A substituição da variável ocorre em três momentos distintos, dependendo de onde a variável está
sendo usado.

1. Variáveis ​​em linhas de dependência são expandidas conforme a linha é lida.

2. Variáveis ​​em comandos de shell são expandidas quando o comando de shell é executado.

3. As variáveis ​​de índice do loop “.for” são expandidas em cada iteração do loop. Observe que outro
variáveis ​​não são expandidas dentro de loops, portanto, o seguinte código de exemplo:

.para i em 1 2 3
a + = $ {i}
j = $ {i}
b + = $ {j}
.endfor

todos:
@echo $ {a}
@echo $ {b}

irá imprimir:

1 2 3
3 3 3

Porque enquanto $ {a} contém “1 2 3” depois que o loop é executado, $ {b} contém “$ {j}
$ {j} $ {j} ”que se expande para“ 3 3 3 ”, uma vez que, após a conclusão do loop, $ {j} contém“ 3 ”.

Variável aulas
As quatro classes diferentes de variáveis ​​(em ordem crescente de precedência) são:

Variáveis ​​ambientais
Variáveis ​​definidas como parte de fazermeio ambiente.

Variáveis ​​globais
Variáveis ​​definidas no makefile ou nos makefiles incluídos.

Variáveis ​​de linha de comando
Variáveis ​​definidas como parte da linha de comando.

Variáveis ​​locais
Variáveis ​​que são definidas específicas para um determinado destino.

As variáveis ​​locais são todas integradas e seus valores variam magicamente de destino para destino. Isto
atualmente não é possível definir novas variáveis ​​locais. As sete variáveis ​​locais são tão
segue:

.ALLSRC A lista de todas as fontes para este destino; também conhecido como '>'.

.ARQUIVO O nome do arquivo; também conhecido como '!'.

.IMPSRC Nas regras de transformação de sufixo, o nome / caminho da fonte a partir da qual o
o destino deve ser transformado (a fonte “implícita”); também conhecido como '<'. Isto
não é definido em regras explícitas.

.MEMBRO O nome do membro do arquivo; também conhecido como '%'.

.OODATE A lista de fontes para este alvo que foram consideradas desatualizadas; também conhecido
Como '?'.

.PREFIXO O prefixo do arquivo de destino, contendo apenas a parte do arquivo, sem sufixo
ou componentes de diretório anteriores; também conhecido como '*'. O sufixo deve ser
um dos sufixos conhecidos declarados com .SUFIXOS ou não será
reconhecido.

.ALVO O nome do alvo; também conhecido como '@'.

As formas mais curtas ('>','!','<','%','?','*'e'@') são permitidos para trás
compatibilidade com makefiles históricos e make POSIX legado e não são recomendados.

Variantes dessas variáveis ​​com a pontuação seguida imediatamente por 'D' ou 'F', por exemplo
'$ (@ D)', são formas legadas equivalentes ao uso dos modificadores': H 'e': T '. Esses formulários são
aceitos para compatibilidade com makefiles AT&T System V UNIX e POSIX, mas não são
recomendado.

Quatro das variáveis ​​locais podem ser usadas em fontes em linhas de dependência porque se expandem
com o valor adequado para cada alvo na linha. Essas variáveis ​​são '.ALVO','.PREFIXO',
'.ARQUIVO'e'.MEMBRO'.

Adicional construídas em variáveis
Além disso, fazer define ou conhece as seguintes variáveis:

$ Um único cifrão '$', ou seja, '$$' se expande para um único cifrão.

.ALLTARGETS A lista de todos os destinos encontrados no Makefile. Se avaliado durante
Análise de Makefile, lista apenas os alvos encontrados até agora.

.CURDIR Um caminho para o diretório onde fazer foi executado. Consulte a descrição
de 'PWD' para obter mais detalhes.

.INCLUÍDO DE DIR
O diretório do arquivo a partir do qual este Makefile foi incluído.

.INCLUÍDO DO ARQUIVO
O nome do arquivo do qual este Makefile foi incluído.

FAÇA O nome que fazer foi executado com (argv [0]) Para compatibilidade fazer
também define .FAÇO com o mesmo valor. A variável preferida para usar é o
variável de ambiente MAKE porque é mais compatível com outras versões
of fazer e não pode ser confundido com o alvo especial com o mesmo nome.

.MAKE.DEPENDFILE
Nomeia o makefile (padrão '.depender') a partir do qual as dependências geradas são
ler.

.MAKE.EXPAND_VARIABLES
Um booleano que controla o comportamento padrão do -V opção.

.FAÇA.EXPORTADO A lista de variáveis ​​exportadas por fazer.

.FAÇA.TRABALHOS O argumento para o -j opção.

.FAÇA.TRABALHO.PREFIXO
If fazer é executado com j então a saída para cada destino é prefixada com um token
'--- alvo ---' a primeira parte do qual pode ser controlada via
.FAÇA.TRABALHO.PREFIXO. Se .FAÇA.TRABALHO.PREFIXO está vazio, nenhum token é impresso.
Por exemplo: .MAKE.JOB.PREFIX = $ {. Newline} --- $ {. MAKE: T} [$ {. MAKE.PID}] iria
produzir tokens como '--- tornar [1234] alvo ---' tornando mais fácil rastrear o
grau de paralelismo alcançado.

MAKEFLAGS A variável de ambiente 'MAKEFLAGS' pode conter qualquer coisa que possa ser
especificado em fazerlinha de comando de. Qualquer coisa especificada em fazercomando de
linha é anexada à variável 'MAKEFLAGS' que é então inserida no
ambiente para todos os programas que fazer executa.

.FAÇA.NÍVEL A profundidade de recursão de fazer. A instância inicial de fazer será 0, e
um valor incrementado é colocado no ambiente para ser visto pelo próximo
geração. Isso permite testes como: .if $ {. MAKE.LEVEL} == 0 para proteger
coisas que só devem ser avaliadas na instância inicial de fazer.

.MAKE.MAKEFILE_PREFERENCE
A lista ordenada de nomes de makefile (padrão 'makefile','Makefile') naquela
fazer Vai procurar.

.MAKE.MAKEFILES
A lista de makefiles lidos por fazer, que é útil para rastrear
dependências. Cada makefile é gravado apenas uma vez, independentemente do número
das vezes lidas.

.MAKE.MODE Processado depois de ler todos os makefiles. Pode afetar o modo que fazer é executado
in. Pode conter várias palavras-chave:

compat Como -B, coloca fazer no modo "compat".

objetivo Coloca fazer no modo "meta", onde os meta arquivos são criados para
cada alvo para capturar a execução do comando, a saída gerada e
if filemon(4) está disponível, as chamadas de sistema que são de
interesse em fazer. A saída capturada pode ser muito útil quando
diagnosticar erros.

curdirOk = bf Normalmente fazer não criará arquivos .meta em '.CURDIR'. Isto
pode ser substituído pela configuração bf para um valor que representa
Verdade.

env Para depuração, pode ser útil incluir o ambiente em
o arquivo .meta.

detalhado Se estiver no modo "meta", imprima uma pista sobre o alvo que está sendo construído.
Isso é útil se a construção estiver sendo executada silenciosamente. O
mensagem impressa o valor de: .MAKE.META.PREFIXO.

ignorar-cmd Alguns makefiles possuem comandos que simplesmente não são estáveis. Isto
palavra-chave faz com que sejam ignorados para determinar se um
o destino está desatualizado no modo "meta". Veja também .NOMETA_CMP.

silencioso = bf If bf for True, quando um arquivo .meta for criado, marque o destino
.SILENCIOSO.

.MAKE.META.BAILIWICK
No modo "meta", fornece uma lista de prefixos que correspondem aos diretórios
controlado por fazer. Se um arquivo gerado fora de .OBJDIR mas a
dentro do referido bailiado está faltando, o alvo atual é considerado fora de
data.

.MAKE.META.CRIADO
No modo "meta", esta variável contém uma lista de todos os meta arquivos atualizados.
Se não estiver vazio, pode ser usado para acionar o processamento de .FAÇA.META.ARQUIVOS.

.FAÇA.META.ARQUIVOS
No modo "meta", esta variável contém uma lista de todos os meta arquivos usados
(atualizado ou não). Esta lista pode ser usada para processar os meta arquivos para
extrair informações de dependência.

.MAKE.META.IGNORE_PATHS
Fornece uma lista de prefixos de caminho que devem ser ignorados; porque o
o conteúdo deve mudar com o tempo. A lista padrão inclui: '/ dev
/ Etc / proc / Tmp / var / run / var / tmp,

.MAKE.META.PREFIXO
Define a mensagem impressa para cada meta arquivo atualizado em "meta verbose"
modo. O valor padrão é:
Edifício $ {. TARGET: H: tA} / $ {. TARGET: T}

.MAKEOVERRIDES Esta variável é usada para registrar os nomes das variáveis ​​atribuídas no
linha de comando, para que possam ser exportados como parte de 'MAKEFLAGS'. Isto
o comportamento pode ser desabilitado atribuindo um valor vazio a '.MAKEOVERRIDES,
dentro de um makefile. Variáveis ​​extras podem ser exportadas de um makefile por
anexando seus nomes a '.MAKEOVERRIDES'. 'MAKEFLAGS' é reexportado
sempre que '.MAKEOVERRIDES'é modificado.

.MAKE.PATH_FILEMON
If fazer foi construído com filemon(4) suporte, isso é definido para o caminho do
nó do dispositivo. Isso permite que os makefiles testem esse suporte.

.FAÇA.PID O id do processo de fazer.

.MAKE.PPID O id do processo pai de fazer.

.MAKE.SAVE_DÓLARES
valor deve ser um boolen que controla se '$$' são preservados ao fazer
': =' atribuições. O padrão é falso, para compatibilidade com versões anteriores. Definir
verdadeiro para compatibilidade com outras marcas. Se definido como falso, '$$' torna-se
'$' de acordo com as regras de avaliação normais.

MAKE_PRINT_VAR_ON_ERROR
Quando fazer para devido a um erro, ele imprime seu nome e o valor de
'.CURDIR', bem como o valor de quaisquer variáveis ​​nomeadas em
'MAKE_PRINT_VAR_ON_ERROR'.

.nova linha Esta variável é simplesmente atribuída a um caractere de nova linha como seu valor. Isto
permite expansões usando o :@ modificador para colocar uma nova linha entre as iterações
do loop em vez de um espaço. Por exemplo, a impressão de
'MAKE_PRINT_VAR_ON_ERROR'poderia ser feito como
$ {MAKE_PRINT_VAR_ON_ERROR: @ v @ $ v = '$ {$ v}' $ {. Newline} @}.

.OBJDIR Um caminho para o diretório onde os destinos são construídos. Seu valor é
determinado tentando chdir(2) para os seguintes diretórios em ordem e
usando a primeira correspondência:

1. $ {MAKEOBJDIRPREFIX} $ {. CURDIR}

(Somente se 'MAKEOBJDIRPREFIX' estiver definido no ambiente ou no comando
linha.)

2. $ {MAKEOBJDIR}

(Somente se 'MAKEOBJDIR' estiver definido no ambiente ou no comando
linha.)

3. $ {. CURDIR}/ obj.$ {MACHINE}

4. $ {. CURDIR}/ obj

5. / usr / obj /$ {. CURDIR}

6. $ {. CURDIR}

A expansão da variável é realizada no valor antes de ser usado, então
expressões como
$ {. CURDIR: S, ^/ usr / src, / var / obj,}
pode ser usado. Isso é especialmente útil com 'MAKEOBJDIR'.

'.OBJDIR'pode ser modificado no makefile através do alvo especial'.OBJDIR'.
Em todos os casos, fazer precisarão chdir(2) para o diretório especificado, se existir,
E definir '.OBJDIR'e' PWD 'para esse diretório antes de executar quaisquer alvos.

.PARSEDIR Um caminho para o diretório do atual 'Makefile'sendo analisado.

.PARSEFILE O nome de base do atual 'Makefile'sendo analisado. Esta variável e
'.PARSEDIR'são ambos definidos apenas enquanto o'Makefiles'estão sendo analisados. Se
você deseja reter seus valores atuais, atribua-os a uma variável usando
atribuição com expansão: (':=').

.CAMINHO Uma variável que representa a lista de diretórios que fazer vai procurar
para arquivos. A lista de pesquisa deve ser atualizada usando o alvo '.CAMINHO,
em vez da variável.

PWD Caminho alternativo para o diretório atual. fazer normalmente define '.CURDIR' para
o caminho canônico dado por getcwd(3). No entanto, se a variável de ambiente
'PWD' é definido e fornece um caminho para o diretório atual, então fazer conjuntos
'.CURDIR'ao valor de' PWD '. Este comportamento é desabilitado se
'MAKEOBJDIRPREFIX' é definido ou 'MAKEOBJDIR' contém uma transformação de variável.
'PWD' é definido com o valor de '.OBJDIR'para todos os programas que fazer
executa.

.TARGETS A lista de destinos explicitamente especificados na linha de comando, se houver.

VPATH listas separadas por vírgulas (“:”) de diretórios que fazer irá procurar por arquivos.
A variável é suportada para compatibilidade com programas make antigos apenas, use
'.CAMINHO' em vez de.

Variável modificadores
A expansão da variável pode ser modificada para selecionar ou modificar cada palavra da variável (onde um
“Palavra” é uma sequência de caracteres delimitada por espaços em branco). O formato geral de uma variável
a expansão é a seguinte:

$ {variável [: modificador [: ...]]}

Cada modificador começa com dois pontos, que pode ser escapado com uma barra invertida ('\').

Um conjunto de modificadores pode ser especificado por meio de uma variável, da seguinte maneira:

modifier_variable = modifier [: ...]
$ {variável: $ {modifier_variable} [: ...]}

Neste caso, o primeiro modificador na modifier_variable não começa com dois pontos, uma vez que
que deve aparecer na variável de referência. Se algum dos modificadores no
modifier_variable contém um cifrão ('$'), estes devem ser duplicados para evitar
expansão.

Os modificadores suportados são:

:E Substitui cada palavra na variável por seu sufixo.

:H Substitui cada palavra na variável por tudo, exceto o último componente.

:Mde cinto de segurança
Selecione apenas as palavras que correspondem de cinto de segurança. Os caracteres curinga padrão do shell
('*', '?' e '[]') podem ser usados. Os caracteres curinga podem ser escapados com um
barra invertida ('\'). Como consequência da maneira como os valores são divididos em palavras, correspondidos e
em seguida, juntou-se, uma construção como
$ {VAR: M *}
irá normalizar o espaçamento entre palavras, removendo todos os espaços à esquerda e à direita, e
converter vários espaços consecutivos em espaços simples.

:Nde cinto de segurança
Isso é idêntico a ':M', mas seleciona todas as palavras que não correspondem de cinto de segurança.

:O Ordene cada palavra em variável em ordem alfabética. Para classificar as palavras em ordem reversa, use o
': O: [- 1..1]'combinação de modificadores.

:Boi Randomize palavras na variável. Os resultados serão diferentes a cada vez que você se referir
para a variável modificada; use a atribuição com expansão (':=') para prevenir tal
comportamento. Por exemplo,

LIST = uno due tre quattro
RANDOM_LIST = $ {LIST: Boi}
STATIC_RANDOM_LIST: = $ {LIST: Boi}

todos:
@echo "$ {RANDOM_LIST}"
@echo "$ {RANDOM_LIST}"
@echo "$ {STATIC_RANDOM_LIST}"
@echo "$ {STATIC_RANDOM_LIST}"
pode produzir resultados semelhantes a:

quattro due tre uno
tre due quattro uno
devido uno quattro tre
devido uno quattro tre

:Q Cita cada metacaractere shell na variável, para que possa ser passado com segurança
por meio de invocações recursivas de fazer.

:R Substitui cada palavra na variável por tudo, exceto seu sufixo.

: gmtime
O valor é uma string de formato para horário de trabalho(3), usando a corrente horário gm(3).

:cerquilha
Calcule um hash de 32 bits do valor e codifique-o como dígitos hexadecimais.

:horário local
O valor é uma string de formato para horário de trabalho(3), usando a corrente horário local(3).

: tA Tente converter a variável em um caminho absoluto usando caminho real(3), se isso falhar, o
o valor permanece inalterado.

: tl Converte variáveis ​​em letras minúsculas.

: tsc
Palavras na variável são normalmente separadas por um espaço em expansão. Este modificador
define o separador para o caractere c. Se c é omitido e nenhum separador é usado.
Os escapes comuns (incluindo códigos numéricos octais) funcionam conforme o esperado.

: tu Converte variáveis ​​em letras maiúsculas.

: tW Faz com que o valor seja tratado como uma única palavra (possivelmente contendo branco incorporado
espaço). Veja também ': [*]'.

: tw Faz com que o valor seja tratado como uma sequência de palavras delimitada por um espaço em branco. Ver
tb ': [@]'.

:S/cadeia_antiga/nova_string/[1gW]
Modifique a primeira ocorrência de cadeia_antiga no valor da variável, substituindo-o por
nova_string. Se um 'g' for anexado à última barra do padrão, todas as ocorrências em
cada palavra é substituída. Se um '1' for anexado à última barra do padrão, apenas
a primeira palavra é afetada. Se um 'W' for anexado à última barra do padrão,
então, o valor é tratado como uma única palavra (possivelmente contendo um espaço em branco incorporado).
If cadeia_antiga começa com um acento circunflexo ('^'), cadeia_antiga está ancorado no início de
cada palavra. Se cadeia_antiga termina com um cifrão ('$'), está ancorado no final de
cada palavra. Dentro nova_string, um e comercial ('&') é substituído por cadeia_antiga (sem
qualquer '^' ou '$'). Qualquer caractere pode ser usado como um delimitador para as partes do
string modificadora. Os caracteres de âncora, e comercial e delimitador podem ser escapados com
uma barra invertida ('\').

A expansão variável ocorre de maneira normal dentro de ambos cadeia_antiga e nova_string
com a única exceção de que uma barra invertida é usada para evitar a expansão de um dólar
sinal ('$'), não um cifrão precedente, como de costume.

:C/de cinto de segurança/substituição/[1gW]
A :C modificador é como o :S modificador, exceto que as strings antigas e novas,
em vez de serem strings simples, são uma expressão regular estendida (consulte regex(3))
corda de cinto de segurança e um ed(1) string de estilo substituição. Normalmente, a primeira ocorrência
do padrão de cinto de segurança em cada palavra do valor é substituído por substituição. O
O modificador '1' faz com que a substituição se aplique a no máximo uma palavra; o modificador 'g'
faz com que a substituição se aplique a tantas instâncias do padrão de pesquisa de cinto de segurança as
ocorrer na palavra ou palavras em que se encontra; o modificador 'W' faz com que o valor seja
tratado como uma única palavra (possivelmente contendo um espaço em branco incorporado). Observe que '1' e
'g' são ortogonais; o primeiro especifica se várias palavras são potencialmente
afetados, o último se múltiplas substituições podem potencialmente ocorrer dentro de cada
palavra afetada.

Quanto à :S modificador, o de cinto de segurança e substituição estão sujeitos a expansão variável
antes de ser analisado como expressões regulares.

:T Substitui cada palavra na variável por seu último componente.

:u Remova as palavras duplicadas adjacentes (como único(1)).

:?string_verdade:string_falsa
Se o nome da variável (não seu valor), quando analisado como uma expressão condicional .if,
avalia como verdadeiro, retorna como seu valor o string_verdade, caso contrário, retorne o
string_falsa. Como o nome da variável é usado como expressão,:? deve ser o primeiro
modificador após o próprio nome da variável - que, é claro, geralmente contém
expansões variáveis. Um erro comum é tentar usar expressões como
$ {NÚMEROS: M42:? Correspondência: não}
que realmente testa definido (NÚMEROS), para determinar se alguma palavra corresponde a "42", você precisa
use algo como:
$ {"$ {NUMBERS: M42}"! = "":? Match: no}.

: string_antiga = string_nova
Esta é a substituição de variável de estilo AT&T System V UNIX. Deve ser o último
modificador especificado. Se cadeia_antiga or nova_string não contém a correspondência de padrão
personagem % então, presume-se que eles estão ancorados no final de cada palavra, portanto, apenas
sufixos ou palavras inteiras podem ser substituídos. De outra forma % é a substring de cadeia_antiga
para ser substituído em nova_string.

A expansão variável ocorre de maneira normal dentro de ambos cadeia_antiga e nova_string
com a única exceção de que uma barra invertida é usada para evitar a expansão de um dólar
sinal ('$'), não um cifrão precedente, como de costume.

:@temperatura@corda@
Este é o mecanismo de expansão de loop do make do OSF Development Environment (ODE).
Diferentemente dos .para a expansão dos loops ocorre no momento da referência. Atribuir temperatura para cada palavra
na variável e avaliar corda. A convenção ODE é que temperatura deve começar e
terminar com um ponto final. Por exemplo.
$ {LINKS: @. LINK. @ $ {LN} $ {TARGET} $ {. LINK.} @}

No entanto, uma única variável de caractere geralmente é mais legível:
$ {MAKE_PRINT_VAR_ON_ERROR: @ v @ $ v = '$ {$ v}' $ {. Newline} @}

:UNewval
Se a variável é indefinida Newval é o valor. Se a variável for definida, o
o valor existente é retornado. Este é outro recurso de criação do ODE. É útil para configurar
por alvo CFLAGS, por exemplo:
$ {_ $ {. ALVO: T} _CFLAGS: U $ {DEF_CFLAGS}}
Se um valor só for necessário se a variável for indefinida, use:
$ {VAR: D: Unewval}

:DNewval
Se a variável está definida Newval é o valor.

:L O nome da variável é o valor.

:P O caminho do nó que tem o mesmo nome da variável é o valor. Se não houver tal
o nó existe ou seu caminho é nulo, então o nome da variável é usado. Em ordem para
este modificador funcionar, o nome (nó) deve pelo menos ter aparecido no rhs de um
dependência.

:!cmd!
A saída do funcionamento cmd é o valor.

: sh Se a variável não estiver vazia, ela será executada como um comando e a saída se tornará a nova
valor.

:: =str
A variável recebe o valor str após a substituição. Este modificador e seu
variações são úteis em situações obscuras, como querer definir uma variável quando
os comandos do shell estão sendo analisados. Esses modificadores de atribuição sempre se expandem para nada,
então, se aparecer em uma linha de regra por si só deve ser precedido de algo para manter
fazer feliz.

A '::'ajuda a evitar correspondências falsas com o estilo AT&T System V UNIX := modificador e
uma vez que a substituição sempre ocorre o :: = forma é vagamente apropriada.

::? =str
Quanto às :: = mas apenas se a variável ainda não tiver um valor.

:: + =str
Acrescentar str para a variável.

::! =cmd
Atribuir a saída de cmd para a variável.

:[alcance]
Seleciona uma ou mais palavras do valor ou realiza outras operações relacionadas ao
forma como o valor é dividido em palavras.

Normalmente, um valor é tratado como uma sequência de palavras delimitada por um espaço em branco. Algum
modificadores suprimem esse comportamento, fazendo com que um valor seja tratado como uma única palavra
(possivelmente contendo espaço em branco incorporado). Um valor vazio ou um valor que consiste
inteiramente de espaço em branco, é tratado como uma única palavra. Para efeitos do ': [],
modificador, as palavras são indexadas tanto para a frente usando inteiros positivos (onde o índice 1
representa a primeira palavra), e para trás usando inteiros negativos (onde índice -1
representa a última palavra).

A alcance está sujeito a expansão variável, e o resultado expandido é então
interpretado da seguinte forma:

índice Seleciona uma única palavra do valor.

começo..final
Seleciona todas as palavras de começo para final, inclusive. Por exemplo, ': [2 ..- 1]' Selecione% s
todas as palavras, da segunda à última palavra. Se começo é melhor que final,
então, as palavras são reproduzidas na ordem reversa. Por exemplo, ': [- 1..1]'seleciona tudo
as palavras do último ao primeiro.

* Faz com que os modificadores subsequentes tratem o valor como uma única palavra (possivelmente
contendo espaço em branco incorporado). Análogo ao efeito de "$ *" em Bourne
Concha.

0 significa o mesmo que ': [*]'.

@ Faz com que os modificadores subsequentes tratem o valor como uma sequência de palavras delimitadas
por espaço em branco. Análogo ao efeito de "$ @" no shell Bourne.

# Retorna o número de palavras do valor.

INCLUIR AFIRMAÇÕES, CONDICIONAIS E PARA ROTAÇÕES


Inclusão de Makefile, estruturas condicionais e loops for remanescentes da programação C
os idiomas são fornecidos em fazer. Todas essas estruturas são identificadas por uma linha que começa com
um único caractere de ponto ('.'). Os arquivos estão incluídos com .incluirlima⟩ ou .incluir
"lima". As variáveis ​​entre os colchetes angulares ou aspas duplas são expandidas para formar o arquivo
nome. Se colchetes angulares forem usados, o makefile incluído deve estar no sistema
diretório makefile. Se aspas duplas forem usadas, incluindo o diretório do makefile e qualquer
diretórios especificados usando o -I opções são pesquisadas antes do diretório makefile do sistema.
Para compatibilidade com outras versões do fazer 'Incluir arquivo ...' também é aceito.

Se a declaração de inclusão for escrita como .-incluir ou como .sincluir em seguida, os erros de localização e / ou
arquivos de inclusão de abertura são ignorados.

Se a declaração de inclusão for escrita como .dincluir não são apenas erros de localização e / ou abertura
incluir arquivos ignorados, mas dependências obsoletas dentro do arquivo incluído serão ignoradas apenas
como .MAKE.DEPENDFILE.

As expressões condicionais também são precedidas por um único ponto como o primeiro caractere de uma linha.
As condicionais possíveis são as seguintes:

.erro mensagem
A mensagem é impressa junto com o nome do makefile e número da linha, então
fazer vai sair.

.exportar variável ...
Exporte a variável global especificada. Se nenhuma lista de variáveis ​​for fornecida, todos os globais
são exportados, exceto para variáveis ​​internas (aquelas que começam com '.'). Isso não é
afetado pelo -X sinalizador, portanto, deve ser usado com cautela. Para compatibilidade com
de outros fazer programas 'exportar variável = valor' também são aceitos.

Anexar um nome de variável a .FAÇA.EXPORTADO é equivalente a exportar uma variável.

.export-env variável ...
O mesmo que '.export', exceto que a variável não é anexada a .FAÇA.EXPORTADO.
Isso permite exportar um valor para o ambiente diferente daquele usado
by fazer internamente.

.export-literal variável ...
O mesmo que '.export-env', exceto que as variáveis ​​no valor não são expandidas.

.info mensagem
A mensagem é impressa junto com o nome do makefile e o número da linha.

.undef variável
Cancele a definição da variável global especificada. Apenas variáveis ​​globais podem ser indefinidas.

.uexportar variável ...
O oposto de '.export'. O global especificado variável será removido de
.FAÇA.EXPORTADO. Se nenhuma lista de variáveis ​​for fornecida, todos os globais não serão exportados e
.FAÇA.EXPORTADO excluída.

.unexport-env
Desexportar todos os globais anteriormente exportados e limpar o ambiente herdado de
o pai. Esta operação causará um vazamento de memória do ambiente original, então
deve ser usado com moderação. Testando para .FAÇA.NÍVEL sendo 0, faria sentido. Além disso
observe que quaisquer variáveis ​​originadas no ambiente pai devem ser
preservado explicitamente, se desejado. Por exemplo:

.if $ {. MAKE.LEVEL} == 0
CAMINHO: = $ {PATH}
.unexport-env
.export PATH
. Endif

Resultaria em um ambiente contendo apenas 'PATH', que é o mínimo útil
ambiente. Na verdade, '.MAKE.LEVEL' também será enviado para o novo ambiente.

.aviso mensagem
A mensagem prefixada por 'Atenção:'é impresso junto com o nome do makefile
e o número da linha.

.E se [!]expressão [operador expressão ...]
Teste o valor de uma expressão.

.ifdef [!]variável [operador variável ...]
Teste o valor de uma variável.

.ifndef [!]variável [operador variável ...]
Teste o valor de uma variável.

.ifmake [!]alvo [operador alvo ...]
Teste o alvo que está sendo construído.

.ifnmake [!] alvo [operador alvo ...]
Teste o alvo que está sendo construído.

.outro Inverta o sentido da última condicional.

.elif [!] expressão [operador expressão ...]
Uma combinação de '.outro' Seguido por '.E se'.

.elifdef [!]variável [operador variável ...]
Uma combinação de '.outro' Seguido por '.ifdef'.

.elifndef [!]variável [operador variável ...]
Uma combinação de '.outro' Seguido por '.ifndef'.

.elifmake [!]alvo [operador alvo ...]
Uma combinação de '.outro' Seguido por '.ifmake'.

.elifnmake [!]alvo [operador alvo ...]
Uma combinação de '.outro' Seguido por '.ifnmake'.

. Endif Finalize o corpo da condicional.

A operador pode ser qualquer um dos seguintes:

|| OR lógico.

&& AND lógico; de maior precedência do que “||”.

Como em C, fazer irá apenas avaliar uma condicional na medida do necessário para determinar sua
valor. Os parênteses podem ser usados ​​para alterar a ordem de avaliação. O operador booleano '!,
pode ser usado para negar logicamente uma condicional inteira. É de maior precedência do que
'&&'.

O valor de expressão pode ser qualquer um dos seguintes:

definido Toma um nome de variável como argumento e avalia como verdadeiro se a variável foi
definiram.

fazer Toma um nome de destino como um argumento e avalia como verdadeiro se o destino era
especificado como parte de fazerlinha de comando de ou foi declarado o destino padrão
(implícita ou explicitamente, veja .A PRINCIPAL) antes da linha que contém o
condicional.

vazio Pega uma variável, com possíveis modificadores, e avalia como verdadeira se a expansão
da variável resultaria em uma string vazia.

existe Utiliza um nome de arquivo como argumento e é avaliado como verdadeiro se o arquivo existir. o
o arquivo é pesquisado no caminho de pesquisa do sistema (ver .CAMINHO).

alvo Toma um nome de destino como um argumento e avalia como verdadeiro se o destino foi
definiram.

comandos
Toma um nome de destino como um argumento e avalia como verdadeiro se o destino foi
definido e tem comandos associados a ele.

Expressão também pode ser uma comparação aritmética ou de string. A expansão variável é realizada
em ambos os lados da comparação, após o que os valores integrais são comparados. Um valor é
interpretado como hexadecimal se for precedido por 0x, caso contrário, é decimal; números octais
não são suportados. Os operadores relacionais padrão C são todos suportados. Se depois
expansão variável, do lado esquerdo ou direito de um '=='ou'!='operador não é um
valor integral, então a comparação de string é realizada entre as variáveis ​​expandidas. Se não
operador relacional é fornecido, assume-se que a variável expandida está sendo comparada
contra 0 ou uma string vazia no caso de uma comparação de string.

Quando fazer está avaliando uma dessas expressões condicionais e encontra um (branco-
separado por espaço) palavra que não reconhece, a expressão "fazer" ou "definida" é
aplicado a ele, dependendo da forma do condicional. Se o formulário for '.ifdef',
'.ifndef'ou'.E se'a expressão “definida” é aplicada. Da mesma forma, se o formulário for
'.ifmake'ou'.ifnmake, da'A expressão “make” é aplicada.

Se a condicional for avaliada como verdadeira, a análise do makefile continua como antes. Se isso
for avaliada como falsa, as linhas a seguir serão ignoradas. Em ambos os casos, isso continua até que um
'.outro'ou'. Endif' seja encontrado.

Os loops For são normalmente usados ​​para aplicar um conjunto de regras a uma lista de arquivos. A sintaxe de um
for loop é:

.para variável [variável ...] in expressão
⟨Fazer regras⟩
.endfor

Depois do para expressão é avaliado, é dividido em palavras. Em cada iteração do
loop, uma palavra é tomada e atribuída a cada variável, em ordem, e estes variáveis e guarante que os mesmos estão
substituído no fazer regras dentro do corpo do loop for. O número de palavras deve
saia quites; ou seja, se houver três variáveis ​​de iteração, o número de palavras fornecidas
deve ser um múltiplo de três.

COMENTÁRIOS


Os comentários começam com um caractere hash ('#'), em qualquer lugar, exceto em uma linha de comando do shell, e
continue até o final de uma nova linha sem escape.

SPECIAL FONTES (ATRIBUTOS)


.EXEC O destino nunca está desatualizado, mas sempre executa os comandos de qualquer maneira.

.IGNORAR Ignore quaisquer erros dos comandos associados a este alvo, exatamente como se
todos eles foram precedidos por um travessão ('-').

.FEITO Marque todas as fontes deste alvo como atualizadas.

.FAÇO Execute os comandos associados a este alvo, mesmo se o -n or -t opções eram
Especificadas. Normalmente usado para marcar recursivas fazers.

.META Crie um meta-arquivo para o destino, mesmo se estiver sinalizado como .FALSO, .FAÇOou
.ESPECIAL. Uso em conjunto com .FAÇO é o caso mais provável. Em "meta"
modo, o destino está desatualizado se o metarquivo estiver ausente.

.NOMETA Não crie um meta-arquivo para o destino. Metarquivos também não são criados para
.FALSO, .FAÇOou .ESPECIAL alvos.

.NOMETA_CMP
Ignore as diferenças nos comandos ao decidir se o destino está desatualizado. Isto é
útil se o comando contém um valor que sempre muda. Se o número de
os comandos mudam, porém, o alvo ainda estará desatualizado. O mesmo efeito
aplica-se a qualquer linha de comando que usa a variável .OODATE, que pode ser usado para
esse propósito mesmo quando não for necessário ou desejado de outra forma:

pule-compare-para-algum:
@echo isso será comparado
@echo isso não $ {. OODATE: M.NOMETA_CMP}
@echo isso também será comparado

A :M padrão suprime qualquer expansão da variável indesejada.

.NOPATH Não procure o destino nos diretórios especificados por .CAMINHO.

.NÃO PRINCIPAL Normalmente fazer seleciona o primeiro alvo que encontra como o alvo padrão a ser
construído se nenhum destino foi especificado. Esta fonte impede que este alvo seja
selecionado.

.OPCIONAL
Se um alvo for marcado com este atributo e fazer não consigo descobrir como criar
ele irá ignorar este fato e assumir que o arquivo não é necessário ou já existe.

.FALSO O destino não corresponde a um arquivo real; é sempre considerado ser
desatualizado e não será criado com o -t opção. Transformação de sufixo
as regras não são aplicadas a .FALSO alvos.

.PRECIOSO
Quando fazer é interrompido, ele normalmente remove quaisquer alvos parcialmente feitos. Isto
source impede que o destino seja removido.

.RECURSIVO
Sinônimo de .FAÇO.

.SILENCIOSO Não ecoe nenhum dos comandos associados a este alvo, exatamente como se eles
todos foram precedidos por um sinal de arroba ('@').

.USAR Transforme o alvo em fazerversão de uma macro. Quando o alvo é usado como um
fonte para outro destino, o outro destino adquire os comandos, fontes e
atributos (exceto para .USAR) da fonte. Se o alvo já tiver comandos,
da .USAR os comandos do alvo são anexados a eles.

.USE ANTES
Exatamente como .USAR, mas acrescente o .USE ANTES comandos de destino para o destino.

.ESPERAR If .ESPERAR aparece em uma linha de dependência, as fontes que o precedem são feitas antes
as fontes que o sucedem na linha. Uma vez que os dependentes de arquivos não são
feito até que o próprio arquivo pudesse ser feito, isso também impede que os dependentes sejam
construídos, a menos que sejam necessários para outra ramificação da árvore de dependência. Dado assim:

x: a. ESPERA b
eco x
a:
eco a
b: b1
eco b
b1:
eco b1

a saída é sempre 'a', 'b1', 'b', 'x'.
A ordem imposta por .ESPERAR só é relevante para marcas paralelas.

SPECIAL ALVOS


Alvos especiais não podem ser incluídos com outros alvos, ou seja, eles devem ser o único alvo
Especificadas.

.COMEÇAR Quaisquer linhas de comando anexadas a este alvo são executadas antes de qualquer outra coisa
feito.

.PADRÃO
Isso é uma espécie de .USAR regra para qualquer destino (que foi usado apenas como uma fonte) que
fazer não consigo descobrir nenhuma outra maneira de criar. Apenas o script de shell é usado.
A .IMPSRC variável de um alvo que herda .PADRÃOos comandos de é definido para o
o próprio nome do alvo.

. END Quaisquer linhas de comando anexadas a este alvo são executadas depois que tudo o mais é
feito.

.ERRO Quaisquer linhas de comando anexadas a este destino são executadas quando outro destino falha.
A .ERROR_TARGET variável é definida para o destino que falhou. Veja também
MAKE_PRINT_VAR_ON_ERROR.

.IGNORAR Marque cada uma das fontes com o .IGNORAR atributo. Se nenhuma fonte for especificada,
isso é o equivalente a especificar o -i opção.

.INTERROMPER
If fazer for interrompido, os comandos para este destino serão executados.

.A PRINCIPAL Se nenhum alvo for especificado quando fazer for invocado, este destino será construído.

.MAKEFLAGS
Este alvo fornece uma maneira de especificar sinalizadores para fazer quando o makefile é usado.
As sinalizações são como se digitadas no shell, embora o -f opção não terá efeito.

.NOPATH Aplique o .NOPATH atributo a quaisquer fontes especificadas.

.NÃO PARALELO
Desative o modo paralelo.

.NO_PARALLEL
Sinônimo de .NÃO PARALELO, para compatibilidade com outras variantes do pmake.

.OBJDIR A fonte é um novo valor para '.OBJDIR'. Se existe, fazer precisarão chdir(2) para isso
e atualize o valor de '.OBJDIR'.

.PEDIDO Os alvos nomeados são feitos em sequência. Este pedido não adiciona alvos ao
lista de metas a serem feitas. Uma vez que os dependentes de um alvo não são construídos
até que o próprio alvo possa ser construído, a menos que 'a' seja construído por outra parte do
gráfico de dependência, o seguinte é um loop de dependência:

.ORDER: ba
BA

A ordem imposta por .PEDIDO só é relevante para marcas paralelas.

.CAMINHO As fontes são diretórios que devem ser pesquisados ​​por arquivos não encontrados no
diretório atual. Se nenhuma fonte for especificada, qualquer uma especificada anteriormente
os diretórios são excluídos. Se a fonte for especial .DOTLAST alvo, então o
o diretório de trabalho atual é pesquisado por último.

.CAMINHO.sufixo
Como .CAMINHO mas se aplica apenas a arquivos com um sufixo específico. O sufixo deve
foram previamente declarados com .SUFIXOS.

.FALSO Aplique o .FALSO atributo a quaisquer fontes especificadas.

.PRECIOSO
Aplique o .PRECIOSO atributo a quaisquer fontes especificadas. Se nenhuma fonte for
especificado, o .PRECIOSO atributo é aplicado a cada destino no arquivo.

.CONCHA Define a concha que fazer usará para executar comandos. As fontes são um conjunto de
campo = valor pares.

nome Esta é a especificação mínima, usada para selecionar um dos
especificações de shell; sh, ksh e csh.

caminho Especifica o caminho para o shell.

hasErrCtl Indica se o shell oferece suporte à saída em caso de erro.

verificar O comando para ativar a verificação de erros.

ignorar O comando para desativar a verificação de erros.

eco O comando para ativar o eco de comandos executados.

calma O comando para desligar o eco de comandos executados.

filtro A saída para filtrar após emitir o calma comando. É tipicamente
idêntico a calma.

errFlag O sinalizador para passar o shell para permitir a verificação de erros.

ecoFlag O sinalizador para passar o shell para permitir o eco de comando.

nova linha O literal de string para passar o shell que resulta em uma única nova linha
caractere quando usado fora de quaisquer caracteres de citação.
Exemplo:

.SHELL: name = ksh path = / bin / ksh hasErrCtl = true \
check = "set -e" ignore = "set + e" \
echo = "set -v" quiet = "set + v" filter = "set + v" \
echoFlag = v errFlag = e newline = "'\ n'"

.SILENCIOSO Aplique o .SILENCIOSO atributo a quaisquer fontes especificadas. Se nenhuma fonte for especificada,
da .SILENCIOSO atributo é aplicado a todos os comandos no arquivo.

.ESTADO Este destino é executado quando um arquivo de dependência contém entradas obsoletas, tendo .ALLSRC
definido com o nome desse arquivo de dependência.

.SUFIXOS
Cada fonte especifica um sufixo para fazer. Se nenhuma fonte for especificada, qualquer
os sufixos especificados anteriormente são excluídos. Permite a criação de sufixo-
regras de transformação.

Exemplo:

.SUFIXOS: .o
.co:
cc -o $ {. TARGET} -c $ {. IMPSRC}

MEIO AMBIENTE


fazer usa as seguintes variáveis ​​de ambiente, se houver: MACHINE, MACHINE_ARCH,
MACHINE_MULTIARCH, MAKE, MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX, MAKESYSPATH, PWD e
TMPDIR.

MAKEOBJDIRPREFIX e MAKEOBJDIR só podem ser definidos no ambiente ou na linha de comando para
fazer e não como variáveis ​​makefile; veja a descrição de '.OBJDIR' para mais detalhes.

Use o bmake online usando os serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    PostInstallerF
    PostInstallerF
    PostInstallerF irá instalar todos os
    software que o Fedora Linux e outros
    não inclui por padrão, após
    executando o Fedora pela primeira vez. Seu
    fácil para ...
    Baixar PostInstallerF
  • 2
    traço
    traço
    O projeto strace foi movido para
    https://strace.io. strace is a
    diagnóstico, depuração e instrução
    rastreador de espaço do usuário para Linux. É usado
    para monitorar um...
    Baixar strace
  • 3
    gMKVEExtractGUI
    gMKVEExtractGUI
    Uma GUI para o utilitário mkvextract (parte do
    MKVToolNix) que incorpora a maioria (se
    nem todas) funcionalidade de mkvextract e
    utilitários mkvinfo. Escrito em C#NET 4.0,...
    Baixar gMKVExtractGUI
  • 4
    Biblioteca JasperReports
    Biblioteca JasperReports
    A biblioteca JasperReports é a
    código aberto mais popular do mundo
    inteligência de negócios e relatórios
    motor. É inteiramente escrito em Java
    e é capaz de ...
    Baixe a Biblioteca JasperReports
  • 5
    Livros Frappe
    Livros Frappe
    Frappe Books é um software livre e de código aberto
    software de contabilidade de desktop que é
    simples e bem projetado para ser usado por
    pequenas empresas e freelancers. Isto'...
    Baixar Livros Frappé
  • 6
    Python Numérica
    Python Numérica
    NOTÍCIAS: NumPy 1.11.2 é a última versão
    que será feito no sourceforge. Rodas
    para Windows, Mac e Linux, bem como
    distribuições de fonte arquivadas podem ser ...
    Baixar Numérico Python
  • Mais "

Comandos Linux

Ad