Fix typo (pkg-conifg ->pkg-config).
[m17n/m17n-lib.git] / configure.ac
index aa89e21..e1119e8 100644 (file)
@@ -23,8 +23,8 @@ dnl 02111-1307, USA.
 
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT(m17n-lib, 1.0, m17n-lib-bug@m17n.org)
-AM_INIT_AUTOMAKE(m17n-lib, 1.0)
+AC_INIT(m17n-lib, 1.1.0, m17n-lib-bug@m17n.org)
+AM_INIT_AUTOMAKE(m17n-lib, 1.1.0)
 AM_CONFIG_HEADER(src/config.h)
 
 # Checks for programs for compiling.
@@ -65,52 +65,73 @@ AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
 AC_CHECK_FUNCS(strchr strdup gettimeofday)
 
 # Check several libraries without adding -lxxx to LIBS, without
-# defining HAVE_LIBXXX nor HAVE_XXX_H.  Instead, define XXX_LD_FLAGS
-# and HAVE_XXX if library XXX is available.
+# defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only for
+# libm17-X.so.  Instead, define XXX_LD_FLAGS and HAVE_XXX if library
+# XXX is available.  CPPFLAGS will be augmented.
 
 # Check for fribidi library.
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
+AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
+if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
+  CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
+  FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
+  LIBS="$LIBS $FRIBIDI_LD_FLAGS"
+else
+  FRIBIDI_LD_FLAGS=-lfribidi
+fi
 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
 if test "x$HAVE_FRIBIDI" = "xyes"; then
   AC_DEFINE(HAVE_FRIBIDI, 1, 
            [Define to 1 if you have Fribidi library and header file.])
-  FRIBIDI_LD_FLAGS="-lfribidi";
+else
+  CPPFLAGS="$save_CPPFLAGS"
+  FRIBIDI_LD_FLAGS=
 fi
+LIBS="$save_LIBS"
 AC_SUBST(FRIBIDI_LD_FLAGS)
 
 # Check for otflib usability.
-AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
-save_CPPFLAGS=$CPPFLAGS
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
-  OTFLIB_INC=`libotf-config --cflags`
-  CPPFLAGS="$CPPFLAGS $OTFLIB_INC"
+  CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
+  OTF_LD_FLAGS="`libotf-config --libs`  "
+  LIBS="$LIBS $OTF_LD_FLAGS"
+else
+  OTF_LD_FLAGS=-lotf
 fi
+AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
-CPPFLAGS=$save_CPPFLAGS
+CPPFLAGS="$save_CPPFLAGS"
 if test "x$HAVE_OTF" = "xyes"; then
   AC_DEFINE(HAVE_OTF, 1, 
            [Define to 1 if you have OTF library and header file.])
-  OTF_LD_FLAGS="-lotf";
+else
+  CPPFLAGS="$save_CPPFLAGS"
+  OTF_LD_FLAGS=
 fi
+LIBS="$save_LIBS"
 AC_SUBST(OTF_LD_FLAGS)
 
 # Check for Freetype2 usability.
 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
   FREETYPE_INC=`freetype-config --cflags`
-  save_CPPFLAGS=$CPPFLAGS
+  save_CPPFLAGS="$CPPFLAGS"
   CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
   AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
-                             HAVE_FREETYPE=no CPPFLAGS=$save_CPPFLAGS)
+                             HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
   if test "x$HAVE_FREETYPE" = "xyes" ; then
-    FREETYPE_LD_FLAGS=`freetype-config --libs`;
-    save_LIBS=$LIBS
-    LIBS="$LIBS $FREETYPE_LD_FLAGS"
+    save_LIBS="$LIBS"
+    LIBS="$LIBS `freetype-config --libs`"
     AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
                                             HAVE_FREETYPE=no)
-    LIBS=$save_LIBS
+    LIBS="$save_LIBS"
     if test "x$HAVE_FREETYPE" = "xyes"; then
+      FREETYPE_LD_FLAGS=`freetype-config --libtool`
       AC_DEFINE(HAVE_FREETYPE, 1, 
                [Define to 1 if you have FreeType library and header file.])
     fi
@@ -118,20 +139,82 @@ if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
 fi
 AC_SUBST(FREETYPE_LD_FLAGS)
 
