InglêsFrancêsEspanhol

Ad


favicon do OnWorks

makepp_build_algorithm - Online na nuvem

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

Este é o comando makepp_build_algorithm 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


makepp_build_algorithm - Como makepp executa um makefile

DESCRIÇÃO


Os componentes internos do Makepp diferem do make padrão do Unix de maneiras fundamentais. Esta página
descreve a filosofia diferente em detalhes.

Reverter vs para a frente inferência
Makepp funciona na direção oposta do make padrão do Unix. Marca Unix tradicional
recebe um alvo para construir e, em seguida, encontra uma regra que corresponde aos personagens no
nome do arquivo de destino. Se o destino for mais antigo do que qualquer uma de suas dependências da regra, ele
é reconstruído.

Por exemplo, considere esta regra de padrão:

% .o:% .cxx
$ (CXX) $ (CXXFLAGS) -c $ (entrada) -o $ (saída)

Quando o make percebe que precisa fazer um arquivo chamado "xyz.o", ele pesquisa em sua lista de
regras de padrão até ver que "xyz.o" corresponde ao padrão "% .o", e então se aplica
Esta regra.

Makepp funciona na direção oposta. Ele primeiro calcula todos os arquivos que pode possivelmente
construir aplicando regras que correspondem aos caracteres nos nomes de arquivo de dependência. Então quando
ele precisa construir um arquivo, ele simplesmente olha para ver se é um dos arquivos que conhece
como construir. A lista de arquivos conhecidos é armazenada com base no nome do arquivo absoluto.

Quando o makepp encontra a regra padrão acima, ele procura por todos os arquivos no diretório
correspondendo ao padrão "% .cxx" (ou seja, "* .cxx"). Para cada um desses arquivos, ele então se lembra
que ele pode produzir o arquivo ".o" correspondente. Se posteriormente o makepp descobrir que
pode fazer outro arquivo ".cxx" que não existe atualmente, esta regra também será aplicada
e o arquivo ".o" correspondente será marcado.

Isso pode parecer um pouco ineficiente, mas não é tão lento na maioria dos casos,
e muitas vezes é verdade que virtualmente todos os arquivos que podem ser compilados são de fato compilados.
E conhecer a lista completa de arquivos que podem ser construídos tem várias vantagens:

· Os curingas podem corresponder a arquivos que ainda não existem, mas podem ser criados.

· Arquivos de cabeçalho que foram detectados pelo verificador automático de dependência não têm
existir; makepp sabe onde eles estarão. (A maioria das outras soluções para este problema
suponha que quaisquer cabeçalhos que ainda não existam estejam no diretório atual.)

· Repositórios são muito mais simples de implementar, pois makepp sabe de antemão quais arquivos ele
pode fazer. (Veja makepp_repositories para detalhes.)

