Moblinアプリケーションのクロスコンパイルとインテル コンパイラーによるパフォーマンス改善 4ページ

コマンドラインベースのコンパイル

 EclipseやAnjutaのMoblin SDKプラグインは非常に便利であるが、既存のアプリケーションをMoblin向けにコンパイルする場合など、コマンドラインでのコンパイルが必要なケースもある。また、テキストエディタ+コマンドラインによる開発のほうが親しみやすい開発者もいるだろう。そこで、最後にIDEを利用せず、コマンドラインベースでMoblinアプリケーションのコンパイルを行う方法を説明しておこう。

 開発用のLinux環境でMoblinアプリケーションをコンパイルするには、Moblin SDKに含まれるクロスコンパイラやヘッダーファイル、ライブラリを利用する。まず、これらを利用できるように環境変数を設定する。

$ export PKG_CONFIG_SYSROOT_DIR=$MOBLIN_TOOLCHAIN/i586-moblin-linux/sys-root
$ export PKG_CONFIG_PATH=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/share/pkgconfig
$ export PATH=$MOBLIN_TOOLCHAIN/bin:$PATH

 上記の設定は適当なシェルスクリプトとして保存しておき、利用の際に適宜ロードするようにしておくとよいだろう。

 以上の環境変数が設定された状態で、コンパイルしたいアプリケーションのconfigureスクリプトを次のような引数付きで実行する。

$ ./configure --host=i586-moblin-linux --prefix=/tmp/<適当な一時ディレクトリ>

 今回はコンパイルを実行したマシンとは異なるマシンにファイルをインストールしたいので、インストール先を指定する「–prefix」オプションで適当な一時ディレクトリを指定しておく。

 また、インテル コンパイラーを利用したい場合やコンパイルオプションを変更したい場合もこのときに指定を行う。たとえばより強力な最適化を行う「-O3」オプション付きでインテル コンパイラーを利用する場合は次のようにする。

$ ./configure --host=i586-moblin-linux --prefix=/tmp/<適当な一時ディレクトリ> CC=icc AR=xiar LD=xild 'CFLAGS=-I$$PKG_CONFIG_SYSROOT_DIR/usr/include -I$$PKG_CONFIG_SYSROOT_DIR/include -O3' 'LDFLAGS=-L$$PKG_CONFIG_SYSROOT_DIR/usr/lib -L$$PKG_CONFIG_SYSROOT_DIR/lib'

 次に、通常通りmakeコマンドを実行してコンパイルを行う。

$ make

 コンパイルが完了したら、「make install」コマンドを実行し、指定した一時ディレクトリ以下にファイルをインストールする。

$ make install

 あとは、scpやrsync等を利用し、一時ディレクトリ以下にインストールされたファイルをMoblin環境にコピーすればよい。

 なお、コンパイルにconfigureを利用しないアプリケーションの場合は、上記の環境変数を設定した上でコンパイラや関連ツールとして「$MOBLIN_TOOLCHAIN/bin」以下にある「i586-moblin-linux-gcc」や「i586-moblin-linux-ld」、「i586-moblin-linux-ar」などを利用するよう手動で設定する必要がある。

バイナリパッケージの作成

 作成したMoblinアプリケーションは通常、RPM形式のパッケージとして配布することになる。Moblinでは「Moblin Package Creator」と呼ばれるパッケージ作成ツールが用意されており、これを利用することで簡単にRPMパッケージの作成が可能だ(図10)。Moblin Package CreatorはEclipseの「Project」メニュー内「Invoke Moblin Tools」−「Create RPM/DEB」から起動できる。また、Anjutaを使っている場合はアプリケーションメニューから「プログラム」−「Moblin Package Creator」を選択する、もしくはターミナルで下記のように実行して起動できる。

$ moblin-package-creator
図10 パッケージを作成するツール「Moblin Package Creator」
図10 パッケージを作成するツール「Moblin Package Creator」

 Moblin Package Creatorの「Main」タブでは、パッケージ名や依存パッケージ、バージョン、説明などを入力する。それぞれの意味は次の表5のとおりだ。

表5 Moblin Package Creatorの設定項目
項目名 意味
Name パッケージ名
Requires(RPM) 依存するRPMパッケージ
BuildRequires(RPM) ソースコードからバイナリをビルドする際に必要となるRPMパッケージ
Depends(DEB) 依存するdebパッケージ。debパッケージを作成する際に入力する
BuildDepends ソースコードからバイナリをビルドする際に必要となるdebパッケージ。debパッケージを作成する際に入力する
Project root path ソースコードや各種設定ファイルなど、プロジェクトに含まれるファイルが含まれるディレクトリのパス
Version パッケージのバージョン
Description パッケージの説明
Package Group パッケージの分類
Configure Parameters パッケージ作成の際にconfigureプログラムに渡す引数

 これらを入力したら、続いて「Build Control」タブの「Output」項目で作成するパッケージや保存先を設定する。Moblin Package CreatorではRPMパッケージだけでなくdebパッケージや各種ソースパッケージも作成できるが、基本的にはRPMパッケージのみを作成すればよい。また、「License Details」タブではライセンスや作成者の名前といった情報を入力できる。

 以上の設定の完了後、「Create」をクリックするとパッケージの作成が行われ、指定したディレクトリにパッケージが保存される。

 作成したパッケージは、Moblin環境にコピーした後に次のようにしてインストールできる。

$ sudo rpm -i <パッケージ名>

 インストールされたパッケージはMoblinの「アプリケーション」タブに登録され、ほかのアプリケーションと同様、ここから起動できる(図11)。

図11 RPMパッケージでインストールしたアプリケーションはMoblinの「アプリケーション」画面に表示され、ここから起動できるようになる
図11 RPMパッケージでインストールしたアプリケーションはMoblinの「アプリケーション」画面に表示され、ここから起動できるようになる