Korzystałem z pliku Makefile z książki „ Advanced Linux Programming (2001)” [kod] . Dziwne było dla mnie, że GNU make poprawnie kompiluje kod, nawet nie określając kompilatora w Makefile. To jak pieczenie bez przepisu!
To jest minimalna wersja kodu:
test.c
int main(){}
Makefile
all: test
i spraw, by naprawdę działało! Jest to polecenie, które wykonuje:
cc test.c -o test
Nie mogłem znaleźć niczego przydatnego w dokumentacji. Jak to mozliwe
PS Jedna dodatkowa uwaga: Nawet język nie jest określony; Ponieważ test.c
jest dostępny, GNU make
używa cc
. Jeśli istnieje test.cpp
lub test.cc
(gdy nie ma test.c
), używa g++
(i nie c++
).
make
sprawdza lodówkę i dowiaduje się, że jest dostępna mąka, a następnie wypieka dla ciebie domyślne ciasto z wewnętrznego przepisu. :-)
make
gotować wodę, a stosując jej wewnętrzne zasady,make
po prostu