iphone/ipod touch toolchain
手順
svnからそのままとってくると LLVM と iphone-dev の整合性がとれないので注意。
- LLVM をとってくる
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn -r 42286 $ pushd llvm-svn $ ./configure --enable-optimized $ make ENABLE_OPTIMIZED=1 $ sudo make install $ export LLVMOBJDIR=`pwd` $ popd
- iphone-dev をとってくる
$ svn checkout http://iphone-dev.googlecode.com/svn/trunk/ iphone-dev -r 198 $ pushd iphone-dev
- toolchain 用のディレクトリ作成
$ sudo mkdir /usr/local/arm-apple-darwin
- odcctools を作成
$ mkdir -p build/odcctools $ pushd build/odcctools $ ../../odcctools/configure --target=arm-apple-darwin --disable-ld64 $ make $ sudo make install $ popd
- iphone のファイルイメージを指定
$ export HEAVENLY=/usr/local/share/iphone-filesystem
ipod touch から / 以下のファイルを全て抜き出して保存しておいて、その場所を指定。
- OSX の include ファイルを指定
$ pushd include $ ./configure --with-macosx-sdk=/usr/local/share/MacOSX10.4-Universal-SDK/Developer/SDKs/MacOSX10.4u.sdk $ sudo bash install-headers.sh $ popd
こちらも別途 OSX から SDK を抜き出し、その場所を configure のところで指定。
- csu を作成
$ mkdir -p build/csu $ pushd build/csu $ ../../csu/configure --target=arm-apple-darwin $ sudo make install $ popd
$ mkdir -p build/llvm-gcc-4.0-iphone $ pushd build/llvm-gcc-4.0-iphone $ ../../llvm-gcc-4.0-iphone/configure --enable-llvm=`llvm-config --obj-root` \ --enable-languages=c,c++,objc,obj-c++ --target=arm-apple-darwin --enable-sjlj-exceptions \ --with-heavenly=$HEAVENLY --with-as=/usr/local/bin/arm-apple-darwin-as \ --with-ld=/usr/local/bin/arm-apple-darwin-ld $ make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svn $ sudo make install $ popd $ popd
とりあえず環境ができたところで終了。ちゃんと動くかしら・・・。
追記:ちゃんと HelloWorld 動いた。これでいろんなもの作れるなぁ。楽しみ楽しみ。