2010-01-09

Makefile: 依存関係

自作OSをビルドする際に、当然(?)makeを使うわけだが、ずぼらな僕は「make」って打つだけで全部やってほしいと思うわけだ。

っが、依存関係の問題があって、今まで
「make clean all」
なんて、毎回プロジェクトをリビルドしていたわけだ。
けど、これ今はまだいいが、ファイル数が10とか100とか増えた時に非常に面倒になる。
というか、僕の貧弱なノートPCでは時間がかかりすぎるようになる。
(こんなことやってるのに、使用してるPCがノートかよ、って突っ込みはなしで)

っで、とりあえず、依存関係を自動で解決するようにMakefileを書き直した。
ポイントになるのは、gccの「-MM」オプション。
っが、makeのマニュアルにある方法だと、sedを使う。っが、WindowsでMingwだけで何とかしようという環境の僕にはsedはおろかCygwinもない。
適当に、gccが吐き出す依存関係を編集して上手いこと書き出すプログラムをC++で書いた。
なんでこんなことしなきゃならんのだろうか?

これだけいろいろ便利になってるんだから、こんな変なノウハウじゃなく、もう少しスマートな解決方法があってもいいような気がする。

No comments:

Post a Comment