数日前からffmpegを自前でビルドしようと思い、いろいろと足掻いていたのだがうまくいっていなかった。まず何はともあれ、wgetをインストールしようと思い
GNU wget のwget-1.10.2.tar.gzをダウンロードしてきてホームにおき
$ tar zxvf wget-1.10.2.tar.gz
$ cd wget-1.10.2
$ ./configure
$ make
$ sudo make install
とお決まりのインストールをやろうとしたらどういう訳かいきなりエラーが出てビルドできなかった・・・なぜ?
だもんでとりあえず面倒だけどwgetはおいといてlameあたりから一個ずつSafariでダウンロードしてインストールする方針にしてみた。ちなみにflvからMPEG4に変換する用途なら多分MP3はいらないんじゃないかという気もするが、念のためlame, amrnb, amrwb, faad2, faac, x246, Xvidをインストールしてからffmpegをビルドするつもり。携帯動画もいらないんだけどね。念のため、万能変換を目指します。
で、早速lameをダウンロードしてきてインストールしようとしたところ、これもやっぱりエラーが出て止まってしまう。
$ tar zxvf lame-3.97.tar.gz
$ cd lame-3.97
$ ./configure
$ make
$ sudo make install
makeで下のようなエラーが出て止まり、make installも当然うまく行かない。なじぇ?
make all-recursive
Making all in mpglib
if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I. -I../libmp3lame -I.. -O3 -ffast-math -funroll-loops -Wall -fno-common -MT common.lo -MD -MP -MF ".deps/common.Tpo" -c -o common.lo common.c; ?
then mv -f ".deps/common.Tpo" ".deps/common.Plo"; else rm -f ".deps/common.Tpo"; exit 1; fi
rm: .libs/common.o: Permission denied
rm: .libs/common.o: Permission denied
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I. -I../libmp3lame -I.. -O3 -ffast-math -funroll-loops -Wall -fno-common -MT common.lo -MD -MP -MF .deps/common.Tpo -c common.c -fno-common -DPIC -o .libs/common.o
In file included from common.c:4:
../config.h:73: warning: use of `long double' type; its size may change in a future release
../config.h:73: warning: (Long double usage is reported only once for each file.
../config.h:73: warning: To disable this warning, use -Wno-long-double.)
/var/tmp//ccYdOf6u.s:unknown:FATAL:can't create output file: .libs/common.o
make[2]: *** [common.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
仕方がないので一旦make cleanして対策を考える。
といっても特にアイデアもないので一からのビルドを諦めてFinkかMacPortsからバイナリをインストールすることにした。
で、まずMacPortsが最近の流行なようなのでダウンロードしてインストールしてみた。しかしMacPortsはダウンローダとしてrsyncコマンドを使っているようだがこれが某所のファイアウォールを突破できないっぽいので結局手も足もでず撤退。
そこで仕方なくFinkもインストールした。Finkはコンフィグをいじることでproxyを設定できたので使えそうな気がした。
$ fink configure
で、設定するのはHTTP proxyのところを
ProxyHTTP: http://yourhost.com:8080/
という感じに入れてやればOK
さてさてこれで問題なくインストールできるだろうと
$ apt-get install wget
と試しにwgetをインストールしてみるときちんとインストールが出来た。そこでlameも〜と思ってapt-getしてみたところバイナリが登録されてないでやんの・・・
いやな予感とともに
$ fink install lame
としてやるとやっぱり・・・makeでこける。こりゃコンパイラに問題があるのかいなと思いつつ念のため
$ fink -b install lame-dev
と違うコードを-bオプション付きでビルドしてやろうとがんばってみる。すると・・・なんか「このgccのバージョンだとエラーが出るかもしれんがやってみるか?[y/N]」みたいなアラートが出てるじゃんか。あれえ?OSX10.4.10の最新バージョン入れてるはずなんだけどなあ。と思いつつ
$ gcc -v
Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
Thread model: posix
gcc version 3.3 20030304 (Apple Computer, Inc. build 1666)
あちゃー。OSXをpantherからtigerにバージョンアプした時に面倒くさがってXcodeをそのまま放置していたってことだわ。これ。
つことでXcodeを2にアップしたところすんなり解決。これならわざわざFinkなんぞ入れんでも良かったんじゃないだろうか。
現在faad2でツマヅキ中。libtoolとかautoconfとか要るらしい・・・
続く