Translation

(itstool) path: sect2/para
Makefiles can be rather complicated to write. Fortunately, BSD-based systems like FreeBSD come with some very powerful ones as part of the system. One very good example of this is the FreeBSD ports system. Here is the essential part of a typical ports <filename>Makefile</filename>:
293/2820
Context English Portuguese (Brazil) State
Notice that the <_:buildtarget-1/> target does not actually depend on anything! This means that the command on the following line is always executed when we try to make that target by typing <userinput>make install</userinput>. In this case, it will copy <filename>foo</filename> into the user's home directory. This is often used by application makefiles, so that the application can be installed in the correct directory when it has been correctly compiled.
Observe que o destino &lt;_: buildtarget-1 /&gt; não depende realmente de nada! Isso significa que o comando na linha a seguir é sempre executado quando tentamos fazer esse destino digitando <userinput> faça instalar </userinput> . Neste caso, copiará <filename> foo </filename> no diretório inicial do usuário. Isso é freqüentemente usado por makefiles de aplicativos, para que o aplicativo possa ser instalado no diretório correto quando tiver sido compilado corretamente.
This is a slightly confusing subject to try to explain. If you do not quite understand how <command>make</command> works, the best thing to do is to write a simple program like <quote>hello world</quote> and a make file like the one above and experiment. Then progress to using more than one source file, or having the source file include a header file. <command>touch</command> is very useful here—it changes the date on a file without you having to edit it.
Este é um assunto um pouco confuso para tentar explicar. Se você não entende muito bem como <command> faço </command> funciona, a melhor coisa a fazer é escrever um programa simples como <quote> Olá Mundo </quote> e criar um arquivo como o acima e experimentar. Em seguida, avance para usar mais de um arquivo de origem ou o arquivo de origem inclua um arquivo de cabeçalho. o <command> tocar </command> O comando é muito útil aqui - ele altera a data em um arquivo sem que você precise editá-lo.
Make and include-files
Criar e incluir arquivos
C code often starts with a list of files to include, for example stdio.h. Some of these files are system-include files, some of them are from the project you are now working on:
O código C geralmente começa com uma lista de arquivos a serem incluídos, por exemplo, stdio.h. Alguns desses arquivos são arquivos de inclusão do sistema, alguns deles são do projeto no qual você está trabalhando agora:
#include &lt;stdio.h&gt;
#include "foo.h"

