CygwinでChumbyの開発環境

最近、かわいらしい時計デバイスChumbyと戯れているのですが、困ったことに本家の開発者向けWikiでは、Chumbyの開発環境(クロスコンパイラ)はLinux上で動作するものしか提供されていません。日常作業はほとんどCygwin上で行っていることもあり、わざわざ他のマシンを立ち上げたり、仮想マシンをこさえてLinuxをつくるというのも面倒くさいので、Cygwinで開発環境をつくることにしました。

で、結論として開発環境を"ほぼ全自動"で作ってくれるchumby.makefileなるものを作成しました。適当なディレクトリ上でmake -f chumby.makefileをすると、/usr/local/chumby上に色々とインストールしてくれます。アセンブラ(binutil-2.18由来)やコンパイラ(c,c++でgcc-4.3.2由来)は/usr/local/chumby/toolchain/binに入りますので、実際に使う際はそこへPATHを通してから、ということになると思います。例えばhello.cをコンパイルする際はPATH=$PATH:/usr/local/chumby/toolchain/bin arm-linux-gcc -o hello hello.cという感じです。Chumby本体を使いHello World等いくつかの基本的なプログラムで動作検証を行いましたが、問題なく動作しています。

上のMakefileですが、"ほぼ全自動"というところがポイントで、現状では1回ほど『gmp.h? そんなファイルは見つからねぇ』というエラーを吐いてとまってしまうことを確認しています。その場合はmakeを実行したディレクトリの下に展開されるgcc-4.3.2/BUILD_arm-linux/gcc/Makefileを手動で編集し、その後にmakeの再実行を行ってください。変更するのは、Makefile内に-I../../gmp-4.2.4 -I../../mpfr-2.3.2や-L../../gmp-4.2.4 -L../../mpfr-2.3.2等の記述で、これらを-I../../../gmp-4.2.4 -I../../../mpfr-2.3.2ならびに-L../../../gmp-4.2.4 -L../../../mpfr-2.3.2のように、1段上の親のパスを探すように変更すれば解消されます。automakeやautoconf絡みのエラーのようで、根本から解決するにはどこかのMakefile.inやconfigureを訂正すればよいのではないかと思います。

※その後、Chumbyだけで設定ファイルを編集できないか検討中です。

October 09, 2008 09:33 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

パスが問題になるのであれば,
PWD=$(shell pwd)
などしておき,
--with-gmp-include=$(PWD)/$(GMP)
などすればよいのではないでしょうか.

Posted by: もなか : October 27, 2008 02:22 PM

>もなかさん
確かに相対パスではなく絶対パスでやるのが、トラブルを安全に回避できそうですね。configureの生成するMakefileでのトラブルを解消するため、どこで何のMakefileが生成されているのか追うとなると大変です。

Posted by: fenrir : October 28, 2008 10:08 AM

コメントする