はじめに
公式ではParallellaのSDKはUbuntuでのビルドが推奨されてますが、Macでもビルドできたという情報があったのでチャレンジしてみました。
が、今のところ一部のビルドが正しく行えなかったのであくまでメモ書きとして…
環境
OSはOS X Mavericks(10.9.2)です。また、ビルドの都合でgccを使用するためHomebrewでインストールを行います。
前準備
MacではXcodeに付属しているLLVMでビルドが行われますが、そのままだとビルドに失敗してしまいます。そこでHomebrewを使いgccをインストールすることにします。
またlibelfとcoreutilsも使用するので、併せてインストールします。
$ brew install gcc48 coreutils libelf
$ export CC=/usr/local/bin/gcc-4.8
$ export CXX=/usr/local/bin/g++-4.8
$ wget http://opensource.apple.com/source/dtrace/dtrace-48/sys/elf.h?txt -O /usr/local/include/elf.h
$ wget http://opensource.apple.com/source/dtrace/dtrace-48/sys/elftypes.h?txt -O /usr/local/include/elftypes.h
ビルド
$ mkdir ~/parallella
$ cd ~/parallella
$ git clone https://github.com/adapteva/epiphany-sdk.git
$ git clone https://github.com/adapteva/epiphany-libs.git
次にtoolchainのビルドを行います。
$ ./epiphany-sdk/download-toolchain.sh
$ cd epiphany-sdk
$ ./build-toolchain.sh
次にSDKのビルドですが、以下の通り書き換えが必要になります。
・epiphany-hal.cのE_REG_LINK_MODE_CFGをE_REG_LINKCFGへ置換する(定数の書き換え忘れくさい)
・build-sdk.shのcpをgcpへ、lnをglnへ置換する(coreutilsの方を使用するため)
・build-libs.shの154行目ぐらいにあるbuild-loaderをコメントアウトする(リンクに失敗するため)
$ mkdir -p ../esdk.5.13.09.10/tools/e-gnu.armv7l/
$ mv -A ../INSTALL/* ../esdk.5.13.09.10/tools/e-gnu.armv7l/
$ echo "/usr/local/bin/gcc-4.8 -D __linux__ \$@" > gcc
$ echo "/usr/local/bin/g++-4.8 -D __linux__ \$@" > g++
$ chmod +x ./gcc ./g++
$ PATH=`pwd`:$PATH ./build-sdk.sh
#参考
http://www.parallella.org/forums/viewtopic.php?t=966
http://forums.parallella.org/viewtopic.php?t=206
https://github.com/adapteva/epiphany-sdk/wiki/Building-on-Mac