summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Lam <plam@MIT.EDU>2006-04-25 15:33:07 +0000
committerPatrick Lam <plam@MIT.EDU>2006-04-25 15:33:07 +0000
commit73775d8f28bd8f5c40b524fe1ede63d3dfaff171 (patch)
treed0bd3b2edff2da05ba51603cb1b047d6f9b149d6
parent49512317264da1996bddf0b3c82d8d2de0c201eb (diff)
Fix the issues with GNU libiconv vs. libc iconv (which especially appear on
Solarii). Approach suggested by Tim Mooney. reviewed by: plam
-rw-r--r--ChangeLog12
-rw-r--r--configure.in37
-rw-r--r--src/Makefile.am2
-rw-r--r--src/fcfreetype.c3
4 files changed, 48 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c0a366d..2b990bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,4 @@
-2006-04-24 Patrick Lam <plam@mit.edu>
+2006-04-25 Patrick Lam <plam@mit.edu>
* ChangeLog:
* README:
* configure.in:
@@ -6,6 +6,16 @@
Bump version to 2.3.95.
+2006-04-25 Behdad Esfahbod <behdad@cs.toronto.edu>
+ reviewed by: plam
+
+ * configure.in:
+ * src/Makefile.am:
+ * src/fcfreetype.c:
+
+ Fix the issues with GNU libiconv vs. libc iconv (which especially
+ appear on Solarii). Approach suggested by Tim Mooney.
+
2006-04-24 Dominic Lachowicz <cinamod@hotmail.com>
reviewed by: plam
diff --git a/configure.in b/configure.in
index 884bbe8..acdc1f1 100644
--- a/configure.in
+++ b/configure.in
@@ -135,7 +135,7 @@ dnl ==========================================================================
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h iconv.h])
+AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@@ -145,7 +145,40 @@ AC_TYPE_PID_T
# Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MMAP
-AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long iconv sysconf ftruncate chsize rand_r])
+AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand_r])
+
+#
+# Checks for iconv
+#
+AC_MSG_CHECKING([for a usable iconv])
+ICONV_LIBS=""
+AC_TRY_LINK([#include <iconv.h>],
+ [iconv_open ("from", "to");],
+ [use_iconv=1],
+ [use_iconv=0])
+if test x$use_iconv = x1; then
+ AC_MSG_RESULT([libc])
+else
+ # try using libiconv
+ fontconfig_save_libs="$LIBS"
+ LIBS="$LIBS -liconv"
+
+ AC_TRY_LINK([#include <iconv.h>],
+ [iconv_open ("from", "to");],
+ [use_iconv=true],
+ [use_iconv=false])
+
+ if test x$use_iconv = x1; then
+ ICONV_LIBS="-liconv"
+ AC_MSG_RESULT([libiconv])
+ else
+ AC_MSG_RESULT([no])
+ fi
+
+ LIBS="$fontconfig_save_libs"
+fi
+AC_SUBST(ICONV_LIBS)
+AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
#
# Checks for FreeType
diff --git a/src/Makefile.am b/src/Makefile.am
index 750b8d2..01c9c5e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -106,7 +106,7 @@ lib_LTLIBRARIES = libfontconfig.la
libfontconfig_la_LDFLAGS = \
-version-info @LT_VERSION_INFO@ -no-undefined $(export_symbols)
-libfontconfig_la_LIBADD = $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS)
+libfontconfig_la_LIBADD = $(ICONV_LIBS) $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS)
install-data-local: install-ms-import-lib install-libtool-import-lib
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index f31aef8..9eb591e 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -554,8 +554,7 @@ FcFontCapabilities(FT_Face face);
#define NUM_FC_MAC_ROMAN_FAKE (int) (sizeof (fcMacRomanFake) / sizeof (fcMacRomanFake[0]))
-#if HAVE_ICONV && HAVE_ICONV_H
-#define USE_ICONV 1
+#if USE_ICONV
#include <iconv.h>
#endif