libpng1.5.4をOSXでビルドする

zlibをビルドする

http://zlib.net/からzlib source code, version 1.2.5をダウンロード、適当なディレクトに展開、そこに移動する
あとは、configure,make,make installを実行するだけです。

./configure
make
make install

libz.aやlibz1.2.5.dylibが作成されています。

ソースコードの入手

http://www.libpng.org/pub/png/libpng.html
バージョン1.5.4の表のSource code:から入手→適当なディレクトに展開し、そこに移動

cd 

次にconfigureを呼び出しますが、"./configure"を走らせようとしても動きません→autogen.shを先に呼び出して回避します。

    ./configure --enable-maintainer-mode
    make maintainer-clean
    ./autogen.sh

ところがautogen.shを走らせようとすると下のエラーがでます。

running libtoolize
./autogen.sh: line 15: libtoolize: command not found
ERROR: autogen.sh failed, autogen is incomplete

libtoolizeがないとのこと。libtoolize→glibtoolizeに書き換えて実行すればうまくいきます。
autogen.sh

   LT=${LIBTOOLIZE-libtoolize}

   LT=${LIBTOOLIZE-glibtoolize}

autogen.shを実行します。

$ ./autogen.sh
running glibtoolize
running aclocal
running autoheader [ignore the warnings]
running automake
configure.ac:39: installing `./config.sub'
configure.ac:22: installing `./missing'
configure.ac:22: installing `./install-sh'
configure.ac:39: installing `./config.guess'
Makefile.am: installing `./depcomp'
running autoconf
autogen complete

あとはconfigureでmakefileを作成します。

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
....省略
....
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libpng.pc
config.status: creating libpng-config
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

makeします。

$make
make  all-am
....省略
....
libtool: link: ranlib .libs/libpng15.a
libtool: link: ( cd ".libs" && rm -f "libpng15.la" && ln -s "../libpng15.la" "libpng15.la" )
cp libpng-config libpng15-config
cp libpng.pc libpng15.pc

でlibpng.a、libpng15.dylibが作成されました。
インストールするには、

make install

を実行して完了です。あとはlibpng.aなどを持ち運んで利用することもできます。

Xcodeで利用する

static libraryを利用するには、libz.a, libpng.aへのライブラリパスを指定して、
TARGET>Build Settings>Search Paths>Library Search Paths
ライブラリを追加すればOKです。
Build Phases>Link Binary With Libraries>"+">Add Others>libpngとlibzを追加