Este é o comando makeppinfo que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas múltiplas estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online de Windows ou emulador online de MAC OS.
PROGRAMA:
NOME
makeppinfo -- O que makepp sabe sobre arquivos
DESCRIÇÃO
?: - ?, A: -UMA,
--args-arquivo,
--argumentos-arquivo, D: -d,
--datas,
--decodificar-datas, F: -f,
--força, H: -h,
--ajuda, K: -k,
--lista de chaves,
--chaves, M: $MAKEPPINFOFLAGS, Q: -q,
--quieto, T: -t,
--atravessar, U: -você,
--não lembrado, V: -V,
--versão
makeppinfo opção [Arquivo ...]
mppi opção [Arquivo ...]
Makepp lembra informações detalhadas sobre os arquivos que digitalizou e/ou construiu. Para o
arquivos construídos ele lembra tudo o que foi relevante, incluindo suas dependências.
Esta informação é armazenada no .makepp subdiretório ao longo do arquivo ao qual pertence. Isto
tem a forma de pares de valores-chave. Em alguns casos, o valor será novamente uma lista de
pares associados, normalmente a assinatura e o arquivo.
Se "ENV_DEPS" e "ENV_VALS" forem exibidos, eles serão mesclados em uma tabela de duas colunas.
Se "DEP_SIGS" e "SORTED_DEPS" forem exibidos, eles serão mesclados em duas colunas
tabela (nesta ordem que dá um melhor layout). Cada dependência possui uma "ASSINATURA"
que é apenas "timestamp,size", usado apenas para verificar se o arquivo deve ser verificado novamente. Para
links simbólicos pendentes, em vez da assinatura do linkado, a própria assinatura do link é
determinado desta forma, e um 0 anexado para marcar este caso especial. O interessante
as informações são armazenadas em alguma outra chave, para as assinaturas integradas da seguinte forma:
· "C_MD5_SUM" para "C" ou "c_compilation_md5"
· "MD5_SUM" para "md5"
· "SHARED_OBJECT" para "objeto_compartilhado"
· "V_MD5_SUM" para "verilog_synthesis_md5"
· "XML_MD5_SUM" para "xml"
· "XML_SPACE_MD5_SUM" para "xml_space"
Essas listas de assinaturas são o motivo mais frequente para reconstruir um arquivo, então você pode
gostaria de verificar se a assinatura armazenada para uma dependência corresponde à atual
"BUILD_SIGNATURE" desse arquivo. Se as assinaturas e tudo mais corresponderem, isso é
a base para obter um arquivo de (um dos) seus repositórios ou construir cache, se for encontrado
lá. Os detalhes dependem do método de verificação de compilação aplicável.
Você encontrará dois tipos de assinaturas: as simples consistem em duas assinaturas separadas por vírgula
números, que são o carimbo de data/hora no formato do sistema de arquivos (segundos desde 1970) e o tamanho.
Para alguns arquivos, o makepp terá adicionalmente a assinatura inteligente relevante, que é um
codificado em base64 (letras, dígitos, barra e mais) Soma MD5 do arquivo simples ou resumido
conteúdos.
Este comando é parcialmente uma ferramenta de depuração makepp. A lista de chaves varia dependendo de qual
scanner, verificação de construção e assinatura foram usados. Para entender completamente o resultado, você pode precisar
para ver o código-fonte. Dito isto, há também alguns aspectos geralmente interessantes
informações a serem obtidas.
As opções válidas são:
-A nome do arquivo
--args-file =nome do arquivo
--arguments-file =nome do arquivo
Leia o arquivo e analise-o como possivelmente separado por espaço em branco e / ou por nova linha
opções.
-d
--datas
--decodificar-datas
Nas assinaturas simples, acrescente o primeiro número, a data e hora bruta, com seu humano
forma legível entre parênteses.
-f
--força
Exibir informações mesmo quando são inválidas devido a arquivo inexistente ou modificado. Nisso
caso a chave "SIGNATURE" é substituída por "invalidated_SIGNATURE" e o valor
indica entre parênteses que o arquivo foi excluído ou qual assinatura o arquivo possui agora.
-?
-h
--Socorro
Imprima um breve resumo das opções.
-k Lista
--keys =Lista
--keylist =Lista
O Lista especifica um ou mais padrões de estilo Shell separados por espaço (com [xyz],?, *,
{a, bc, def}). Lembre-se de protegê-los de seu Shell citando. Estes são combinados
contra as chaves. Cada padrão pode ser precedido por um ponto de exclamação ("!") ou um
circunflexo ("^") para excluir as chaves correspondentes daquelas selecionadas antes, em vez de adicionar
para a seleção. Se o primeiro padrão começar com um ponto de exclamação,
opera em todas as teclas.
--keys='COMMAND CWD' # Como foi construído e onde (em relação ao arquivo).
Se você quiser apenas nomes de arquivos (útil com "-t|--traverse") selecione uma chave inexistente como
"Nenhum".
-q
--quieto
Não liste nomes de arquivos e chaves. Repita para omitir também os avisos.
-t
--atravessar
Também produza as mesmas informações para cada arquivo em SORTED_DEPS (recursivamente se
repetido).
-u
--não lembrado
Percorra as dependências dos arquivos fornecidos, mas em vez de mostrar suas informações, de todos
os diretórios envolvidos listam apenas os arquivos não lembrados para esses alvos. O
A ideia aqui é ajudá-lo a identificar arquivos que não são mais necessários. Surpreendentemente, isso irá
inclua os Makefiles desses diretórios, porque eles geralmente não são um
dependência.
Dar esta opção duas vezes também irá para diretórios distantes que não são gerados
relativamente, como / usr / include.
-V
--versão
Imprima o número da versão.
EXEMPLOS
Geral
Cada método de verificação de construção documenta como ver em que baseiam sua decisão. Encontrando
os caminhos das dependências são os mesmos em todos os casos, por isso é mostrado aqui. Se você construir
para um diretório diferente, encontrar o caminho das entradas requer uma tradução relativa
para CWD. Por exemplo, formato curto ou longo:
makeppinfo --keys='CWD SORTED_DEPS' obj/bo
mppi -k'CWD SORTED_DEPS' obj/bo
obj/bo:
CWD=../src
SORTED_DEPS =
bc
inc/bh
/ usr / bin / gcc
CWD é o diretório relativo ao arquivo, de onde ele foi construído. Esse diretório é aquele
de onde todos os caminhos relativos em SORTED_DEPS começam. Isto significa que sob o mesmo
diretório temos entradas fonte/bc e src/inc/bh e uma saída obj/bo. Do
ponto de vista de bo, as entradas são ../src/bc e ../src/inc/bh. Não importa isso
demos um caminho relativo para bo, as informações mostradas seriam as mesmas, se tivéssemos primeiro
alterado para vol.
O razão for a reconstruir
Em alguns casos, o makepp pode reconstruir repetidamente um arquivo aparentemente atualizado. Se
"makepplog" não ajuda aqui, este comando fornece a situação exata:
makeppinfo --traverse algum arquivo
mppi -t algum arquivo
Quando isso acontecer de forma reproduzível, emita este comando antes e depois e compare o
saídas. As coisas que diferem são a razão da reconstrução.
Provando Consistência
Às vezes você mudará seus Makefiles e se perguntará se eles ainda fazem a mesma coisa.
Aqui está um comando que informa exatamente como o makepp foi construído somefile:
makeppinfo --traverse --traverse --keys='CWD COMMAND' algum arquivo
mppi -ttk'CWD SORTED_DEPS' algum arquivo
Isso percorrerá recursivamente todas as dependências de somefile e dizer em que
diretório que emitiu qual comando. Executando isso depois do antigo e depois do novo build
e comparando os resultados, você pode ver o que mudou.
O mesmo funciona para testar uma nova versão do makepp, embora algumas versões mais antigas
lidar com espaços em branco nas linhas de continuação de comando de maneira diferente, e houve um bug na classificação
ordem, o que pode fazer com que os arquivos saiam em uma ordem diferente. Se este for o caso
você, deixe o Shell montar os argumentos classificados:
makeppinfo --keys='COMANDO CWD' `makeppinfo --traverse --traverse --keys=none algum arquivo|tr -d :|sort`
mppi -k'CWD SORTED_DEPS' `mppi -ttknone algum arquivo|tr -d :|sort`
MEIO AMBIENTE
Makeppinfo analisa a seguinte variável de ambiente:
$MAKEPPINFOFLAGS
Quaisquer sinalizadores nesta variável de ambiente são interpretados como opções de linha de comando antes
quaisquer opções explícitas. As citações são interpretadas como em makefiles.
Use makeppinfo online usando serviços onworks.net