A maioria dos aplicativos Linux é compilada com:
make
make install clean
Pelo que entendi, make leva nomes de alvos de construção como argumentos. O mesmo install
ocorre com um destino que copia alguns arquivos e depois clean
é um destino que remove arquivos temporários.
Mas qual destino será make
construído se nenhum argumento for especificado (por exemplo, o primeiro comando no meu exemplo)?
all
é apenas uma convenção.make install
in sudo, e não a compilação inteira.include
é outro makefile, cujo primeiro objetivo é%.o : %.cpp
. Portanto, o destino padrão é ... criar todos os arquivos .cpp?Para salvar outras pessoas por alguns segundos e evitar que elas precisem ler o manual, aqui está a resposta curta. Adicione isso ao topo do seu arquivo make:
mytarget agora será o destino que será executado se "make" for executado e nenhum destino for especificado.
Se você tiver uma versão mais antiga do make (<= 3.80), isso não funcionará. Se for esse o caso, você pode fazer o que é mencionado anteriormente, basta adicioná-lo à parte superior do seu arquivo make:
Referências: https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
fonte
O GNU Make também permite especificar o destino padrão do make usando uma variável especial chamada
.DEFAULT_GOAL
. Você pode até desmarcar essa variável no meio do Makefile, fazendo com que o próximo destino no arquivo se torne o destino padrão.Ref: Manual do Gnu Make - Variáveis Especiais
fonte