Firefoxはもうhgを使って更新するだけなのでもういいかなと思って
公式バイナリを展開してお茶を濁しております。
さて本題の方は本来はmkvtoolnixの方だったりしますが、gcc4.5以降じゃないと
configureで弾かれるのでgccから入れる作業です。
●GCC4.7を入れてみる
基本的にはさかな前線さんの該当記事を参考にしております。ありがたやー
○GMP・MPFR・MPCのインストール
順番はGMP→MPFR→MPCで、ライブラリ依存してるのでGMPからやりましょう
インストール先はどこでもいいのですが、gccの処理系を独立させるために
ホームディレクトリにselflocalを作ってインストールしています。
・GMP
http://gmplib.org/
$ ./configure --prefix=${HOME}/selflocal
$ make && make install
・MPFR
http://www.mpfr.org/
$ ./configure --prefix=${HOME}/selflocal --with-gmp=${HOME}/selflocal
$ make && make install
・MPC
http://www.multiprecision.org/
$ ./configure --prefix=${HOME}/selflocal \
--with-gmp=${HOME}/selflocal --with-mpfr=${HOME}/selflocal
$ make && make install
○GCC4.7のインストール
やることは変わりませんが、最適化のためにできたバイナリで再度ビルドするという
ことを3回するようなので時間がかかります。
そのせいかは分かりませんがライブラリパスが通ってないと
途中でエラーになるようです。
コマンドで環境変数を一時設定するのが面倒ならexportで通してください。
・GCC
公式
http://gcc.gnu.org/
筑波大学WIDEプロジェクトダウンロードミラー
http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/
$ ./configure --prefix=${HOME}/selflocal --program-suffix=-4.7 \
--with-gmp=${HOME}/selflocal \
--with-mpfr=${HOME}/selflocal \
--with-mpc=${HOME}/selflocal
$
$ LD_LIBRARY_PATH=${HOME}/selflocal/lib:${LD_LIBRARY_PATH} make
$ make install
プログラムサフィックスを設定しているのは作成バイナリ名でバージョンを
区別可能にするためです。
とりあえずこれでコンパイラの準備はできました。
●boost1.49を入れてみる
最新のmkvtoolnixだとboostのバージョンが低くて怒られちゃうので
これも最新のライブラリにしてあげる必要があります。
ただ、これはconfigure&Makefileでなくbootstrap&bjamなので
勝手が違って少し戸惑うかもしれないです。
debianのライブラリ名はシングルスレッド、マルチスレッドで
分離させているようなので分けてビルドします。
$ ./bootstrap
$ PATH=${HOME}/selflocal/bin:${PATH} \
LD_LIBRARY_PATH=${HOME}/selflocal/lib:${LD_LIBRARY_PATH} \
LD_RUN_PATH=${HOME}/selflocal/lib:${LD_RUN_PATH} \
./bjam link=shared,static threading=multi \
install --prefix=${HOME}/selflocal --buildid=mt
$ PATH=${HOME}/selflocal/bin:${PATH} \
LD_LIBRARY_PATH=${HOME}/selflocal/lib:${LD_LIBRARY_PATH} \
LD_RUN_PATH=${HOME}/selflocal/lib:${LD_RUN_PATH} \
./bjam link=shared,static threading=single \
install --prefix=${HOME}/selflocal
●mkvtoolnixのビルド
ここまでやってようやくmkvtoolnixのビルドの準備ができました。
tarボールでもhgでもいいのでソースを取得しましょう。
コンパイラはgcc-4.7を使いますのでパスの設定はしっかりとしましょう。
このバージョンではmakeの代わりにrubyベースのrakeが必要になります。
aptでインストールしておきましょう。
$ PATH=${HOME}selflocal/bin:${PATH} \
LD_LIBRARY_PATH=${HOME}/selflocal/lib:${LD_LIBRARY_PATH} \
LD_RUN_LIB=${HOME}/selflocal/lib:${LD_RUN_LIB} \
./configure --prefix=${HOME}/selflocal \
--with-boost-libdir=${HOME}/selflocal/lib \
CC=gcc-4.7 CPP=cpp-4.7 CXX=g++-4.7 CXXCPP=cpp-4.7 \
CFLAGS="-I${HOME}/selflocal/include" \
CXXFLAGS="-I${HOME}/selflocal/include" \
CPPFLAGS="-I${HOME}/selflocal/include"
$
$ PATH=${HOME}/selflocal/bin:${PATH} \
LD_LIBRARY_PATH=${HOME}/selflocal/lib:${LD_LIBRARY_PATH} \
LD_RUN_PATH=${HOME}/selflocal/lib:${LD_RUN_PATH} rake
$ rake install
正直LD_RUN_PATHとかいらない気もしますが、念のため設定してます。
--with-boost-libdirをやらないと環境変数だけではうまくリンクできないようです。
これでインストール先のmmgやmkvmergeなどを実行すれば
mkvファイル操作を可能になります。
mmgのmkvmergeのパス指定以外はスタティックリンクビルドだけあって
ライブラリパス指定せずに実行できるのがスバラシイ!(笑
まあfoobar2000との相性はまだまだのようですが…
時々更新して見守ってみます。
0 件のコメント:
コメントを投稿