2012-09-07 9 views
13

widzę szereg zasad w Makefile, które wyglądają tak:Semi-dwukropek w definicji reguły Makefile

$(PATH)/foo.inc:; 
include $(PATH)/foo.inc 

$(PATH)/bar.inc:; 
include $(PATH)/bar.inc 

Czy średnik na końcu definicji reguły nie-op lub robi to mieć szczególne znaczenie?

+0

W tym kontekście, jest to no-op. Jeżeli został on następnie coś na tej samej linii, to nie byłoby to nie-op. –

Odpowiedz

15

średnik na linii z target-warunek jest pierwszy wiersz poleceń do wykonania dla tej reguły, przynajmniej w GNU make.

W rozdziale 5 w podręczniku:

Polecenia z reguły składają się z powłoki linii przeznaczone do wykonania polecenie jeden po drugim. Każda linia polecenie musi zaczynać się od zakładki, z tym, że pierwsza linia komenda może być przymocowany do elementu docelowego i-warunki wstępne linii średnikiem pomiędzy nimi.

W twoim przypadku, ponieważ po średniku nie ma żadnego polecenia, kończy się to nierozpoczęciem.