- 締切済み
Makefileについて質問です。あるMakefileをのぞいてみたら
Makefileについて質問です。あるMakefileをのぞいてみたら↓のように(一部ですが)書いてあったのですが、 どういう事をしているのかよく分かりません。 もしよろしければこの部分がどのような事をしているのか教えて頂けますでしょうか? all:; @if [ x$(ARCH) = x ]; then \ echo "Missing environmnet value ARCH"; \ exit; \ else \ for dir in $(SUBDIRS) ; do \ echo working at $$dir; \ (set +x; cd $$dir; $(MAKE) $(MFLAGS) $@ ); \ done; \ fi \は¥で置き換えてください
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- starbuckslove
- ベストアンサー率55% (21/38)
Makefileというよりは、Makefileの中に書かれたシェルスクリプトですね。やっていることは「そのMakefileが置いてあるディレクトリの、全サブディレクトリの中でmakeを実行する」という処理です。ちょっとわかりにくいので例を挙げましょう。 たとえば: aaa/ Makefile bbb/ Makefile ccc/ Makefile このようなディレクトリ構造があったとして、aaa/の中で"make"を実行したとします。すると、サブディレクトリはbbb/とccc/のふたつが存在しますから、それぞれの中に入って更に"make"を実行しているということです。 ちなみに、スクリプトの中で$(SUBDIRS)という変数はサブディレクトリの一覧に展開されるというお約束になっています。$(ARCH)などと書いてあるあたりは単なるエラーチェックなので気にしなくて良いです。
お礼
返答遅れて申し訳ありませんでした。 おかげで謎が解決できました。また、よろしくお願いします