make installfaz o que o Makefileautor deseja. Normalmente, a essa altura, é tarde demais para alterar o diretório de instalação, como costuma ser conhecido anteriormente , durante a construção, para que os arquivos de ajuda e os arquivos de configuração possam ser referenciados com os nomes de caminho corretos.
Muitos projetos usam as ferramentas automáticas GNU para tentar melhorar sua portabilidade entre as diferenças de hardware e sistema operacional. (Diferentes variantes do Unix usam cabeçalhos ligeiramente diferentes para declarações de funções que estão um pouco fora do caminho usual - exceto que a maioria dos programas precisa de um ou outro daqueles declarados em locais diferentes.)
Quando um projeto usa as Autotools, o mantra normal para instalá-lo é:
./configure
make
make install
O ./configuretipicamente permite que você use uma opção de linha de comando como --prefix /opt/apacheou algo semelhante para especificar um caminho diferente. /usr/local/é um padrão comum prefix. É muito mais fácil o software construído localmente residir em um local e o software fornecido pela distribuição residir nos "diretórios principais": /usr/ /bin/e assim por diante. (Os empacotadores têm muito cuidado para nunca tocar nos arquivos /usr/local/- eles sabem que é exclusivo para administradores de sistema.)
De qualquer forma, o ./configure --prefix /path/to/new/prefixirá definir uma variável no Makefileque está disponível ao compilar o programa, modificando as páginas de manual para que eles apontam para os locais corretos para arquivos, modificar arquivos de configuração, etc. Então, makevai construir o software especificamente para o local que deseja instalar e make installirá instalá-lo nesse local.
A maioria dos programas pode ser executada mesmo sem a make installetapa final - apenas ./program_nameos inicia com frequência. Definitivamente, isso é uma coisa por projeto - alguns, como postfix, qmailetc., são feitos de muitas peças móveis diferentes e dependem de todos eles trabalhando juntos. Outros, como lsou supodem ser independentes o suficiente para executar bem a partir do diretório em que foram criados. (Isso geralmente não é útil - mas às vezes é muito útil).
No entanto, nem todos os projetos usam o Autotools - eles são enormes , complicados e miseráveis de manter. MakefileS manuscritos são muito mais simples de escrever, e eu pessoalmente acho que apenas distribuir um simples Makefilecom variáveis de configuração disponíveis é muito mais fácil para desenvolvedores e usuários. (Embora o ./configure ; make ; make installmantra seja realmente fácil para os usuários quando funciona.)
make installetapas do ponto de vista dos programadores.