Blame ac_find_xft.m4

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