+# Check for Xft2 usability.
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
+AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
+if test "x$HAVE_XFT_CONFIG" = "xyes"; then
+  CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
+  XFT2_LD_FLAGS="`xft-config --libs`"
+  LIBS="$LIBS $XFT2_LD_FLAGS"
+else
+  XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
+fi
+AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
+AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no, 
+               [#include <X11/Xft/Xft.h>
+#if XftVersion >= 20000
+#else
+Version too old.  Compiling this line should fail.
+#endif])
+if test "x$HAVE_XFT2" = "xyes"; then
+  AC_DEFINE(HAVE_XFT2, 1,
+           [Define to 1 if you have Xft2 library and header file.])
+else
+  CPPFLAGS="$save_CPPFLAGS"
+fi
+LIBS="$save_LIBS"
+AC_SUBST(XFT2_LD_FLAGS)
+
+# Check for fontconfig usability.
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
+if test "x$HAVE_XFT2" = "xyes"; then
+  HAVE_FONTCONFIG=yes
+else
+  AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
+  FONTCONFIG_LD_FLAGS=-lfontconfig
+  if test "x$HAVE_PKG_CONFIG" = "xyes"; then
+    if pkg-config --exists fontconfig; then
+      CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
+      FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
+      LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
+    fi
+  fi
+  AC_CHECK_LIB(fontconfig, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
+  AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
+fi
+if test "x$HAVE_FONTCONFIG" = "xyes"; then
+  AC_DEFINE(HAVE_FONTCONFIG, 1,
+             [Define to 1 if you have fontconfig library and header file.])
+else
+  FONTCONFIG_LD_FLAGS=
+  CPPFLAGS="$save_CPPFLAGS"
+fi
+LIBS="$save_LIBS"
+AC_SUBST(FONTCONFIG_LD_FLAGS)
+
 # Check for libxml2 usability.
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
+AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
+if test "x$HAVE_XML2_CONFIG" = "xyes"; then
+  CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
+  XML2_LD_FLAGS="`xml2-config --libs`"
+  LIBS="$LIBS $XML2_LD_FLAGS"
+else
+  CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
+  XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
+fi
 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
+AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
 if test "x$HAVE_XML2" = "xyes"; then
-  save_CPPFLAGS=$CPPFLAGS
-  CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
-  AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
-  if test "x$HAVE_XML2" = "xyes"; then
-    AC_DEFINE(HAVE_XML2, 1,
-             [Define to 1 if you have libxml2 library and header file])
-    XML2_LD_FLAGS="-lxml2"
-  else
-    CPPFLAGS=$save_CPPFLAGS
-  fi
+  AC_DEFINE(HAVE_XML2, 1,
+           [Define to 1 if you have libxml2 library and header file])
+else
+  CPPFLAGS="$save_CPPFLAGS"
 fi
+LIBS="$save_LIBS"
 AC_SUBST(XML2_LD_FLAGS)
 
 # Check for Anthy usability.
@@ -173,19 +256,9 @@ if test "x$HAVE_WORDCUT" = "xyes"; then
 fi
 AC_SUBST(WORDCUT_LD_FLAGS)
 
-AC_ARG_ENABLE(xom, 
-             [  --enable-xom            build and install XOM library.],
-             XOM="$enableval")
-
-AC_ARG_WITH(efence,
-           [  --with-efence           build example programs with efence.],
-           EFENCE="$withval")
-AC_CHECK_LIB(efence, malloc, HAVE_EFENCE=yes)
-
-if test "x$EFENCE" = "xyes" && test "x$HAVE_EFENCE" = "xyes"; then
-  EFENCE_LIB=-lefence
-fi
-AC_SUBST(EFENCE_LIB)
+dnl AC_ARG_ENABLE(xom, 
+dnl          [  --enable-xom            build and install XOM library.],
+dnl          XOM="$enableval")
 
 case $host_os in
 darwin* | rhapsody*)
@@ -199,9 +272,9 @@ AC_CONFIG_FILES([Makefile
                 m17n-config
                 ])
 
-if test "x$XOM" = "xyes"; then
-  AC_CONFIG_FILES(omM17N/Makefile)
-fi
+dnl if test "x$XOM" = "xyes"; then
+dnl  AC_CONFIG_FILES(omM17N/Makefile)
+dnl fi
 
 AC_OUTPUT