FreeBSD 10 php ソースコンパイル

FreeBSD 10.0-RELEASE上でPHPをビルドすると、共有ライブラリ (libphp5.so) が生成されない。
【追記】 PHP 5.5.15/5.4.31で修正された。

PHP共有ライブラリが生成されない – admin note

→ 5.5.24時点で
libphp5.so は生成されるが、例えば opcache.so が libopcache.so.0.0 となってしまうため
aclocal.m4 libtool.m4 configureの書き換えは必要

[FreeBSD-users-jp 95150] Re: FreeBSD 10.0-RELEASEで共有ライブラリが生成されない

古い autotools を使って生成した configure などのファイルは、
FreeBSD の 2 桁のリリース番号を正しく認識しません。
具体的には、次のファイルについて freebsd1* を freebsd1.* に
書き換える必要があります。

aclocal.m4
acinclude.m4
config.libpath
config.rpath
configure
ltconfig
libtool.m4
libtool

ports に含まれるソフトウェアは、構築前にこの書き換えが
自動的に行われます。基本的には、ソフトウェア配布元が修正しないと
解決しない問題です。
[PHP-dev 1550] PHPが、FreeBSD-10でコンパイル不能な件

書き換える方法

/bin/tcsh

foreach f (`find . -type f \( -name config.libpath -o -name config.rpath -o -name configure -o -name libtool.m4 -o -name ltconfig -o -name libtool -o -name aclocal.m4 -o -name acinclude.m4 \)`)
    sed -i.fbsd10bak -e 's|freebsd1\*)|freebsd1.\*)|g' -e 's|freebsd\[12\]\*)|freebsd[12].*)|g' -e 's|freebsd\[123\]\*)|freebsd[123].*)|g' -e 's|freebsd\[\[12\]\]\*)|freebsd[[12]].*)|g' -e 's|freebsd\[\[123\]\]\*)|freebsd[[123]].*)|g' $f
    touch -f -mr $f.fbsd10bak $f
    rm $f.fbsd10bak
end

/bin/sh

for f in `find . -type f \( -name config.libpath -o -name config.rpath -o -name configure -o -name libtool.m4 -o -name ltconfig -o -name libtool -o -name aclocal.m4 -o -name acinclude.m4 \)`; do
    sed -i.fbsd10bak -e 's|freebsd1\*)|freebsd1.\*)|g' -e 's|freebsd\[12\]\*)|freebsd[12].*)|g' -e 's|freebsd\[123\]\*)|freebsd[123].*)|g' -e 's|freebsd\[\[12\]\]\*)|freebsd[[12]].*)|g' -e 's|freebsd\[\[123\]\]\*)|freebsd[[123]].*)|g' $f
    touch -f -mr $f.fbsd10bak $f
    rm $f.fbsd10bak
done

http://zewaren.net/site/?q=node/134