2012年04月15日

FFmpegで「library.mak:95: *** missing separator. Stop.」の件

2012/04/13のFFmpegの更新

build: Move all arch OBJS declarations into arch subdirectory Makefiles.
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=baaab6069a261354a1c9470f3185686ad85166c6

この頃から、以下のようなエラーが出て、コンパイルできなくなってしまいました。

library.mak:95: *** missing separator. Stop.

2012/04/17 追記
いろいろ書きましたが、結局、改行コードが原因ではなく、新しく追加されたファイルの最後に、改行が入っていないだけでした。

ドイヒー!(笑

ということで、改行を追加するパッチを作りましたので、上記のエラーが出る場合は適用してください。
エラーが出ない場合は不要です。
ffmpeg-arch_objs-20120417.diff

2012/05/10 追記
改行の件は修正される気配がありませんので、ダウンロード(git clone)済みのソースコードがある場合、一旦Makefileを全部削除して、改行コードをLFにして作成し直せば、エラーが出なくなります。

$ echo 'Makefile eol=lf' > .gitattributes
$ find ./ -name 'Makefile' -print | xargs rm
$ git stash


以下は、参考までに残しておきます。


そのすぐ後のFFmpegの更新

git-howto: Explain how to avoid Windows line endings in git checkouts.
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=6048fd22ee409bd553014ed62e3f1a6a62dba39e

この中で、Windowsの改行コード(CRLF)だとコンパイルに失敗するかもしれないので、以下のコマンドを実行してください、というようなことが書かれています。

git config --global core.autocrlf false


gitの初期設定では、git cloneした時に、改行コードがCRLFに変換されてダウンロードされます。
上記のコマンドを実行すると、改行コードがLFでコミットされたソースコードは、LFのままダウンロードされるようになります。


ようするに、library.makのエラーが出る場合は、上記のコマンドでgitの設定を変更して、改行コードがCRLFに変換されないようにしてください、ということですね。

core.autocrlfが「false」だと、改行コードがCRLFのファイルはそのままコミットされてしまいます。
「input」にすれば、改行コードがCRLFのファイルはLFに変換されてコミットされて、git cloneした時にLFのままダウンロードされるので、「input」の方が良いと思います。

ちなみに、git cloneした時にCRLFに変換される設定は「true」です。

$ git config --global core.autocrlf input
は、gitをインストールしたとき、最初に1回だけ実行すれば良いです。

その後、以下のように、ffmpegのソースコードをダウンロードすれば、library.makのエラーは出なくなるはずです。
$ git clone git://git.videolan.org/ffmpeg.git

gitのwebインターフェースからsnapshotのソースコードをダウンロードした場合は、改行コードがLFなので、問題ありません。

ご参考まで。


【更新履歴】を見る
posted by あべちん at 23:36 | Comment(0) | TrackBack(0) | FFmpegビルド
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/55315040
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック