Eu estava usando um Makefile do livro " Advanced Linux Programming (2001)" [código] . Foi estranho para mim ver que o GNU make compila o código corretamente, sem especificar um compilador no Makefile. É como assar sem receita!
Esta é uma versão mínima do código:
test.c
int main(){}
Makefile
all: test
e fazer realmente funciona! Este é o comando que ele executa:
cc test.c -o test
Não encontrei nada útil na documentação. Como isso é possível?
PS Uma nota adicional: Mesmo o idioma não está especificado; Como test.c
está disponível, o GNU make
usa cc
. Se existe test.cpp
ou test.cc
(quando não há test.c
), ele usa g++
(e não c++
).
make
verifica sua geladeira e descobre que há farinha disponível e, em seguida, assa um bolo padrão para você a partir de sua receita interna. :-)
make
para ferver água, e usando suas regras internas,make
só vai descobrir como;)