GIF 機能 の on/off

swfed で GIF を処理するコードを追加したのですが、
giflib 無しのシステムで使っているユーザ様から GIF 機能を外せないかという相談を受けました。
早速、調査。

config.m4

config.m4 で有効と判定したルートに

AC_DEFINE(HAVE_GIF,1,[ ])

を入れれば config.h に #define HAVE_GIF 1 が入ります。
あとは、無効と判定したルートで

  if test "$PHP_GIF_DIR" = "no"; then
     AC_MSG_ERROR([swfed support requires GIF. (略)

等としていると、エラーで configure を中断してしまうので、

  if test "$PHP_GIF_DIR" = "no"; then
     AC_MSG_RESULT([gif_lib.h not found.])

等として、無効のまま configure を続行させれば、OK

HAVE_GIF

プログラムの中で GIF の処理をしている部分を #ifdef HAVE_GIF でくくります。
あと、#include "config.h" しないとHAVE_GIF は無効のままなので無条件で動かなくなります。少しハマりました。

PNG

ついでに PNG 機能も on/off 出来るようにしておきました。
というわけで、prefix が特殊な環境で --with-png= をつけ忘れると、
build は通っても PNG の処理だけ動かないという事になりますので、
お気をつけ下さい。 > 誰となく

zlib は off すると画像の処理が殆どできなくなるので、必須のままにしておきます。

さて…

自分の環境で libgif や libpng を削ったりしての動作確認は出来たので、
ユーザ様に rc 版を渡して動作がうまくいったら、リリースしようと思います。