int main(....
#include &lt;stdio.h&gt;
#include "foo.h"

int main(....
To make sure that this file is recompiled the moment <filename>foo.h</filename> is changed, you have to add it in your <filename>Makefile</filename>:
Para ter certeza de que este arquivo é recompilado no momento <filename> foo.h </filename> é alterado, você precisa adicioná-lo ao seu <filename> Makefile </filename> :
foo: foo.c foo.h
foo: foo.c foo.h
The moment your project is getting bigger and you have more and more own include-files to maintain, it will be a pain to keep track of all include files and the files which are depending on it. If you change an include-file but forget to recompile all the files which are depending on it, the results will be devastating. <command>clang</command> has an option to analyze your files and to produce a list of include-files and their dependencies: <option>-MM</option>.
No momento em que seu projeto está ficando maior e você tem mais e mais arquivos de inclusão para manter, será difícil controlar todos os arquivos de inclusão e os arquivos que dependem dele. Se você alterar um arquivo de inclusão, mas esqueça de recompilar todos os arquivos que estão dependendo, os resultados serão devastadores. <command> clang </command> tem uma opção para analisar seus arquivos e produzir uma lista de arquivos de inclusão e suas dependências: <option value=-MM> -MILÍMETROS </option>
If you add this to your Makefile:
Se você adicionar isso ao seu Makefile:
depend:
cc -E -MM *.c &gt; .depend
depend:
cc -E -MM *.c &gt; .depend
and run <userinput>make depend</userinput>, the file <filename>.depend</filename> will appear with a list of object-files, C-files and the include-files:
e corra <userinput> fazer depender </userinput> , o arquivo <filename> .depender </filename> aparecerá com uma lista de arquivos-objeto, arquivos C e arquivos include:
foo.o: foo.c foo.h
foo.o: foo.c foo.h
If you change <filename>foo.h</filename>, next time you run <command>make</command> all files depending on <filename>foo.h</filename> will be recompiled.
Se você mudar <filename> foo.h </filename> , da próxima vez que você correr <command> faço </command> todos os arquivos dependendo <filename> foo.h </filename> será recompilado
Do not forget to run <command>make depend</command> each time you add an include-file to one of your files.
Não se esqueça de correr <command> fazer depender </command> cada vez que você adiciona um arquivo de inclusão a um de seus arquivos.
FreeBSD Makefiles
Makefiles do FreeBSD
Makefiles can be rather complicated to write. Fortunately, BSD-based systems like FreeBSD come with some very powerful ones as part of the system. One very good example of this is the FreeBSD ports system. Here is the essential part of a typical ports <filename>Makefile</filename>:
Makefiles podem ser bastante complicados de escrever. Felizmente, sistemas baseados em BSD como o FreeBSD vêm com alguns muito poderosos como parte do sistema. Um bom exemplo disso é o sistema de portas FreeBSD. Aqui está a parte essencial de um típico porto <filename> Makefile </filename> :
MASTER_SITES= ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/
DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz

.include &lt;bsd.port.mk&gt;
MASTER_SITES= ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/
DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz

.include &lt;bsd.port.mk&gt;
Now, if we go to the directory for this port and type <userinput>make</userinput>, the following happens:
Agora, se formos ao diretório para esta porta e digite <userinput> faço </userinput> acontece o seguinte:
A check is made to see if the source code for this port is already on the system.
É feita uma verificação para ver se o código-fonte desta porta já está no sistema.
If it is not, an FTP connection to the URL in <symbol>MASTER_SITES</symbol> is set up to download the source.
Se não for, uma conexão FTP com o URL em <symbol> MASTER_SITES </symbol> está configurado para baixar a fonte.
The checksum for the source is calculated and compared it with one for a known, good, copy of the source. This is to make sure that the source was not corrupted while in transit.
A soma de verificação da fonte é calculada e comparada com uma para uma cópia boa e conhecida da fonte. Isso é para garantir que a fonte não esteja corrompida enquanto estiver em trânsito.
Any changes required to make the source work on FreeBSD are applied—this is known as <firstterm>patching</firstterm>.
Quaisquer mudanças necessárias para fazer a fonte funcionar no FreeBSD são aplicadas - isso é conhecido como <firstterm> remendando </firstterm>
Any special configuration needed for the source is done. (Many <trademark class="registered">UNIX</trademark> program distributions try to work out which version of <trademark class="registered">UNIX</trademark> they are being compiled on and which optional <trademark class="registered">UNIX</trademark> features are present—this is where they are given the information in the FreeBSD ports scenario).
Qualquer configuração especial necessária para a fonte é feita. <trademark class="registered"> UNIX </trademark> distribuições de programas tentam descobrir qual versão <trademark class="registered"> UNIX </trademark> eles estão sendo compilados e quais opcionais <trademark class="registered"> UNIX </trademark> os recursos estão presentes - é aqui que eles recebem as informações no cenário de portas do FreeBSD).
The source code for the program is compiled. In effect, we change to the directory where the source was unpacked and do <command>make</command>—the program's own make file has the necessary information to build the program.
O código-fonte do programa é compilado. Na verdade, nós mudamos para o diretório onde a fonte foi descompactada e fazemos <command> faço </command> —O arquivo de criação do programa tem as informações necessárias para construir o programa.
We now have a compiled version of the program. If we wish, we can test it now; when we feel confident about the program, we can type <userinput>make install</userinput>. This will cause the program and any supporting files it needs to be copied into the correct location; an entry is also made into a <database>package database</database>, so that the port can easily be uninstalled later if we change our mind about it.
Agora temos uma versão compilada do programa. Se quisermos, podemos testá-lo agora; quando nos sentimos confiantes sobre o programa, podemos digitar <userinput> faça instalar </userinput> . Isso fará com que o programa e todos os arquivos de suporte precisem ser copiados para o local correto; uma entrada também é feita em um <database> banco de dados de pacotes </database> , para que a porta possa ser facilmente desinstalada mais tarde, se mudarmos de idéia sobre isso.
Now I think you will agree that is rather impressive for a four line script!
Agora eu acho que você vai concordar que é bastante impressionante para um roteiro de quatro linhas!
The secret lies in the last line, which tells <command>make</command> to look in the system makefile called <filename>bsd.port.mk</filename>. It is easy to overlook this line, but this is where all the clever stuff comes from—someone has written a makefile that tells <command>make</command> to do all the things above (plus a couple of other things I did not mention, including handling any errors that may occur) and anyone can get access to that just by putting a single line in their own make file!
O segredo está na última linha, que conta <command> faço </command> olhar no makefile do sistema chamado <filename> bsd.port.mk </filename> . É fácil ignorar essa linha, mas é daí que vem todas as coisas inteligentes - alguém escreveu um makefile que conta <command> faço </command> para fazer todas as coisas acima (além de algumas outras coisas que não mencionei, incluindo lidar com quaisquer erros que possam ocorrer) e qualquer um pode ter acesso a isso apenas colocando uma única linha em seu próprio arquivo de criação!
If you want to have a look at these system makefiles, they are in <filename>/usr/share/mk</filename>, but it is probably best to wait until you have had a bit of practice with makefiles, as they are very complicated (and if you do look at them, make sure you have a flask of strong coffee handy!)
Se você quiser dar uma olhada nestes makefiles do sistema, eles estão em <filename> / usr / share / mk </filename> , mas provavelmente é melhor esperar até que você tenha um pouco de prática com makefiles, pois eles são muito complicados (e se você olhar para eles, certifique-se de ter um frasco de café forte à mão!)
More Advanced Uses of <command>make</command>
Usos mais avançados de <command> faço </command>
<command>Make</command> is a very powerful tool, and can do much more than the simple example above shows. Unfortunately, there are several different versions of <command>make</command>, and they all differ considerably. The best way to learn what they can do is probably to read the documentation—hopefully this introduction will have given you a base from which you can do this.
<command> Faço </command> é uma ferramenta muito poderosa e pode fazer muito mais do que o simples exemplo acima mostra. Infelizmente, existem várias versões diferentes de <command> faço </command> e todos eles diferem consideravelmente. A melhor maneira de aprender o que eles podem fazer é provavelmente ler a documentação - esperamos que esta introdução tenha lhe dado uma base a partir da qual você pode fazer isso.
The version of make that comes with FreeBSD is the <application>Berkeley make</application>; there is a tutorial for it in <filename>/usr/share/doc/psd/12.make</filename>. To view it, do
A versão do make que vem com o FreeBSD é o <application> Berkeley faz </application> ; há um tutorial para isso em <filename> /usr/share/doc/psd/12.make </filename> . Para visualizá-lo, faça

Loading…

New source string 11 months ago
Browse all component changes

Things to check

Mismatched colon

Source and translation do not both end with a colon

Reset

Trailing space

Source and translation do not both end with a space

Fix string

Reset

Glossary

English Portuguese (Brazil)
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: sect2/para
Labels
No labels currently set.
Source string location
book.translate.xml:1576
Source string age
11 months ago
Translation file
books/pt_BR/developers-handbook.po, string 295