2011-07-28 15 views
9

Mam plik Makefile o następującej strukturze (przykład pracy).Jaka jest różnica między "make" i "make all"?

.PHONY: image flashcard put-files 

put-files: 
    @echo "=== put-files" 

image: 
    @echo "=== image" 

flashcard: 
    @echo "=== flashcard" 

all: put-files image flashcard 
    @echo "Done" 

Spodziewam się, że prosty make by budować wszystkie trzy cele, ale tak nie jest:

% make 
=== put-files 

Ale jeśli wyraźnie określić cel, Zależności są zbudowane, a także:

% make all 
=== put-files 
=== image 
=== flashcard 
Done 

Co robię źle?

Odpowiedz

11

Prosty make zbuduje pierwszy cel na liście, który jest put-files.

make all zbuduje cel all. Jeśli chcesz, aby all był domyślny, przenieś go na początek listy.

Aby zrozumieć, co .PHONY robi, patrz http://www.gnu.org/s/hello/manual/make/Phony-Targets.html

+0

Masz rację, mój problem to to, że jakoś zorientowali, że cel jest domyślnie wybrana przez nazwę („all”), zamiast przez położeniu. Wielkie dzięki! –

Powiązane problemy