Apr 18, 2011
Makefileってそいういう仕組みだったんだね…あたしってホント、馬鹿
かいてんパティシエ!とグリーンアイランドのビルドがきっかけで、make や Makefile をきちんと勉強しようと思って、週末にざっと GNU Make Manual を読んでみました。お蔭でぽち環境でのビルド時に悪さをしていた部分がやっとこさ分かりました。
一つは、Makefile.linux の include .depend
で .depend の中のリストを使ってヘッダファイルをインクルードしている部分です。これが、存在しない場所にあるヘッダファイルをインクルードしようとして、
make: *** `ram.o' に必要なターゲット `/usr/local/mingw32/include/SDL/SDL.h' を make するルールがありません. 中止.
というエラーを引き起こしていました。
もう一つはグリーンアイランドだけの問題なのですけども、展開して出来た bubble/src の中に make前にもかかわらず不要なオブジェクトファイルがどっさり入っています。
dconv.o: file not recognized: File format not recognized collect2: ld returned 1 exit status make[1]: *** [GreenIsland] エラー 1 make[1]: ディレクトリ `/home/pochi/Desktop/bubble/src' から出ます make: *** [recursive] エラー 2
これがまた、上のようなエラーに繋がっていました。これらの症状は make を行う前に make clean すれば回避出来ます。それに加えてグリーンアイランドの場合は Makefile.linux の中で RotateGear になっているターゲットの名前を、お作法に則ってきちんと GreenIsland にしてあげれば良いだけです。
その肝心の make clean ですが、make clean を実行する前に Makefile.linux の clean: のコマンド部分は、$(RM) $(OBJS) *~ .depend RotateGear.exe
から、出来上がる筈のバイナリに合わせて、$(RM) $(OBJS) *~ .depend RotateGear
なり、$(RM) $(OBJS) *~ .depend GreenIsland
なりに変更する必要があります。
とりあえずわかった事を日記に書いてみましたけども、近いうちにぽち*ぷ〜ちの Linux箱に置いてあるかいてんパティシエ!、グリーンアイランドを遊ぶも書き直さないと…。
writeback message: