Home | History | Annotate | Download | only in harfbuzz_ng
      1 AC_PREREQ([2.64])
      2 AC_INIT([HarfBuzz],
      3         [1.2.6],
      4         [http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
      5         [harfbuzz],
      6         [http://harfbuzz.org/])
      7 
      8 AC_CONFIG_MACRO_DIR([m4])
      9 AC_CONFIG_SRCDIR([src/harfbuzz.pc.in])
     10 AC_CONFIG_HEADERS([config.h])
     11 
     12 AM_INIT_AUTOMAKE([1.11.1 gnits tar-ustar dist-bzip2 no-dist-gzip -Wall no-define color-tests -Wno-portability])
     13 AM_CONDITIONAL(AUTOMAKE_OLDER_THAN_1_13, test $am__api_version = 1.11 -o $am__api_version = 1.12)
     14 AM_SILENT_RULES([yes])
     15 
     16 # Initialize libtool
     17 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
     18 LT_PREREQ([2.2])
     19 LT_INIT([disable-static])
     20 
     21 # Check for programs
     22 AC_PROG_CC
     23 AM_PROG_CC_C_O
     24 AC_PROG_CXX
     25 PKG_PROG_PKG_CONFIG([0.20])
     26 AM_MISSING_PROG([RAGEL], [ragel])
     27 AM_MISSING_PROG([GIT], [git])
     28 
     29 # Version
     30 m4_define(hb_version_triplet,m4_split(AC_PACKAGE_VERSION,[[.]]))
     31 m4_define(hb_version_major,m4_argn(1,hb_version_triplet))
     32 m4_define(hb_version_minor,m4_argn(2,hb_version_triplet))
     33 m4_define(hb_version_micro,m4_argn(3,hb_version_triplet))
     34 HB_VERSION_MAJOR=hb_version_major
     35 HB_VERSION_MINOR=hb_version_minor
     36 HB_VERSION_MICRO=hb_version_micro
     37 HB_VERSION=AC_PACKAGE_VERSION
     38 AC_SUBST(HB_VERSION_MAJOR)
     39 AC_SUBST(HB_VERSION_MINOR)
     40 AC_SUBST(HB_VERSION_MICRO)
     41 AC_SUBST(HB_VERSION)
     42 
     43 # Libtool version
     44 m4_define([hb_version_int],
     45 	  m4_eval(hb_version_major*10000 + hb_version_minor*100 + hb_version_micro))
     46 m4_if(m4_eval(hb_version_minor % 2), [1],
     47       dnl for unstable releases
     48       [m4_define([hb_libtool_revision], 0)],
     49       dnl for stable releases
     50       [m4_define([hb_libtool_revision], hb_version_micro)])
     51 m4_define([hb_libtool_age],
     52 	  m4_eval(hb_version_int - hb_libtool_revision))
     53 m4_define([hb_libtool_current],
     54 	  m4_eval(hb_libtool_age))
     55 HB_LIBTOOL_VERSION_INFO=hb_libtool_current:hb_libtool_revision:hb_libtool_age
     56 AC_SUBST(HB_LIBTOOL_VERSION_INFO)
     57 
     58 # Documentation
     59 have_gtk_doc=false
     60 m4_ifdef([GTK_DOC_CHECK], [
     61 GTK_DOC_CHECK([1.15],[--flavour no-tmpl])
     62 	if test "x$enable_gtk_doc" = xyes; then
     63 		have_gtk_doc=true
     64 	fi
     65 ], [
     66 	AM_CONDITIONAL([ENABLE_GTK_DOC], false)
     67 ])
     68 
     69 # Functions and headers
     70 AC_CHECK_FUNCS(atexit mprotect sysconf getpagesize mmap isatty)
     71 AC_CHECK_HEADERS(unistd.h sys/mman.h)
     72 
     73 # Compiler flags
     74 AC_CANONICAL_HOST
     75 AC_CHECK_ALIGNOF([struct{char;}])
     76 if test "x$GCC" = "xyes"; then
     77 
     78 	# Make symbols link locally
     79 	LDFLAGS="$LDFLAGS -Bsymbolic-functions"
     80 
     81 	# Make sure we don't link to libstdc++
     82 	CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions"
     83 
     84 	# Assorted warnings
     85 	CXXFLAGS="$CXXFLAGS -Wcast-align"
     86 
     87 	case "$host" in
     88 		*-*-mingw*)
     89 		;;
     90 		*)
     91 			# Hide inline methods
     92 			CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
     93 		;;
     94 	esac
     95 
     96 	case "$host" in
     97 		arm-*-*)
     98 			if test "x$ac_cv_alignof_struct_char__" != x1; then
     99 				# Request byte alignment
    100 				CXXFLAGS="$CXXFLAGS -mstructure-size-boundary=8"
    101 			fi
    102 		;;
    103 	esac
    104 fi
    105 
    106 AM_CONDITIONAL(HAVE_GCC, test "x$GCC" = "xyes")
    107 
    108 hb_os_win32=no
    109 AC_MSG_CHECKING([for native Win32])
    110 case "$host" in
    111   *-*-mingw*)
    112     hb_os_win32=yes
    113     ;;
    114 esac
    115 AC_MSG_RESULT([$hb_os_win32])
    116 AM_CONDITIONAL(OS_WIN32, test "$hb_os_win32" = "yes")
    117 
    118 have_pthread=false
    119 if test "$hb_os_win32" = no; then
    120 	AX_PTHREAD([have_pthread=true])
    121 fi
    122 if $have_pthread; then
    123 	AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads])
    124 fi
    125 AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread)
    126 
    127 dnl ==========================================================================
    128 
    129 have_ot=true
    130 if $have_ot; then
    131 	AC_DEFINE(HAVE_OT, 1, [Have native OpenType Layout backend])
    132 fi
    133 AM_CONDITIONAL(HAVE_OT, $have_ot)
    134 
    135 have_fallback=true
    136 if $have_fallback; then
    137 	AC_DEFINE(HAVE_FALLBACK, 1, [Have simple TrueType Layout backend])
    138 fi
    139 AM_CONDITIONAL(HAVE_FALLBACK, $have_fallback)
    140 
    141 dnl ===========================================================================
    142 
    143 AC_ARG_WITH(glib,
    144 	[AS_HELP_STRING([--with-glib=@<:@yes/no/auto@:>@],
    145 			[Use glib @<:@default=auto@:>@])],,
    146 	[with_glib=auto])
    147 have_glib=false
    148 GLIB_DEPS="glib-2.0 >= 2.16"
    149 AC_SUBST(GLIB_DEPS)
    150 if test "x$with_glib" = "xyes" -o "x$with_glib" = "xauto"; then
    151 	PKG_CHECK_MODULES(GLIB, $GLIB_DEPS, have_glib=true, :)
    152 fi
    153 if test "x$with_glib" = "xyes" -a "x$have_glib" != "xtrue"; then
    154 	AC_MSG_ERROR([glib support requested but glib-2.0 not found])
    155 fi
    156 if $have_glib; then
    157 	AC_DEFINE(HAVE_GLIB, 1, [Have glib2 library])
    158 fi
    159 AM_CONDITIONAL(HAVE_GLIB, $have_glib)
    160 
    161 dnl ===========================================================================
    162 
    163 AC_ARG_WITH(gobject,
    164 	[AS_HELP_STRING([--with-gobject=@<:@yes/no/auto@:>@],
    165 			[Use gobject @<:@default=auto@:>@])],,
    166 	[with_gobject=no])
    167 have_gobject=false
    168 if test "x$with_gobject" = "xyes" -o "x$with_gobject" = "xauto"; then
    169 	PKG_CHECK_MODULES(GOBJECT, gobject-2.0 glib-2.0, have_gobject=true, :)
    170 fi
    171 if test "x$with_gobject" = "xyes" -a "x$have_gobject" != "xtrue"; then
    172 	AC_MSG_ERROR([gobject support requested but gobject-2.0 / glib-2.0 not found])
    173 fi
    174 if $have_gobject; then
    175 	AC_DEFINE(HAVE_GOBJECT, 1, [Have gobject2 library])
    176 	GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
    177 	AC_SUBST(GLIB_MKENUMS)
    178 fi
    179 AM_CONDITIONAL(HAVE_GOBJECT, $have_gobject)
    180 
    181 dnl ===========================================================================
    182 
    183 
    184 dnl ===========================================================================
    185 # Gobject-Introspection
    186 have_introspection=false
    187 m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [
    188 	if $have_gobject; then
    189 		GOBJECT_INTROSPECTION_CHECK([1.34.0])
    190 		if test "x$found_introspection" = xyes; then
    191 			have_introspection=true
    192 		fi
    193 	else
    194 		AM_CONDITIONAL([HAVE_INTROSPECTION], false)
    195 	fi
    196 ], [
    197 	AM_CONDITIONAL([HAVE_INTROSPECTION], false)
    198 ])
    199 
    200 dnl ==========================================================================
    201 
    202 AC_ARG_WITH(cairo,
    203 	[AS_HELP_STRING([--with-cairo=@<:@yes/no/auto@:>@],
    204 			[Use cairo @<:@default=auto@:>@])],,
    205 	[with_cairo=auto])
    206 have_cairo=false
    207 if test "x$with_cairo" = "xyes" -o "x$with_cairo" = "xauto"; then
    208 	PKG_CHECK_MODULES(CAIRO, cairo >= 1.8.0, have_cairo=true, :)
    209 fi
    210 if test "x$with_cairo" = "xyes" -a "x$have_cairo" != "xtrue"; then
    211 	AC_MSG_ERROR([cairo support requested but not found])
    212 fi
    213 if $have_cairo; then
    214 	AC_DEFINE(HAVE_CAIRO, 1, [Have cairo graphics library])
    215 fi
    216 AM_CONDITIONAL(HAVE_CAIRO, $have_cairo)
    217 
    218 have_cairo_ft=false
    219 if $have_cairo; then
    220 	PKG_CHECK_MODULES(CAIRO_FT, cairo-ft, have_cairo_ft=true, :)
    221 fi
    222 if $have_cairo_ft; then
    223 	AC_DEFINE(HAVE_CAIRO_FT, 1, [Have cairo-ft support in cairo graphics library])
    224 fi
    225 AM_CONDITIONAL(HAVE_CAIRO_FT, $have_cairo_ft)
    226 
    227 dnl ==========================================================================
    228 
    229 AC_ARG_WITH(fontconfig,
    230 	[AS_HELP_STRING([--with-fontconfig=@<:@yes/no/auto@:>@],
    231 			[Use fontconfig @<:@default=auto@:>@])],,
    232 	[with_fontconfig=auto])
    233 have_fontconfig=false
    234 if test "x$with_fontconfig" = "xyes" -o "x$with_fontconfig" = "xauto"; then
    235 	PKG_CHECK_MODULES(FONTCONFIG, fontconfig, have_fontconfig=true, :)
    236 fi
    237 if test "x$with_fontconfig" = "xyes" -a "x$have_fontconfig" != "xtrue"; then
    238 	AC_MSG_ERROR([fontconfig support requested but not found])
    239 fi
    240 if $have_fontconfig; then
    241 	AC_DEFINE(HAVE_FONTCONFIG, 1, [Have fontconfig library])
    242 fi
    243 AM_CONDITIONAL(HAVE_FONTCONFIG, $have_fontconfig)
    244 
    245 dnl ==========================================================================
    246 
    247 AC_ARG_WITH(icu,
    248 	[AS_HELP_STRING([--with-icu=@<:@yes/no/builtin/auto@:>@],
    249 			[Use ICU @<:@default=auto@:>@])],,
    250 	[with_icu=auto])
    251 have_icu=false
    252 if test "x$with_icu" = "xyes" -o "x$with_icu" = "xbuiltin" -o "x$with_icu" = "xauto"; then
    253 	PKG_CHECK_MODULES(ICU, icu-uc, have_icu=true, :)
    254 
    255 	dnl Fallback to icu-config if ICU pkg-config files could not be found
    256 	if test "$have_icu" != "true"; then
    257 		AC_CHECK_TOOL(ICU_CONFIG, icu-config, no)
    258 		AC_MSG_CHECKING([for ICU by using icu-config fallback])
    259 		if test "$ICU_CONFIG" != "no" && "$ICU_CONFIG" --version >/dev/null; then
    260 			have_icu=true
    261 			# We don't use --cflags as this gives us a lot of things that we don't
    262 			# necessarily want, like debugging and optimization flags
    263 			# See man (1) icu-config for more info.
    264 			ICU_CFLAGS=`$ICU_CONFIG --cppflags`
    265 			ICU_LIBS=`$ICU_CONFIG --ldflags-searchpath --ldflags-libsonly`
    266 			AC_SUBST(ICU_CFLAGS)
    267 			AC_SUBST(ICU_LIBS)
    268 			AC_MSG_RESULT([yes])
    269 		else
    270 			AC_MSG_RESULT([no])
    271 		fi
    272 	fi
    273 fi
    274 if test \( "x$with_icu" = "xyes" -o "x$with_icu" = "xbuiltin" \) -a "x$have_icu" != "xtrue"; then
    275 	AC_MSG_ERROR([icu support requested but icu-uc not found])
    276 fi
    277 
    278 if $have_icu; then
    279 	CXXFLAGS="$CXXFLAGS `$PKG_CONFIG --variable=CXXFLAGS icu-uc`"
    280 	AC_DEFINE(HAVE_ICU, 1, [Have ICU library])
    281 	if test "x$with_icu" = "xbuiltin"; then
    282 		AC_DEFINE(HAVE_ICU_BUILTIN, 1, [Use hb-icu Unicode callbacks])
    283 	fi
    284 fi
    285 AM_CONDITIONAL(HAVE_ICU, $have_icu)
    286 AM_CONDITIONAL(HAVE_ICU_BUILTIN, $have_icu && test "x$with_icu" = "xbuiltin")
    287 
    288 dnl ===========================================================================
    289 
    290 have_ucdn=true
    291 if $have_glib || $have_icu && test "x$with_icu" = "xbuiltin"; then
    292 	have_ucdn=false
    293 fi
    294 if $have_ucdn; then
    295 	AC_DEFINE(HAVE_UCDN, 1, [Have UCDN Unicode functions])
    296 fi
    297 AM_CONDITIONAL(HAVE_UCDN, $have_ucdn)
    298 
    299 dnl ==========================================================================
    300 
    301 AC_ARG_WITH(graphite2,
    302 	[AS_HELP_STRING([--with-graphite2=@<:@yes/no/auto@:>@],
    303 			[Use the graphite2 library @<:@default=no@:>@])],,
    304 	[with_graphite2=no])
    305 have_graphite2=false
    306 GRAPHITE2_DEPS="graphite2"
    307 AC_SUBST(GRAPHITE2_DEPS)
    308 if test "x$with_graphite2" = "xyes" -o "x$with_graphite2" = "xauto"; then
    309 	PKG_CHECK_MODULES(GRAPHITE2, $GRAPHITE2_DEPS, have_graphite2=true, :)
    310 fi
    311 if test "x$with_graphite2" = "xyes" -a "x$have_graphite2" != "xtrue"; then
    312 	AC_MSG_ERROR([graphite2 support requested but libgraphite2 not found])
    313 fi
    314 if $have_graphite2; then
    315 	AC_DEFINE(HAVE_GRAPHITE2, 1, [Have Graphite2 library])
    316 fi
    317 AM_CONDITIONAL(HAVE_GRAPHITE2, $have_graphite2)
    318 
    319 dnl ==========================================================================
    320 
    321 AC_ARG_WITH(freetype,
    322 	[AS_HELP_STRING([--with-freetype=@<:@yes/no/auto@:>@],
    323 			[Use the FreeType library @<:@default=auto@:>@])],,
    324 	[with_freetype=auto])
    325 have_freetype=false
    326 FREETYPE_DEPS="freetype2 >= 12.0.6"
    327 AC_SUBST(FREETYPE_DEPS)
    328 if test "x$with_freetype" = "xyes" -o "x$with_freetype" = "xauto"; then
    329 	# See freetype/docs/VERSION.DLL; 12.0.6 means freetype-2.4.2
    330 	PKG_CHECK_MODULES(FREETYPE, $FREETYPE_DEPS, have_freetype=true, :)
    331 fi
    332 if test "x$with_freetype" = "xyes" -a "x$have_freetype" != "xtrue"; then
    333 	AC_MSG_ERROR([FreeType support requested but libfreetype2 not found])
    334 fi
    335 if $have_freetype; then
    336 	AC_DEFINE(HAVE_FREETYPE, 1, [Have FreeType 2 library])
    337 fi
    338 AM_CONDITIONAL(HAVE_FREETYPE, $have_freetype)
    339 
    340 dnl ===========================================================================
    341 
    342 AC_ARG_WITH(uniscribe,
    343 	[AS_HELP_STRING([--with-uniscribe=@<:@yes/no/auto@:>@],
    344 			[Use the Uniscribe library @<:@default=no@:>@])],,
    345 	[with_uniscribe=no])
    346 have_uniscribe=false
    347 if test "x$with_uniscribe" = "xyes" -o "x$with_uniscribe" = "xauto"; then
    348 	AC_CHECK_HEADERS(usp10.h windows.h, have_uniscribe=true)
    349 fi
    350 if test "x$with_uniscribe" = "xyes" -a "x$have_uniscribe" != "xtrue"; then
    351 	AC_MSG_ERROR([uniscribe support requested but not found])
    352 fi
    353 if $have_uniscribe; then
    354 	UNISCRIBE_CFLAGS=
    355 	UNISCRIBE_LIBS="-lusp10 -lgdi32 -lrpcrt4"
    356 	AC_SUBST(UNISCRIBE_CFLAGS)
    357 	AC_SUBST(UNISCRIBE_LIBS)
    358 	AC_DEFINE(HAVE_UNISCRIBE, 1, [Have Uniscribe library])
    359 fi
    360 AM_CONDITIONAL(HAVE_UNISCRIBE, $have_uniscribe)
    361 
    362 dnl ===========================================================================
    363 
    364 AC_ARG_WITH(directwrite,
    365 	[AS_HELP_STRING([--with-directwrite=@<:@yes/no/auto@:>@],
    366 			[Use the DirectWrite library (experimental) @<:@default=no@:>@])],,
    367 	[with_directwrite=no])
    368 have_directwrite=false
    369 AC_LANG_PUSH([C++])
    370 if test "x$with_directwrite" = "xyes" -o "x$with_directwrite" = "xauto"; then
    371 	AC_CHECK_HEADERS(dwrite.h, have_directwrite=true)
    372 fi
    373 AC_LANG_POP([C++])
    374 if test "x$with_directwrite" = "xyes" -a "x$have_directwrite" != "xtrue"; then
    375 	AC_MSG_ERROR([directwrite support requested but not found])
    376 fi
    377 if $have_directwrite; then
    378 	DIRECTWRITE_CXXFLAGS=
    379 	DIRECTWRITE_LIBS="-ldwrite"
    380 	AC_SUBST(DIRECTWRITE_CXXFLAGS)
    381 	AC_SUBST(DIRECTWRITE_LIBS)
    382 	AC_DEFINE(HAVE_DIRECTWRITE, 1, [Have DirectWrite library])
    383 fi
    384 AM_CONDITIONAL(HAVE_DIRECTWRITE, $have_directwrite)
    385 
    386 dnl ===========================================================================
    387 
    388 AC_ARG_WITH(coretext,
    389 	[AS_HELP_STRING([--with-coretext=@<:@yes/no/auto@:>@],
    390 			[Use CoreText @<:@default=no@:>@])],,
    391 	[with_coretext=no])
    392 have_coretext=false
    393 if test "x$with_coretext" = "xyes" -o "x$with_coretext" = "xauto"; then
    394 	AC_CHECK_TYPE(CTFontRef, have_coretext=true,, [#include <ApplicationServices/ApplicationServices.h>])
    395 
    396 	if $have_coretext; then
    397 		CORETEXT_CFLAGS=
    398 		CORETEXT_LIBS="-framework ApplicationServices"
    399 		AC_SUBST(CORETEXT_CFLAGS)
    400 		AC_SUBST(CORETEXT_LIBS)
    401 	else
    402 		# On iOS CoreText and CoreGraphics are stand-alone frameworks
    403 		if test "x$have_coretext" != "xtrue"; then
    404 			AC_CHECK_TYPE(CTFontRef, have_coretext=true,, [#include <CoreText/CoreText.h>])
    405 		fi
    406 
    407 		if $have_coretext; then
    408 			CORETEXT_CFLAGS=
    409 			CORETEXT_LIBS="-framework CoreText -framework CoreGraphics"
    410 			AC_SUBST(CORETEXT_CFLAGS)
    411 			AC_SUBST(CORETEXT_LIBS)
    412 		fi
    413 	fi
    414 fi
    415 if test "x$with_coretext" = "xyes" -a "x$have_coretext" != "xtrue"; then
    416 	AC_MSG_ERROR([CoreText support requested but libcoretext not found])
    417 fi
    418 if $have_coretext; then
    419 	AC_DEFINE(HAVE_CORETEXT, 1, [Have Core Text backend])
    420 fi
    421 AM_CONDITIONAL(HAVE_CORETEXT, $have_coretext)
    422 
    423 dnl ===========================================================================
    424 
    425 AC_CACHE_CHECK([for Intel atomic primitives], hb_cv_have_intel_atomic_primitives, [
    426 	hb_cv_have_intel_atomic_primitives=false
    427 	AC_TRY_LINK([
    428 		void memory_barrier (void) { __sync_synchronize (); }
    429 		int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); }
    430 		int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); }
    431 		void mutex_unlock (int *m) { __sync_lock_release (m); }
    432 		], [], hb_cv_have_intel_atomic_primitives=true
    433 	)
    434 ])
    435 if $hb_cv_have_intel_atomic_primitives; then
    436 	AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
    437 fi
    438 
    439 dnl ===========================================================================
    440 
    441 AC_CACHE_CHECK([for Solaris atomic operations], hb_cv_have_solaris_atomic_ops, [
    442 	hb_cv_have_solaris_atomic_ops=false
    443 	AC_TRY_LINK([
    444 		#include <atomic.h>
    445 		/* This requires Solaris Studio 12.2 or newer: */
    446 		#include <mbarrier.h>
    447 		void memory_barrier (void) { __machine_rw_barrier (); }
    448 		int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); }
    449 		void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); }
    450 		], [], hb_cv_have_solaris_atomic_ops=true
    451 	)
    452 ])
    453 if $hb_cv_have_solaris_atomic_ops; then
    454 	AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations])
    455 fi
    456 
    457 if test "$os_win32" = no && ! $have_pthread; then
    458 	AC_CHECK_HEADERS(sched.h)
    459 	AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield]))
    460 fi
    461 
    462 dnl ===========================================================================
    463 
    464 AC_CONFIG_FILES([
    465 Makefile
    466 src/Makefile
    467 src/hb-version.h
    468 src/hb-ucdn/Makefile
    469 util/Makefile
    470 test/Makefile
    471 test/api/Makefile
    472 test/fuzzing/Makefile
    473 test/shaping/Makefile
    474 docs/Makefile
    475 docs/version.xml
    476 win32/Makefile
    477 win32/config.h.win32
    478 ])
    479 
    480 AC_OUTPUT
    481 
    482 AC_MSG_NOTICE([
    483 
    484 Build configuration:
    485 
    486 Unicode callbacks (you want at least one):
    487 	Glib:			${have_glib}
    488 	ICU:			${have_icu}
    489 	UCDN:			${have_ucdn}
    490 
    491 Font callbacks (the more the better):
    492 	FreeType:		${have_freetype}
    493 
    494 Tools used for command-line utilities:
    495 	Cairo:			${have_cairo}
    496 	Fontconfig:		${have_fontconfig}
    497 
    498 Additional shapers (the more the better):
    499 	Graphite2:		${have_graphite2}
    500 
    501 Platform shapers (not normally needed):
    502 	CoreText:		${have_coretext}
    503 	Uniscribe:		${have_uniscribe}
    504 	DirectWrite:		${have_directwrite}
    505 
    506 Other features:
    507 	Documentation:		${have_gtk_doc}
    508 	GObject bindings:	${have_gobject}
    509 	Introspection:		${have_introspection}
    510 ])
    511