Building Pango with uninstalled Cairo



Hi,

4 years ago, Pango is set to ignore the built-but-not-installed
cairo, by following changeset.

commit 08247583a00f69914682ba1807e4e377b6a98e48
Author: Behdad Esfahbod <behdad gnome org>
Date:   Mon Jan 16 10:28:12 2006 +0000

    Fixes bug #314675, Brian Cameron.
    
    2006-01-16  Behdad Esfahbod  <behdad gnome org>
    
            Fixes bug #314675, Brian Cameron.
    
            * configure.in: Handle uninstalled cairo.
    
            * pangocairo-uninstalled.pc.in: Fix typo: libpangoxft->libpangocairo.

At that time, the font backend of cairo (win32/ft/atsui)
were checked by AC_CHECK_LIB(), by testing if the function
cairo_win32_scaled_font_select_font() etc exists in libcairo.

AC_CHECK_LIB() is not ready for libtool, so,
when "pkg-config --libs cairo" returns the path of uninstalled
libtool library (this is popular design of uninstalled pkg-config file),
the native linking command

$(CC) -o conftest conftest.c ../xxx/libcairo.la

always fails, because native C compiler cannot handle libtool
library.

So, Brian Cameron's fix is simply disabling the uninstalled
cairo, like this:

    --- pango-1.10.0/configure.in	2005-08-16 00:05:15.000000000 +0100
    +++ pango-1.10.0/configure.in.new	2005-08-26 16:32:36.238282952 +0100
    @@ -281,7 +281,9 @@
        
     if $have_cairo ; then
       pango_save_ldflags=$LDFLAGS
    -  LDFLAGS="$LDFLAGS $CAIRO_LIBS"
    +  m4_pattern_allow([PKG_CONFIG_DISABLE_UNINSTALLED])
    +  INSTALLED_CAIRO_LIBS=`PKG_CONFIG_DISABLE_UNINSTALLED=yes $PKG_CONFIG --libs cairo`
    +  LDFLAGS="$LDFLAGS $INSTALLED_CAIRO_LIBS"
       AC_CHECK_LIB(cairo, cairo_win32_scaled_font_select_font, have_cairo_win32=true, :)
       if $have_cairo_win32 && $have_win32; then
         AC_DEFINE(HAVE_CAIRO_WIN32, 1, [Whether Cairo uses the Win32 GDI for fonts])
    

But, now, configure.in of Pango does not use AC_CHECK_LIB().
It checks the font backend of cairo by only pkg-config, like,

  if $have_win32; then
    PKG_CHECK_EXISTS(cairo-win32 >= $cairo_required, have_cairo_win32=true, :)
  fi
  if $have_cairo_win32; then
    AC_DEFINE(HAVE_CAIRO_WIN32, 1, [Whether Cairo can use the Win32 GDI for fonts])
    cairo_font_backends="win32 $cairo_font_backends"
    have_cairo=true
  fi

So, there's no need to exclude uninstalled cairo anymore.
Either, "INSTALLED_CAIRO_LIBS" are not required.
I propose following patch to re-enable building Pango with
built-but-not-installed cairo. Behdad, could you review?

Regards,
mpsuzuki


diff --git a/configure.in b/configure.in
index 493f86b..1097228 100644
--- a/configure.in
+++ b/configure.in
@@ -368,12 +368,10 @@ cairo_required=1.7.6
 PKG_CHECK_MODULES(CAIRO, cairo >= $cairo_required, have_cairo=true, AC_MSG_RESULT([no]))
    
 if $have_cairo ; then
-  m4_pattern_allow([PKG_CONFIG_DISABLE_UNINSTALLED])
-  INSTALLED_CAIRO_LIBS=`PKG_CONFIG_DISABLE_UNINSTALLED=yes $PKG_CONFIG --libs cairo`
   pango_save_libs=$LIBS
-  LIBS="$LIBS $INSTALLED_CAIRO_LIBS"
+  LIBS="$LIBS $CAIRO_LIBS"
   pango_save_ldflags=$LDFLAGS
-  LDFLAGS="$LDFLAGS $INSTALLED_CAIRO_LIBS"
+  LDFLAGS="$LDFLAGS $CAIRO_LIBS"
 
   have_cairo=false
   cairo_font_backends=""



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]