Mac OS X server 10.5 でも、Mac OS X 10.5 でも、デフォルトでは PHP で GD ライブラリが使えない。あいかわらず、"刀の使えない座頭市" 状態である。ただし、アップルの Xcode および、OS に付属している、X11 をインストールしておけば、10.4 の時代と異なり、GD ライブラリが必要とする zlib, libpng, libjpeg 等は、libjpeg 以外は、すでにインストールされている。
したがって、PHP で GD ライブラリを使うためには、libjpeg だけをインストールしてやればよいことになる。本当にめでたい。というわけで、libjpeg を、インストールしていくことにする。
ダウンロードしたら、適当なディレクトリに解凍する。中上級者は、適当なディレクトリを作製して、ターミナルから解凍する。この解説は初心者の味方なので、ダブルクリックしてデスクトップに解凍したものとして、話をすすめることにしよう。かくいう筆者も、たいしたことはないのであって、初心者に毛が生えたようなものである。
デスクトップに、jpeg-6b というフォルダができているはずである。ターミナルを起動して、まず、インストールに必要なディレクトリを作っておく。/usr/local の中にディレクトリを作っていくのであるが、普段は見えない /usr ディレクトリも、上の図のように、メニューの"移動"から、"フォルダへ移動"を選んで、/usr と入力すれば、その中身をみることができる。
sudo mkdir -p /usr/local/include
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/lib
sudo mkdir -p /usr/local/share/man/man1
と、入力。各行の最後には当然、リターンキーを押す。パスワードの入力も最初だけは必要になるだろう。
特に、最後の行がミソである。各ソースの説明(マニュアル)を入れておく "man" フォルダは、マックの場合には、"/share/man/" 以下にまとめておくことになっている。実は、後ほどインストールすることになる "ImageMagick" もここに "man" ファイルを入れてくるのである。これをやらなかったからといって、実害があるわけでもないだろうが、いろいろなディレクトリに "man" フォルダがインストールされてしまい、そこらじゅうが "man" だらけ、という状態になってしまう。筆者はやった。あのころは若かった。そして "man" だらけだった。。。
ところで、先ほどメニューの"移動"から、"フォルダへ移動"を選んで、/usr と入力すれば、その中身をみることができる、と書いたのだが、それを使って /usr/local の中に include やら bin やらのフォルダを GUI を使って作ってしまうのはやめたほうがよい。それは、フォルダのアクセス権(パーミッション)がややこしいことになるからで、このようなフォルダ(ディレクトリ)を作る際には、必ずターミナルを使うようにしよう。
さて、続けていこう!
cd Desktop/jpeg-6b
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .
このあたりは、以前の記事参照のこと。
次は、32bit ( PowerPC G4 および intel core solo ) の場合には、
./configure --enable-shared
だけで、64bit ( PowerPC G5 および その他 intel Mac ) の場合には、以下を一行につなげて、
MACOSX_DEPLOYMENT_TARGET=10.5
CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load"
./configure --enable-shared
と打ち込んで、リターン。
このようにコンパイルして、
make
と、入力して、リターン。さて、ここでターミナルをちょっと一休みする。
下の図をご覧いただきたい。デスクトップの jpeg-6b フォルダを開き、makefile を探してお使いのテキストエディタで開いてみよう。その20行目、
mandir = $(prefix)/man/man$(manext)
mandir = $(prefix)/share/man/man$(manext)
に書き換えておく。その後、ターミナルの画面から、
make test
としてテストをして、エラーが表示されなければ、
sudo make install
と入力。もっとも、makefile を書き換えたりするのが面倒なら、make のあと、
sudo make install mandir=/usr/local/share/man/man1
と入力してもいいと思うが、なにごとも経験だ、makefile ぐらい見ておいた方がいいと思う。中上級者についてはこのかぎりではない。
はぁ〜、これで、インストール完了だよ。めでたし、めでたし。。。。

ユーザー名、ぱぶちゃん様、メールをお送りいたしました。よろしくお願いいたします。
詳細な作業手順の記述有難うございます。
参考にさせて頂いております。
ブログ主様のようなベテランには常識以前の事なのかも知れませんが、当方超初心者につき
>64bit ( PowerPC G5 および その他 intel Mac ) の場合には、以下を一行につなげて、
>
>MACOSX_DEPLOYMENT_TARGET=10.5
> CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
> CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
> CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
> LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load"
> ./configure --enable-shared
をそのまんま入力してこけました。
正しくは、
./configure --enable-shared MACOSX_DEPLOYMENT_TARGET=10.5
CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load"
の順だと思うのですが・・・・
間違っていればすみません。
私のような超初心者がつまづかないようにコメントさせて頂きました。
こんばんは。
以前にも同様のご指摘をいただいておりましたので、コメントを掲載させていただきました。
cd Desktop/jpeg-6b
として、"jpeg-6b" フォルダに移動したあと、
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .
そして、
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --enable-shared
となるのですが、わたしが見やすくするために勝手に改行をいれているために、ひょっとすると余計なスペースがはいってしまったり、逆にスペースがなくなってしまっているのかもしれません。
このコメントに書いた
cp /usr/share/libtool/config.sub .
の部分からそっくりそのままコピーして、ターミナルの画面上にペーストして入力してみてください。
それでうまくいかなかった場合には、また、コメントをいただけますと幸いです。
今後とも、よろしくお願いいたします。