0. はじめに
MacPorts (DarwinPorts) で ffmpeg をインストールした際のメモ。
ffmpeg は色々とインストールに苦労するパッケージで、あちこちにインストールメモが存在するが、
今回は 2008/02/27 現在、検索しても見つからなかったトラブルに遭遇した。
単に自分の環境がおかしいだけという可能性も大なのだが、原因が分かるまで苦労したので
また同じ現象に会った時のために記録を残しておく事にした。
(2008/03/14 追記)
MacPorts の Ticket #14492 で報告されているのを発見した。
どうやら ffmpeg の svn レポジトリに問題があったらしい。
ffmpeg staging error: usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
(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 用パッケージのインストール
いくつかの音周りのパッケージを事前にインストール。
これは特に問題なし。
# port install lame faac a52dec
3. ffmpeg のインストール
3.1 エラーメッセージ
ネット上でよく見かけるのが make install 中の、ライブラリ関係のコピー時のエラーで
基本的には事前に ffmpeg をアンインストールする事で回避できる。
今回もエラーが出るタイミングは同じなのだが、ちょっと種類が違う。
# port install ffmpeg +lame +faac +a52
(中略)
make -C libavutil install-libs
install -d "/opt/local/var/(中略)/work/destroot/opt/local/lib"
install -m 755 "/opt/local/var/(中略)/work/destroot/opt/local/lib/libavutil.49.6.0.dylib"
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
[-o owner] file1 file2
install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
[-o owner] file1 ... fileN directory
install -d [-v] [-g group] [-m mode] [-o owner] directory ...
make[1]: *** [install-lib-shared] Error 64
make: *** [install-libs] Error 2
|
メッセージを見て分かる通り、install コマンドでコピーされる元のファイルが空になっている。
(install -m 755 の後にスペースが一個余計に入っている)
3.2 対処法
ffmepg の Makefile は config.mak で基本的な変数を、common.mak で共通のターゲットを定義して
サブディレクトリの Makefile はこれらを include している。(自動生成かな?)
空になっている変数は $(SLIBNAME) で、config.mak で
config.mak
SLIBNAME=$(SLIBPREF)$(FULLNAME)$(SLIBSUF)
|
と定義されているのだが、何故か common.mak から参照する時には空になってしまい、
ターゲット $(SLIBNAME) が実行されない為に、後にコピーされる dylib ファイルが作成されなくなってしまう。
他の変数は参照できるので common.mak で改めて $(SLIBNAME) を定義する事でエラーを回避できる。
common.mak
SLIBNAME=$(SLIBPREF)$(FULLNAME)$(SLIBSUF)
|
どう考えても対症療法なのだが、これでインストールできる。
4. インストール結果
無事インストール終了。
$ ffmpeg -version
FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --prefix=/opt/local --prefix=/opt/local --disable-vhook
--mandir=/opt/local/share/man --enable-shared --enable-pthreads
--enable-libmp3lame --enable-gpl --enable-libfaac --enable-liba52
libavutil version: 49.6.0
libavcodec version: 51.49.0
libavformat version: 52.4.0
libavdevice version: 52.0.0
built on Feb 27 2008 19:31:38, gcc: 4.0.1 (Apple Computer, Inc. build 5370)
FFmpeg UNKNOWN
libavutil 3212800
libavcodec 3354880
libavformat 3408896
libavdevice 3407872
|