Mateus Müller

O carinha do Linux

06 ago. 2017

Como compilar um programa a partir de um SOURCE CODE

Bom pessoal, no artigo de hoje vim ensinar como compilar um programa a partir de um source code. Na próxima semana será lançado um artigo complementar à este de como compilar o Kernel. Desta forma, se faz necessário que você entenda primeiro a lógica para compilar um programa usando source.

O que é um Source Code?

A instalação à partir de um source code é um tipo universal de instalação de pacotes, e funciona em qualquer distribuição Linux.

Neste exemplo, estarei instalando o Audacity, programa para edição de áudio e vídeo. Você pode realizar o download do programa clicando aqui.

Veja que, no próprio site do Audacity, há uma opção nomeada de source code:

Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Após efetuar o download do programa, um arquivo .tar.xz será baixado. Dependendo do software que você for instalar, ele terá outra extensão, mas sempre estará compactado de alguma forma.

Compilando a partir de um Source Code:

Abrir o terminal como root e acessar a pasta do programa:

$ sudo su
$ cd /home/mateus/Downloads

Agora, iremos extrair o arquivo:

$ tar xvf audacity-minsrc-2.1.3.tar.xz
Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Vamos acessar a pasta que foi criada e listar os arquivos que nela contém:

$ cd /home/mateus/Downloads/audacity-minsrc-2.1.3
$ ls --color
Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Preste bastante atenção nos arquivos grifados:

configure: Ele será executando com “./”. Mas, o que é ./configure? Bom, é um Shell Script para iniciar a configuração do aplicativo a ser instalado. Dentro deste arquivo há instruções que vão definir, por exemplo, o local de instalação das libs, local de instalação dos binários, links simbólicos, se as dependências estão instaladas, assim evitando problemas futuros durante o make. Depois de finalizado o configure, será gerado um arquivo chamado Makefile.

Tá, e o que é esse Makefile?

Makefile.am: Os arquivos Makefile são os que serão lidos pelo comando make. Você pode estar se perguntando: qual a função do comando make? Bem, esse comando executa as instruções que são escritas dentro do arquivo Makefile, que geralmente servem para compilar o programa. Quando um arquivo Makefile tem a extensão .am, significa que ele é lido pelo comando automake, que nada mais é do que um make evoluído com algumas outras funções, mas isso não vem ao caso agora.

Makefile.in: É um template que geralmente vem nos arquivos source. Quando rodamos o comando configure, ele se baseia neste arquivo e gera outro arquivo de nome Makefile (sem extensão) específico para o seu sistema.

Agora, vamos ver como instalar um programa usando make:

$ ./configure
Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

O procedimento de configuração foi iniciado, mas, ocorreu um erro durante o processo:

Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Veja que, quando ocorre um erro, o arquivo Makefile não é criado:

Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Neste caso, é preciso instalar uma dependência que é o wxWidget. Sempre leia as instruções de instalação no site do programa que você vai tentar instalar, pois lá, provavelmente, estará informando a respeito das dependências.

Veja que no site do Audacity ele informa sobre esse erro:

Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Será necessário instalar a versão 3.0 do wxWidgets:

$ apt-get install libwxgtk3.0-dev

Agora, vamos rodar o configure novamente:

$ ./configure

Finalizou sem erros e o arquivo Makefile foi criado com sucesso:

Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Agora que o nosso arquivo Makefile foi criado, devemos de fato compilar o programa. Este é o procedimento que demanda mais tempo. O comando make, por padrão, utiliza somente 1 core do processador para efetuar o processo de compilação. A opção -j pode ser usada passando como parâmetro o número de cores do seu processador, assim ele irá utilizar todos os núcleos para que o processo seja mais rápido. Meu processador é um i5-6200U e tem 4 núcleos.

$ make -j4

OBS: Veja que interessante, em outra aba olhando o comando top, o uso do processador está em 89,4%, devido o uso do parâmetro -j.

Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Depois de finalizado o processo de compilação, devemos apenas instalar o que foi compilado usando o comando make install:

$ make install

E o que o comando make install faz?

Esse comando instala o que o make compilou, copiando todos os arquivos para seus devidos diretórios.

Depois disso, o programa foi instalado de fato e está pronto para ser usado:

Como compilar um programa a partir de um SOURCE CODE
Como compilar um programa a partir de um SOURCE CODE

Conclusão:

Bom pessoal, espero ter sido claro em minha explicação.

Aprenda também compilar o Kernel do Linux clicando aqui.

Obrigado, e até a próxima!

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

Comentários Disqus