Eu (meio que) sei o que isso faz, mas não tenho certeza se sei como explicar.
Basicamente, com a sequência de comandos que você mencionou, você está criando algo em formato binário executável (um programa, uma biblioteca) fora do código-fonte (ou seja, código escrito em uma linguagem de programação) e instalando-o em seu sistema operacional (movendo-o para uma pasta apropriada, configurando arquivos de configuração, etc).
O makefile é um arquivo de texto que o comando make usa. Isso ajuda (automatiza) as tarefas. Um único makefile pode conter informações para mais de uma tarefa ou ação para execução. Sem um makefile, você teria que executar várias etapas manuais complicadas para fazer as coisas.
"configure": (explicação retirada de aqui ) Verifica alguns detalhes sobre a máquina na qual o software será instalado. Este script verifica se há muitas dependências em seu sistema. Para que o software em particular funcione corretamente, pode estar exigindo muitas coisas já existentes na sua máquina. Se algum dos principais requisitos estiver faltando em seu sistema, o script de configuração será encerrado e você não poderá continuar com a instalação até obter as coisas necessárias. Caso contrário, cria o Makefile para ser usado na próxima etapa.
"make" sem parâmetros: instrui o make a executar a ação padrão (regra) no makefile. Isso geralmente compila, liga e gera o binário que você está tentando criar (ou seja, o programa ou biblioteca). Isso geralmente envolve converter o código-fonte em arquivos-objeto (que geralmente têm a extensão .o
) e vinculá-los a um arquivo binário final (que no caso dos programas Linux geralmente não tem extensão ou no caso de bibliotecas Linux geralmente possui .so
ou .a
extensão). Não tenho certeza sobre as etapas porque sou um programador Java e não realizamos essas etapas com muita frequência).
"make test": realiza testes nesse binário.
"make install": basicamente move o binário para a localização correta da pasta.
Esta explicação pode, claro, receber muitas melhorias, estou apenas tentando dar uma idéia do processo geral.
Este breve tutorial pode fornecer mais algumas informações.