AC_DEFUN([AC_FIND_XFT], [ AH_TEMPLATE([HAVE_FREETYPE], [We have the FreeType library]) AH_TEMPLATE([HAVE_FONTCONFIG], [We have the fontconfig library]) AH_TEMPLATE([HAVE_XRENDER], [We have the fontconfig library]) AH_TEMPLATE([FC_DEFAULT_FONTS], [We have the fontconfig library]) AH_TEMPLATE([CONFDIR], [We have the fontconfig library]) AH_TEMPLATE([USE_XFT], [Use XFT]) AC_ARG_ENABLE(xft, [ --enable-xft Enable XFT support (font anti aliasing)],,[enable_xft=yes]) AC_ARG_WITH(freetype_includes, [ --with-freetype-includes=DIR Use FreeType includes in DIR], freetype_includes=$withval, freetype_includes=yes) AC_ARG_WITH(freetype_lib, [ --with-freetype-lib=DIR Use FreeType library in DIR], freetype_lib=$withval, freetype_lib=yes) AC_ARG_WITH(freetype_config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes) AC_ARG_WITH(default_fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], defaultfonts="$withval", default_fonts=yes) AC_ARG_WITH(fontconfig_includes, [ --with-fontconfig-includes=DIR Use Fontconfig includes in DIR], fontconfig_includes=$withval, fontconfig_includes=yes) AC_ARG_WITH(fontconfig_lib, [ --with-fontconfig-lib=DIR Use Fontconfig library in DIR], fontconfig_lib=$withval, fontconfig_lib=yes) AC_ARG_WITH(fontconfig_config, [ --with-fontconfig-config=PROG Use Fontconfig configuration program PROG], fontconfig_config=$withval, fontconfig_config=yes) if test "$enable_xft" = "yes" then # # Check freetype configuration # case "$freetype_config" in no) ;; yes) AC_CHECK_PROG(ft_config,freetype-config,freetype-config,no) ;; *) ft_config="$freetype_config" ;; esac case "$freetype_includes" in no) FREETYPE_CFLAGS="" ;; yes) case "$ft_config" in no) FREETYPE_CFLAGS="" ;; *) FREETYPE_CFLAGS="`$ft_config --cflags`" ;; esac ;; *) FREETYPE_CFLAGS="-I$freetype_includes" ;; esac case "$freetype_lib" in no) freetype_lib="" ;; yes) case "$ft_config" in no) freetype_lib="" ;; *) freetype_lib="`$ft_config --libs`" ;; esac ;; *) freetype_lib="-L$freetype_lib -lfreetype" ;; esac saved_LIBS="$LIBS" LIBS="$LIBS $freetype_lib" saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS" AC_CHECK_HEADERS(freetype/freetype.h) FINDXFT_HAVE_FREETYPE="no" case "$ac_cv_header_freetype_freetype_h" in no) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ;; yes) AC_CHECK_FUNCS(FT_Init_FreeType) case "$ac_cv_func_FT_Init_FreeType" in no) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ;; yes) FINDXFT_HAVE_FREETYPE="yes" AC_DEFINE(HAVE_FREETYPE, 1, Means we have discovered the FreeType library) AC_SUBST(FREETYPE_CFLAGS) ;; esac ;; esac case "$default_fonts" in yes) FC_DEFAULT_FONTS="/usr/share/fonts" AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts") ;; *) FC_DEFAULT_FONTS="$default_fonts" AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts") ;; esac AC_SUBST(FC_DEFAULT_FONTS) # # Set CONFDIR and FONTCONFIG_PATH # case "$confdir" in no|yes) confdir=/etc/fonts ;; *) ;; esac AC_SUBST(confdir) CONFDIR='${confdir}' AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR") AC_SUBST(CONFDIR) # # Check X configuration # FINDXFT_HAVE_XRENDER="no" case "$have_x" in yes) XRENDER_CFLAGS="-I$x_includes" XRENDER_LIBS="-L$x_libraries -lXft -lXrender" saved_LIBS="$LIBS" LIBS="$LIBS $XRENDER_LIBS" saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS" AC_CHECK_HEADERS(X11/extensions/Xrender.h) case "$ac_cv_header_X11_extensions_Xrender_h" in no) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ;; yes) AC_CHECK_FUNCS(XRenderParseColor) case "$ac_cv_func_XRenderParseColor" in no) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ;; yes) FINDXFT_HAVE_XRENDER="yes" AC_DEFINE(HAVE_XRENDER, 1, Means we have discovered the Xrender library) AC_SUBST(XRENDER_CFLAGS) AC_SUBST(XRENDER_LIBS) ;; esac ;; esac ;; esac # # Check fontconfig configuration # case "$fontconfig_config" in no) ;; yes) AC_CHECK_PROG(fc_config,fontconfig-config,fontconfig-config,no) ;; *) fc_config="$fontconfig_config" ;; esac case "$fontconfig_includes" in no) FONTCONFIG_CFLAGS="" ;; yes) case "$fc_config" in no) FONTCONFIG_CFLAGS="" ;; *) FONTCONFIG_CFLAGS="`$fc_config --cflags`" ;; esac ;; *) FONTCONFIG_CFLAGS="-I$fontconfig_includes" ;; esac case "$fontconfig_lib" in no) fontconfig_lib="" ;; yes) case "$fc_config" in no) fontconfig_lib="" ;; *) FONTCONFIG_LIBS="`$fc_config --libs`" ;; esac ;; *) FONTCONFIG_LIBS="-L$fontconfig_lib -lfontconfig" ;; esac saved_LIBS="$LIBS" LIBS="$LIBS $FONTCONFIG_LIBS" saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $FONTCONFIG_CFLAGS" AC_CHECK_HEADERS(fontconfig/fontconfig.h) case "$ac_cv_header_fontconfig_fontconfig_h" in no) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ;; yes) AC_CHECK_FUNCS(FcInit) case "$ac_cv_func_FcInit" in no) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ;; yes) AC_DEFINE(HAVE_FONTCONFIG, 1, This is defined if we find the FontConfig library) AC_SUBST(FONTCONFIG_CFLAGS) AC_SUBST(FONTCONFIG_LIBS) ;; esac ;; esac dnl dnl Should this be conditionally defined ? dnl dnl if test "$FINDXFT_HAVE_XRENDER" = "yes" -a "$FINDXFT_HAVE_FREETYPE" = "yes" dnl then AC_DEFINE(USE_XFT, 1, This means we will be using the Xft library) CFLAGS="$CFLAGS `pkg-config xft --cflags`" AC_SUBST(CFLAGS) LIBS="$LIBS `pkg-config xft --libs`" AC_SUBST(LIBS) dnl fi fi ])