Makefileの参照関数?

Makefileの参照関数?

Makefile依存関係を更新してコンパイルするために使用されるコマンドを追加するためにaを変更しています。

make cleanコマンドが機能しています。今、他のコマンドを実行する前にそれを実行しようとしていますmake

追加しようとしてもall: clean動作しないようです。

.PHONY: all
all: clean

.PHONY: clean
clean:
        rm -rf build

update-dep:
        mkdir -p build/package_name \
          && # do stuff here

他の機能が実行されているときにどのようにきちんと実行することができますか?

答え1

まあ、あなたは依存関係がどのように機能するかを知っていると思います。コロンの後に入れてください。したがって、一般的なイディオムは、all次の依存関係を持つことです。

all: main_program

その唯一の特別な点は最初ファイルのターゲットはデフォルトのターゲットであるため、allMakefileの先頭に明示的に指定するとデフォルトのターゲットを設定できます。

main_program依存関係として追加するには、他の項目と一緒にリストするだけです。main_program.oclean

all: clean main_program

update_dep: clean
    do stuff...

all: cleanmake all他の依存関係は同じリストを持っていないので、それにmake clean異なる依存関係を追加することができます。

各実行の前にすべてを整理することはまだ良い考えではありません。 Makeの全体的なアイデアは、更新が必要なファイルを特定し、更新に必要な作業だけを実行するということです。clean毎回実行するには、それを他のすべてのターゲットへの依存関係として明示的に維持する必要があります。

関連情報