1. ホーム
  2. makefile

[解決済み】「make」と「make all」の違いとは?

2022-02-16 21:45:41

質問内容

以下のような構成のMakefileがあります(作業例)。

.PHONY: image flashcard put-files

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

image:
    @echo "=== image"

flashcard:
    @echo "=== flashcard"

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

を期待しているのですが、シンプルな make は、3つのターゲットをすべて構築することになりますが、そうではありません。

% make
=== put-files

しかし、ターゲットを明示的に指定すると、依存関係もビルドされる。

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

何が間違っているのでしょうか?

どうすればいいですか?

簡単な make は、リストの最初のターゲットを構築します。 put-files .

make all は、ターゲットの all . もし all をデフォルトにする場合は、リストの一番上に移動させます。

を理解するために .PHONY をご覧ください。 http://www.gnu.org/s/hello/manual/make/Phony-Targets.html