configure.in で,ImageMagick を検出

PKG_CONFIG_MODULES() だとpkg-config に対応していない古いバージョンのImageMagickを検出できないので,以下のような細工を行う.

configure.in には以下のように書く.

PKG_CHECK_MODULES(IMAGEMAGICK, "ImageMagick",
    [have_imagemagick="yes"],
    [have_imagemagick="no"])
if test "x$have_imagemagick" != xyes; then
   AC_CHECK_PROG(IMAGEMAGICK_CONFIG, Magick-config, "yes")
   if test "x$IMAGEMAGICK_CONFIG" = xyes; then
       have_imagemagick=yes
       IMAGEMAGICK_CFLAGS="`Magick-config --cflags`"
       IMAGEMAGICK_LDFLAGS="`Magick-config --ldflags`"
       IMAGEMAGICK_LIBS="`Magick-config --libs`"
       AC_SUBST(IMAGEMAGICK_CFLAGS)
       AC_SUBST(IMAGEMAGICK_LDFLAGS)
       AC_SUBST(IMAGEMAGICK_LIBS)
   fi
fi
#AM_CONDITIONAL(HAVE_IMAGEMAGICK,test "x$have_imagemagick" = xyes)
cflags_old=$CFLAGS
CFLAGS=$IMAGEMAGICK_CFLAGS
AC_CHECK_HEADERS(magick/api.h)
CFLAGS=$cflags_old

ソースコード側は,

#ifdef HAVE_MAGICK_API_H
#include <magick/api.h>
#endif


#ifdef HAVE_MAGICK_API_H
int hogehoge()
{

}
#endif /* #ifdef HAVE_MAGICK_API_H */

と,#ifdef HAVE_MAGICK_API_H で括る.