Tao FrameworkについてとMandriva Linux向けRPMパッケージの作成
共通言語基盤(Common Language Infrastructure)のアーキテクチャ(以下Mono/.NETアーキテクチャ)上でOpenGL/OpenAL/SDLやその他各種ライブラリなどを利用するための言語バインディング集として、Tao Framework(http://web.archive.org/web/20081220074025/http://taoframework.com/)というものがある。
Mandriva Linux 2009.0向けの自作パッケージについて
あるパッケージをインストールするためにこのパッケージが必要になったのだが、Mandriva Linux 2009.0の時点ではパッケージになっていないため、RPMパッケージを作成した。別館の配布ページで公開している。(2014/10/12)配布ページは削除済み。
Tao FrameworkのコードはC#言語のみで書かれていて、CやC++で書かれたライブラリへリンクすることもないため、Mono/.NETアーキテクチャ上の実行形式(アセンブリと呼ばれている)*1は、OSやそのアーキテクチャ(x86_32/x86_64など)などに依存せずにどこでも実行できることとあわせると、RPMパッケージはアーキテクチャ非依存(.noarch.rpm)にしたいところだが、実際には
- Tao Frameworkから使用される低レベルのライブラリ(SDLやOpenALなど)への依存はアーキテクチャごとに異なる名前になる場合がある(例: x86_64上の「lib64openal0」とi586上の「libopenal0」)
- pkg-config向けの.pcファイルが/usr/lib/pkgconfig/へ入る関係でx86_64上で(環境変数PKG_CONFIG_PATHを指定せずに)認識されない
といった問題があったため、それぞれ
- インストールされるファイルを「taoframework-common-[名前]」、依存関係処理用に「taoframework-[名前]」とパッケージを分ける
- x86_64のときに/usr/lib64/pkgconfig/以下へ.pcファイルへのシンボリックリンクを張る
として対処した。
一般的なビルド/インストール手順
nantというビルドツールを用いる。- pkg-config(パッケージ名「pkgconfig」の場合もある)
- Mono
- nant
があればOKと思われる。*2
下は作業例。
$ tar zxf [taoframework-2.1.0.tar.gzの場所] $ cd taoframework-2.1.0/source/ $ nant mono-2.0 build-release $ sudo nant mono-2.0 install -D:gacdir="[インストール先接頭辞(「/usr」など)"] -D:pkgconfig="[pkgconfigディレクトリ(「/usr/lib/pkgconfig」など)]"
Debian/Ubuntuでのパッケージについて
2009年1月現在、Debianの不安定版ディストリ(sid)にパッケージが存在する。*3上で書いているが、Mono/.NETのアセンブリファイルではディストリやアーキテクチャの違いが問題にならないため、(パッケージがない)Ubuntuからも安全に利用できる。関連URL: