makeの実行時に下記のように "missing separator" エラーが発生する。
1 |
Makefile:32: *** missing separator. Stop. |
ターゲットを複数回記述できる
1 2 |
clean: rm *.o |
"clean"という名前のファイルやディレクトリがなければ問題ない。しかし、(たまたま)"clean"という名前のファイルまたはディレクトリが存在すると rm *.o
というコマンドは実行されない。
1 2 3 4 |
.PHONY: clean clean: rm *.o |
"clean"という名前のファイルやディレクトリの存在如何に関わらず、 $ make clean
を実行すればmakeコマンドは期待の動作をする。
1 2 |
FOO_MODULE: $(MAKE) -C ./foo_dir |
以下の記述と等価
1 2 |
FOO_MODULE: cd ./foo_dir && $(MAKE) |
1 2 |
FOO_DEFINES = -DBAR_DEFINE export FOO_DEFINES |
または
1 |
export FOO_DEFINES = -DBAR_DEFINE |
環境変数を介して呼び出し先のMakefileのFOO_DEFINESに値が反映される。