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
その唯一の特別な点は最初ファイルのターゲットはデフォルトのターゲットであるため、all
Makefileの先頭に明示的に指定するとデフォルトのターゲットを設定できます。
main_program
依存関係として追加するには、他の項目と一緒にリストするだけです。main_program.o
clean
all: clean main_program
update_dep: clean
do stuff...
all: clean
make all
他の依存関係は同じリストを持っていないので、それにmake clean
異なる依存関係を追加することができます。
各実行の前にすべてを整理することはまだ良い考えではありません。 Makeの全体的なアイデアは、更新が必要なファイルを特定し、更新に必要な作業だけを実行するということです。clean
毎回実行するには、それを他のすべてのターゲットへの依存関係として明示的に維持する必要があります。