0. はじめに
MacPorts (DarwinPorts) で ffmpeg をインストールした際のメモ。
ffmpeg は色々とインストールに苦労するパッケージで、あちこちにインストールメモが存在するが、
今回は 2008/02/27 現在、検索しても見つからなかったトラブルに遭遇した。
単に自分の環境がおかしいだけという可能性も大なのだが、原因が分かるまで苦労したので
また同じ現象に会った時のために記録を残しておく事にした。
(2008/03/14 追記)
MacPorts の Ticket #14492 で報告されているのを発見した。
どうやら ffmpeg の svn レポジトリに問題があったらしい。
(2008/03/17 追記)
上記のリンク先に 2008/03/16 付けで修正報告が上がった。
改めてコンパイルを試してみたが無事成功した。
もうこのメモの存在意義は無くなったが、一応残しておく。
1. 環境
OS | Mac OS X 10.4.11 |
CPU | PowerPC G4 |
MacPorts | 1.600 |
gcc | 4.0.1 (Xcode 2.5) |
lame | 3.97_0 |
faac | 1.26_0 |
a52dec | 0.7.4_0 |
ffmpeg | 0.4.9-pre1_5 |
2. variants 用パッケージのインストール
いくつかの音周りのパッケージを事前にインストール。
これは特に問題なし。
3. ffmpeg のインストール
3.1 エラーメッセージ
ネット上でよく見かけるのが make install 中の、ライブラリ関係のコピー時のエラーで
基本的には事前に ffmpeg をアンインストールする事で回避できる。
今回もエラーが出るタイミングは同じなのだが、ちょっと種類が違う。
メッセージを見て分かる通り、install コマンドでコピーされる元のファイルが空になっている。
(install -m 755 の後にスペースが一個余計に入っている)
3.2 対処法
ffmepg の Makefile は config.mak で基本的な変数を、common.mak で共通のターゲットを定義してサブディレクトリの Makefile はこれらを include している。(自動生成かな?)
空になっている変数は $(SLIBNAME) で、config.mak で
と定義されているのだが、何故か common.mak から参照する時には空になってしまい、
ターゲット $(SLIBNAME) が実行されない為に、後にコピーされる dylib ファイルが作成されなくなってしまう。
他の変数は参照できるので common.mak で改めて $(SLIBNAME) を定義する事でエラーを回避できる。
どう考えても対症療法なのだが、これでインストールできる。
4. インストール結果
無事インストール終了。