· É possível determinar facilmente quais arquivos podem ser construídos (veja o
função "$ (only_targets)".

· A função "$ (infer_objects)" do Makepp é bastante simplificada por saber o que são os objetos
disponível.

Arquivos vs textual padrões
Makepp associa comandos de construção a um arquivo de destino, não a um padrão textual para um
nome do arquivo. Portanto, não é confundido com nomes diferentes para o mesmo arquivo. Assim, para
exemplo, makepp saberá que "./xyz" e "xyz" são o mesmo arquivo, enquanto outro make
utilitários não podem.

Isto é particularmente importante porque (ao contrário do make padrão) makepp carrega makefiles
de diretórios diferentes. Para que os makefiles sejam relativamente independentes, com
nenhuma posição especial dada a um makefile de nível superior, cada makefile refere-se a todos os arquivos
em relação ao seu próprio diretório. Portanto, se você carregar um makefile do subdiretório
"other_stuff", e esse makefile se refere a "../xyz", makepp vai perceber novamente que é
o mesmo arquivo referido acima. (Também não será confundido com diretório vinculado por software
nomes.)

Armazenado construir INFORMAÇÕES
O Makepp armazena muito mais informações sobre cada arquivo que ele constrói além da data
carimbo (que é tudo o que o padrão faz se preocupa). Essas informações incluem:

· A assinatura deste arquivo na última compilação, para que possamos saber se o próprio arquivo possui
alterado.

· Os nomes de cada arquivo de dependência, incluindo arquivos de inclusão e outros arquivos inferidos
automaticamente. Se esta lista mudar, o makepp assume que precisa ser reconstruída.

· A assinatura de cada dependência. Dessa forma, o makepp sabe como reconstruir não só quando o
dependências são mais recentes do que o destino, mas quando elas mudam em tudo. Isso também faz
é possível usar outros tipos de assinaturas, como somas de verificação criptográficas, em vez
do que a data do arquivo.

· O comando de construção inteiro (e seu cwd). Desta forma, se você alterar o comando de construção
(por exemplo, mudar as opções do compilador), makepp sabe como reconstruir mesmo se os arquivos
eles próprios não mudaram.

· A arquitetura. Se você compilou seu programa no Linux e depois mude para
Solaris, makepp sabe automaticamente como recompilar tudo.

Makepp cria um subdiretório em cada diretório que toca, denominado ".makepp". o
construir informações para um arquivo nome do arquivo em um diretório é armazenado em .makepp / nome do arquivo. Se
você deletar este subdiretório ou alterar os arquivos, makepp irá reconstruir todos os arquivos afetados.

Implícito carregamento
Se makepp está tentando construir um alvo em um diretório e não tem uma regra para isso ainda,
ou se estiver procurando por arquivos que correspondam a um caractere curinga em um diretório, ele irá procurar
diretório para ver se um makefile está presente. Se for assim, o makefile será carregado
automaticamente.

Isso significa que você geralmente não precisa dizer explicitamente ao makepp onde encontrar
makefiles - tudo que você precisa fazer é referenciar um arquivo em outro diretório, e o makepp irá
descobrir automaticamente como construí-lo.

O carregamento implícito ocorrerá apenas se o diretório for gravável para você. Portanto, se você quiser
evite que o makepp tente construir um monte de coisas que nunca mudam, simplesmente faça o
diretório somente leitura.

O carregamento implícito não ocorrerá se você estiver em uma árvore sob um RootMakeppfile (.mk) e os votos de
outro makefile está fora dessa árvore. Se você quiser uma vez, você pode dar um
Opção "--do-build = /" para makepp, para fazer tudo fora da árvore construível. Se você
sempre quiser isso, você pode colocar uma instrução "load_makefile" em algum lugar dentro da árvore para
conecte-o explicitamente à árvore.

Se o carregamento implícito atrapalhar (ou seja, o makepp carrega muitos makefiles e desperdiça
tempo, ou então você realmente não quer tentar reconstruir todas as coisas descritas no
makefiles), você pode desligá-lo para todos os diretórios usando o comando "--noimplicit_load"
opção de linha, ou você pode desligá-lo para diretórios selecionados usando "no_implicit_load"
declaração em seu makefile.

Use makepp_build_algorithm online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    Phaser
    Phaser
    Phaser é um aplicativo rápido, gratuito e divertido
    framework de jogo HTML5 de origem que oferece
    Renderização WebGL e Canvas em
    navegadores da web para desktop e celular. Jogos
    pode ser co ...
    Baixar Phaser
  • 2
    Motor VASSAL
    Motor VASSAL
    VASSAL é um motor de jogo para criar
    versões eletrônicas do tabuleiro tradicional
    e jogos de cartas. Ele fornece suporte para
    renderização e interação de peças do jogo,
    e ...
    Baixar VASSAL Engine
  • 3
    OpenPDF - Fork do iText
    OpenPDF - Fork do iText
    OpenPDF é uma biblioteca Java para criar
    e edição de arquivos PDF com LGPL e
    Licença de código aberto MPL. OpenPDF é o
    LGPL/MPL sucessor de código aberto do iText,
    um ...
    Baixar OpenPDF - Bifurcação do iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Sistema para Automatizado
    Análises geocientíficas - é um geográfico
    Software de Sistema de Informação (GIS) com
    imensas capacidades para geodados
    processando e ana ...
    Baixar SAGA GIS
  • 5
    Caixa de ferramentas para Java / JTOpen
    Caixa de ferramentas para Java / JTOpen
    O IBM Toolbox for Java / JTOpen é um
    biblioteca de classes Java suportando o
    programação cliente/servidor e internet
    modelos para um sistema rodando OS/400,
    i5/OS, ou...
    Baixar Toolbox para Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (ou D3 para documentos baseados em dados)
    é uma biblioteca JavaScript que permite
    para produzir dados dinâmicos e interativos
    visualizações em navegadores da web. Com D3
    você...
    Baixar D3.js
  • Mais "

Comandos Linux

  • 1
    Abidiff
    Abidiff
    abidiff - comparar ABIs de arquivos ELF
    abidiff compara o aplicativo binário
    Interfaces (ABI) de duas bibliotecas compartilhadas
    em formato ELF. Ele emite um significativo
    relatorio ...
    Executar abidiff
  • 2
    abidw
    abidw
    abidw - serializar o ABI de um ELF
    arquivo abidw lê uma biblioteca compartilhada em ELF
    formato e emite uma representação XML
    de seu ABI para a saída padrão. O
    emitido ...
    Execute abidw
  • 3
    copac2xml
    copac2xml
    bibutils - conversão de bibliografia
    Serviços de utilidade pública ...
    Execute copac2xml
  • 4
    copta
    copta
    copt - otimizador de olho mágico SYSNOPIS:
    copt.. DESCRIÇÃO: copt é um
    otimizador de olho mágico de uso geral. Isto
    lê o código de sua entrada padrão e
    escreve um...
    Executar copia
  • 5
    collect_stx_titles
    collect_stx_titles
    collect_stx_titles - reunir título
    declarações de documentos Stx ...
    Executar collect_stx_titles
  • 6
    banco giratório
    banco giratório
    bancada - benchmark http ...
    Executar gatling-bench
  • Mais "

Ad