Upgrade to latest harfbuzz
[framework/uifw/harfbuzz.git] / configure.ac
index 372c9f2..2fb058f 100644 (file)
@@ -1,6 +1,6 @@
 AC_PREREQ([2.64])
 AC_INIT([harfbuzz],
-        [0.6.0],
+        [0.9.0],
         [http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
         [harfbuzz],
         [http://harfbuzz.org/])
@@ -11,15 +11,15 @@ AC_CONFIG_HEADERS([config.h])
 AM_INIT_AUTOMAKE([1.11.1 gnu dist-bzip2 no-dist-gzip -Wall no-define])
 AM_SILENT_RULES([yes])
 
+# Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT([disable-static])
+
 # Check for programs
 AC_PROG_CC
 AM_PROG_CC_C_O
 AC_PROG_CXX
 
-# Initialize libtool
-LT_PREREQ([2.2])
-LT_INIT([disable-static])
-
 # Version
 m4_define(hb_version_triplet,m4_split(AC_PACKAGE_VERSION,[[.]]))
 m4_define(hb_version_major,m4_argn(1,hb_version_triplet))
@@ -49,9 +49,11 @@ m4_define([hb_libtool_current],
 HB_LIBTOOL_VERSION_INFO=hb_libtool_current:hb_libtool_revision:hb_libtool_age
 AC_SUBST(HB_LIBTOOL_VERSION_INFO)
 
+dnl GTK_DOC_CHECK([1.15],[--flavour no-tmpl])
+
 # Functions and headers
-AC_CHECK_FUNCS(mprotect sysconf getpagesize mmap)
-AC_CHECK_HEADERS(unistd.h sys/mman.h)
+AC_CHECK_FUNCS(atexit mprotect sysconf getpagesize sched_yield mmap _setmode isatty)
+AC_CHECK_HEADERS(unistd.h sys/mman.h sched.h io.h)
 
 # Compiler flags
 AC_CANONICAL_HOST
@@ -73,13 +75,34 @@ fi
 
 dnl ==========================================================================
 
+have_ot=true
+if $have_ot; then
+       AC_DEFINE(HAVE_OT, 1, [Have native OpenType Layout backend])
+fi
+AM_CONDITIONAL(HAVE_OT, $have_ot)
+
+dnl ===========================================================================
+
 PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, have_glib=true, have_glib=false)
-PKG_CHECK_MODULES(GTHREAD, gthread-2.0, , have_glib=false)
 if $have_glib; then
        AC_DEFINE(HAVE_GLIB, 1, [Have glib2 library])
 fi
 AM_CONDITIONAL(HAVE_GLIB, $have_glib)
 
+PKG_CHECK_MODULES(GTHREAD, gthread-2.0, have_gthread=true, have_gthread=false)
+if $have_gthread; then
+       AC_DEFINE(HAVE_GTHREAD, 1, [Have gthread2 library])
+fi
+AM_CONDITIONAL(HAVE_GTHREAD, $have_gthread)
+
+PKG_CHECK_MODULES(GOBJECT, gobject-2.0 glib-2.0 >= 2.16, have_gobject=true, have_gobject=false)
+if $have_gobject; then
+       AC_DEFINE(HAVE_GOBJECT, 1, [Have gobject2 library])
+       GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+       AC_SUBST(GLIB_MKENUMS)
+fi
+AM_CONDITIONAL(HAVE_GOBJECT, $have_gobject)
+
 dnl ==========================================================================
 
 PKG_CHECK_MODULES(CAIRO, cairo >= 1.8.0, have_cairo=true, have_cairo=false)
@@ -88,12 +111,6 @@ if $have_cairo; then
 fi
 AM_CONDITIONAL(HAVE_CAIRO, $have_cairo)
 
-PKG_CHECK_MODULES(CAIRO_PNG, cairo-png, have_cairo_png=true, have_cairo_png=false)
-if $have_cairo_png; then
-       AC_DEFINE(HAVE_CAIRO_PNG, 1, [Have cairo-png support in cairo graphics library])
-fi
-AM_CONDITIONAL(HAVE_CAIRO_PNG, $have_cairo_png)
-
 PKG_CHECK_MODULES(CAIRO_FT, cairo-ft, have_cairo_ft=true, have_cairo_ft=false)
 if $have_cairo_ft; then
        AC_DEFINE(HAVE_CAIRO_FT, 1, [Have cairo-ft support in cairo graphics library])
@@ -103,12 +120,21 @@ AM_CONDITIONAL(HAVE_CAIRO_FT, $have_cairo_ft)
 dnl ==========================================================================
 
 PKG_CHECK_MODULES(ICU, icu, have_icu=true, [
-       AC_CHECK_PROG([have_icu], [icu-config], [true], [false])
+       have_icu=true
+       AC_CHECK_HEADERS(unicode/uchar.h,, have_icu=false)
+       AC_MSG_CHECKING([for libicuuc])
+       LIBS_old=$LIBS
+       LIBS="$LIBS -licuuc"
+       AC_TRY_LINK([#include <unicode/uchar.h>],
+                   [u_getIntPropertyValue (0, (UProperty)0);],
+                   AC_MSG_RESULT(yes),
+                   AC_MSG_RESULT(no);have_icu=false)
+       LIBS=$LIBS_old
        if $have_icu; then
-               icu_cflags=`icu-config --cppflags`
-               icu_libs=`icu-config --ldflags-libsonly`
-               AC_SUBST(ICU_CFLAGS, [$icu_cflags])
-               AC_SUBST(ICU_LIBS, [$icu_libs])
+               ICU_CFLAGS=-D_REENTRANT
+               ICU_LIBS="-licuuc"
+               AC_SUBST(ICU_CFLAGS)
+               AC_SUBST(ICU_LIBS)
        fi
 ])
 if $have_icu; then
@@ -118,7 +144,15 @@ AM_CONDITIONAL(HAVE_ICU, $have_icu)
 
 dnl ==========================================================================
 
-PKG_CHECK_MODULES(FREETYPE, freetype2, have_freetype=true, have_freetype=false)
+PKG_CHECK_MODULES(GRAPHITE2, graphite2, have_graphite=true, have_graphite=false)
+if $have_graphite; then
+    AC_DEFINE(HAVE_GRAPHITE2, 1, [Have Graphite library])
+fi
+AM_CONDITIONAL(HAVE_GRAPHITE2, $have_graphite)
+
+dnl ==========================================================================
+
+PKG_CHECK_MODULES(FREETYPE, freetype2 >= 2.3.8, have_freetype=true, have_freetype=false)
 if $have_freetype; then
        AC_DEFINE(HAVE_FREETYPE, 1, [Have FreeType 2 library])
        _save_libs="$LIBS"
@@ -133,12 +167,42 @@ AM_CONDITIONAL(HAVE_FREETYPE, $have_freetype)
 
 dnl ===========================================================================
 
+AC_CHECK_HEADERS(usp10.h windows.h, have_uniscribe=true, have_uniscribe=false)
+if $have_uniscribe; then
+       UNISCRIBE_CFLAGS=
+       UNISCRIBE_LIBS="-lusp10 -lgdi32"
+       AC_SUBST(UNISCRIBE_CFLAGS)
+       AC_SUBST(UNISCRIBE_LIBS)
+       AC_DEFINE(HAVE_UNISCRIBE, 1, [Have Uniscribe backend])
+fi
+AM_CONDITIONAL(HAVE_UNISCRIBE, $have_uniscribe)
+
+dnl ===========================================================================
+
+AC_CACHE_CHECK([for Intel atomic primitives], hb_cv_have_intel_atomic_primitives, [
+       hb_cv_have_intel_atomic_primitives=false
+       AC_TRY_LINK([], [
+               void memory_barrier (void) { __sync_synchronize (); }
+               int atomic_add (int i) { return __sync_fetch_and_add (&i, 1); }
+               int atomic_cmpxchg (int *i, int *j, int *k) { return __sync_bool_compare_and_swap (&i, j, k); }
+               ], hb_cv_have_intel_atomic_primitives=true
+       )
+])
+if $hb_cv_have_intel_atomic_primitives; then
+       AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
+fi
+
+dnl ===========================================================================
+
 AC_CONFIG_FILES([
 Makefile
 harfbuzz.pc
 src/Makefile
 src/hb-version.h
+util/Makefile
 test/Makefile
+test/api/Makefile
+test/shaping/Makefile
 ])
 
 AC_OUTPUT