スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

最近の私の嗜好:Makefileのターゲット 

eclipseなどのIDEも素晴らしいと思うのですが、makeもまだまだ健在です。 makeの中でも一番多く使われているのはおそらくgnu makeでしょう。ただやはりMakefileの記述は簡単なものではなく、 build環境が大きくなってくると特にgnu makeのように機能が多いmakeではMakefileの記述に嗜好が表れてきます。 以下は最近の私のTop DirectoryにおけるMakefileの私の嗜好です。

サブディレクトリを再帰的にmakeを起動していくやり方は多くの場面で見られます。大体こんな感じでしょうか。


SUB_DIRS = SubDir1 SubDir2 ReleaseDir

all:
    @for subdir in $(SUB_DIRS) ; do \
        (cd $$subdir && $(MAKE) $@) ;\
    done


私はこれに少し手を加えて


SUB_DIRS = SubDir1 SubDir2 ReleaseDir

%.subdirs:
    @for subdir in $(SUB_DIRS) ; do \
        (cd $$subdir && $(MAKE) $(basename $@)) ;\
    done


としています。こうしておくとtargetがclean、dependなどと増えていっても


clean: clean.subdirs
depend: depend.subdirs


と2行加えるだけで済みます。

その他、私の今までの体験では特定のディレクトリだけmakeをかけたいというケースがありました。 そのようなケースに対応するために以下のようなターゲットも用意するようになりました。


%.all:
    @cd $(basename $@) && $(MAKE) all


これですと、make SubDir1.allというようにmakeを実行すればSubDir1にだけmakeが実行されます。 SubDir1/SubDir1_1にmakeをかけたければ make SubDir1/SubDir1_1.allで行えます。 もちろんSubDir1/SubDir1_1にMakefileがなければいけませんが。

 


コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://ochoo.blog48.fc2.com/tb.php/72-ec56990a

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。