X-Git-Url: http://git.chise.org/gitweb/?p=m17n%2Fm17n-lib.git;a=blobdiff_plain;f=configure.ac;h=b9c12e63c5229da3f15fac912433cf51ac14686b;hp=3507d32569ac802a63953dad6f7ae73fd1000ce7;hb=HEAD;hpb=5a85ccb1e07cacd4bb6a9e1191c7c41fd2c27b1b diff --git a/configure.ac b/configure.ac index 3507d32..b9c12e6 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl configure.ac -- autoconf script for the m17n library. -dnl Copyright (C) 2003, 2004 +dnl Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 dnl National Institute of Advanced Industrial Science and Technology (AIST) dnl Registration Number H15PRO112 @@ -18,23 +18,40 @@ dnl Lesser General Public License for more details. dnl You should have received a copy of the GNU Lesser General Public dnl License along with the m17n library; if not, write to the Free -dnl Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -dnl 02111-1307, USA. +dnl Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. dnl Process this file with autoconf to produce a configure script. -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) +AC_INIT([m17n-lib],[1.6.4],[m17n-lib-bug@m17n.org]) +AC_CONFIG_MACRO_DIR([m4]) +AM_INIT_AUTOMAKE +AC_CONFIG_HEADERS([config.h]) +AM_MAINTAINER_MODE -API_VERSION=1:0:1 +API_VERSION=4:0:4 AC_SUBST(API_VERSION) +# The earliest version that this release has binary compatibility +# with. This is used for module locations. +M17N_BINARY_VERSION=1.0 + +M17N_MODULE_DIR="m17n/$M17N_BINARY_VERSION" +AC_SUBST(M17N_MODULE_DIR) + + dnl Checks for programs for compiling. AC_PROG_CC -AC_LIBTOOL_DLOPEN -AC_LIBLTDL_CONVENIENCE -AM_PROG_LIBTOOL +AC_GNU_SOURCE + +AM_GNU_GETTEXT +AM_GNU_GETTEXT_VERSION([0.17]) +GETTEXTDIR="$datadir/locale" +AC_SUBST(GETTEXTDIR) + +AC_PROG_LIBTOOL +dnl LT_PREREQ([2.2.4]) +dnl LT_INIT dnl Checks for X libraries. AC_PATH_XTRA @@ -45,6 +62,7 @@ AC_HEADER_DIRENT AC_HEADER_TIME AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \ string.h strings.h sys/time.h unistd.h]) +AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -77,12 +95,20 @@ else fi AC_SUBST(M17NDIR) +dnl Checks which levels of APIs should be compiled. + +AC_ARG_ENABLE(gui, + AS_HELP_STRING([--enable-gui],[enable GUI level APIs (default is YES)])) + +AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno) + +if test x$with_gui != xno; then dnl Checks if dlopen exists, and if it's in libc or libdl. AC_SEARCH_LIBS(dlopen, dl, AC_DEFINE(HAVE_DLOPEN, 1, - [Define to 1 if you have the funciton dlopen.])) + [Define to 1 if you have the function dlopen.])) dnl Check several libraries without adding -lxxx to LIBS, without dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by @@ -90,11 +116,31 @@ dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be dnl augmented. +M17N_EXT_LIBS= + +AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes) + +if test "x$no_x" != "xyes"; then + AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.]) + X11_LD_FLAGS="-lXt -lX11" + M17N_EXT_LIBS="$M17N_EXT_LIBS X11" + + if test "x$HAVE_XAW" = "xyes"; then + AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1, + [Define to 1 if you have the Xaw header files.]) + XAW_LD_FLAGS="-lXaw -lXmu" + CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H" + M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw" + fi +fi +AC_SUBST(X11_LD_FLAGS) +AC_SUBST(XAW_LD_FLAGS) + dnl 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 +if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`" FRIBIDI_LD_FLAGS="`fribidi-config --libs`" LIBS="$LIBS $FRIBIDI_LD_FLAGS" @@ -106,6 +152,7 @@ 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.]) + M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi" else CPPFLAGS="$save_CPPFLAGS" FRIBIDI_LD_FLAGS= @@ -114,27 +161,44 @@ LIBS="$save_LIBS" AC_SUBST(FRIBIDI_LD_FLAGS) dnl Check for otflib usability. -save_CPPFLAGS="$CPPFLAGS" -save_LIBS="$LIBS" -AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes) -if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then - CPPFLAGS="$CPPFLAGS `libotf-config --cflags`" - OTF_LD_FLAGS="`libotf-config --libs` " - LIBS="$LIBS $OTF_LD_FLAGS" -else +AC_ARG_WITH(libotf, + AS_HELP_STRING([--with-libotf],[with OpenType font suport (default is YES)])) + +if test "x$with_libotf" != "xno"; then + save_CPPFLAGS="$CPPFLAGS" + save_LIBS="$LIBS" + AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes) OTF_LD_FLAGS=-lotf + if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then + CPPFLAGS="$CPPFLAGS `libotf-config --cflags`" + OTF_LD_FLAGS="`libotf-config --libs`" + LIBS="$LIBS $OTF_LD_FLAGS" + elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then + if pkg-config libotf ; then + CPPFLAGS="$CPPFLAGS `pkg-config --cflags libotf`" + OTF_LD_FLAGS="`pkg-config --libs libotf`" + fi + fi + ## We check the availability of OTF_check_features + ## because we need libotf-0.9.4 or the later. + AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no) + AC_CHECK_HEADER(otf.h,, HAVE_OTF=no) + if test "x$HAVE_OTF" = "xyes"; then + AC_DEFINE(HAVE_OTF, 1, + [Define to 1 if you have OTF library and header file.]) + M17N_EXT_LIBS="$M17N_EXT_LIBS libotf" + AC_CHECK_LIB(otf, OTF_drive_gpos2, HAVE_OTF_DRIVE_GPOS2=yes, + HAVE_OTF_DRIVE_GPOS2=no) + if test "x$HAVE_OTF_DRIVE_GPOS2" = "xyes"; then + AC_DEFINE(HAVE_OTF_DRIVE_GPOS2, 1, + [Define to 1 if the OTF library has OTF_drive_gpos2().]) + fi + else + CPPFLAGS="$save_CPPFLAGS" + OTF_LD_FLAGS= + fi + LIBS="$save_LIBS" fi -AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no) -AC_CHECK_HEADER(otf.h,, HAVE_OTF=no) -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.]) -else - CPPFLAGS="$save_CPPFLAGS" - OTF_LD_FLAGS= -fi -LIBS="$save_LIBS" AC_SUBST(OTF_LD_FLAGS) dnl Check for Freetype2 usability. @@ -155,13 +219,20 @@ if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then FREETYPE_LD_FLAGS=`freetype-config --libs` AC_DEFINE(HAVE_FREETYPE, 1, [Define to 1 if you have FreeType library and header file.]) + M17N_EXT_LIBS="$M17N_EXT_LIBS freetype" + AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no, + [#include +#include FT_FREETYPE_H]) + if test "x$HAVE_FTBDF_H" = "xyes"; then + AC_DEFINE(HAVE_FTBDF_H, 1, + [Define to 1 if you have freetype/ftbdf.h.]) + fi + CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE" fi fi fi AC_SUBST(FREETYPE_LD_FLAGS) -AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes) - dnl Check for Xft2 usability. save_CPPFLAGS="$CPPFLAGS" save_LIBS="$LIBS" @@ -187,6 +258,7 @@ Version too old. Compiling this line should fail. if test "x$HAVE_XFT2" = "xyes"; then AC_DEFINE(HAVE_XFT2, 1, [Define to 1 if you have Xft2 library and header file.]) + M17N_EXT_LIBS="$M17N_EXT_LIBS xft2" else XFT2_LD_FLAGS= CPPFLAGS="$save_CPPFLAGS" @@ -195,41 +267,55 @@ LIBS="$save_LIBS" AC_SUBST(XFT2_LD_FLAGS) dnl Check for fontconfig usability. -save_CPPFLAGS="$CPPFLAGS" -save_LIBS="$LIBS" -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" +AC_ARG_WITH(fontconfig, + AS_HELP_STRING([--with-fontconfig],[with FontConfig library (default is YES)])) +if test "x$with_fontconfig" != "xno"; then + save_CPPFLAGS="$CPPFLAGS" + save_LIBS="$LIBS" + 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 -fi -AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no) -AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no) -if test "x$HAVE_FONTCONFIG" = "xyes"; then - AC_DEFINE(HAVE_FONTCONFIG, 1, + AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no) + AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no) + 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" + M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig" + else + FONTCONFIG_LD_FLAGS= + CPPFLAGS="$save_CPPFLAGS" + fi + LIBS="$save_LIBS" fi -LIBS="$save_LIBS" AC_SUBST(FONTCONFIG_LD_FLAGS) dnl Check for gdlib usability. -save_LIBS="$LIBS" -AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no) -AC_CHECK_HEADER(gd.h, , HAVE_GD=no) -if test "x$HAVE_GD" = "xyes"; then - AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1) - AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD, - [Define to 1 if you have gd library and header file.]) - GD_LD_FLAGS=-lgd +AC_ARG_WITH(gd, + AS_HELP_STRING([--with-gd],[suport graphic device by GD library (default is YES)])) + +if test "x$with_gd" != "xno"; then + save_LIBS="$LIBS" + AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no) + AC_CHECK_HEADER(gd.h, , HAVE_GD=no) + if test "x$HAVE_GD" = "xyes"; then + AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1) + AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD, + [Define to 1 or 2 if you have gd library and header file.]) + M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib" + GD_LD_FLAGS=-lgd + CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD" + fi + LIBS="$save_LIBS" fi -LIBS="$save_LIBS" AC_SUBST(GD_LD_FLAGS) +fi + dnl Check for libxml2 usability. save_CPPFLAGS="$CPPFLAGS" save_LIBS="$LIBS" @@ -247,6 +333,7 @@ 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]) + M17N_EXT_LIBS="$M17N_EXT_LIBS xml2" else XML2_LD_FLAGS= CPPFLAGS="$save_CPPFLAGS" @@ -255,17 +342,14 @@ LIBS="$save_LIBS" AC_SUBST(XML2_LD_FLAGS) dnl Check for Anthy usability. -AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no) + +PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no) if test "x$HAVE_ANTHY" = "xyes"; then - AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic) - if test "x$HAVE_ANTHY" = "xyes"; then - AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no) - if test "x$HAVE_ANTHY" = "xyes"; then - AC_DEFINE(HAVE_ANTHY, 1, - [Define to 1 if you have Anthy library and header file]) - ANTHY_LD_FLAGS="-lanthy -lanthydic" - fi - fi + AC_DEFINE(HAVE_ANTHY, 1, + [Define to 1 if you have Anthy library and header file]) + M17N_EXT_LIBS="$M17N_EXT_LIBS anthy" + ANTHY_LD_FLAGS="$ANTHY_LIBS" + CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY" fi AC_SUBST(ANTHY_LD_FLAGS) @@ -273,25 +357,77 @@ dnl Check for Ispell usability. AC_CHECK_PROG(HAVE_ISPELL, ispell, yes) if test "x$HAVE_ISPELL" = "xyes"; then AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.]) + M17N_EXT_LIBS="$M17N_EXT_LIBS ispell" + CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL" fi -dnl Check for libwordcut (for Thai). -AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT=yes, HAVE_WORDCUT=no) -if test "x$HAVE_WORDCUT" = "xyes"; then - if test -f "/usr/share/wordcut/tdict.wcd"; then - tdict="/usr/share/wordcut/tdict.wcd" - elif test -f "/usr/local/share/wordcut/tdict.wcd"; then - tdict="/usr/local/share/wordcut/tdict.wcd" +dnl Check for Thai word-segmentation library. +dnl If we have one, define HAVE_THAI_WORDSEG and one of these: +dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD +dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value. + +PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no) +PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no) + +if test "x$HAVE_LIBTHAI" == "xyes"; then + + AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai]) + THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS" + M17N_EXT_LIBS="$M17N_EXT_LIBS libthai" + HAVE_THAI_WORDSEG=yes + +elif test "x$HAVE_WORDCUT" = "xyes"; then + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS" + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include ]])],[],[HAVE_WORDCUT=no]) + if test "x$HAVE_WORDCUT" = "xno"; then + PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no) + if test "x$HAVE_GLIB_2_0" = "xyes"; then + CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS" + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include ]])],[HAVE_WORDCUT=yes],[]) + fi fi - echo "TDICT=$tdict" - if test "x$tdict" != "x"; then + if test "x$HAVE_WORDCUT" = "xyes"; then + THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS" AC_DEFINE(HAVE_WORDCUT, 1, - [Define if you have the wordcut library and header file]) - AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define to tdict file name]) - WORDCUT_LD_FLAGS=-lwordcut + [Define if you have the wordcut library and header file]) + M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut" + HAVE_THAI_WORDSEG=yes + else + CPPFLAGS="$save_CPPFLAGS" fi + +else + + AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes) + if test "x$HAVE_WORDCUT_OLD" = "xyes"; then + if test -f "/usr/share/wordcut/tdict.wcd"; then + tdict="/usr/share/wordcut/tdict.wcd" + elif test -f "/usr/local/share/wordcut/tdict.wcd"; then + tdict="/usr/local/share/wordcut/tdict.wcd" + fi + echo "TDICT=$tdict" + if test "x$tdict" != "x"; then + AC_DEFINE(HAVE_WORDCUT_OLD, 1, + [Define if you have the old version of wordcut library]) + AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name]) + THAI_WORDSEG_LD_FLAGS=-lwordcut + M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old" + HAVE_THAI_WORDSEG=yes + else + HAVE_WORDCUT=no + fi + fi +fi + +if test "x$HAVE_THAI_WORDSEG" = "xyes"; then + AC_DEFINE(HAVE_THAI_WORDSEG, 1, + [Define if you have some Thai word-segmentation library]) fi -AC_SUBST(WORDCUT_LD_FLAGS) +AC_SUBST(THAI_WORDSEG_LD_FLAGS) + +AC_SUBST(CONFIG_FLAGS) dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to @@ -304,18 +440,21 @@ dnl AC_ARG_ENABLE(xom, dnl [ --enable-xom build and install XOM library.], dnl XOM="$enableval") +SHLIB_EXT=".so" case $host_os in darwin* | rhapsody*) - AC_DEFINE(DLOPEN_SHLIB_EXT, ".dylib", - [Define to loadable module extention]);; + SHLIB_EXT=".dylib";; esac +AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT", + [Define to loadable module extention]) -AC_CONFIG_FILES([Makefile +AC_CONFIG_FILES([Makefile intl/Makefile po/Makefile.in src/Makefile example/Makefile m17n-config m17n-core.pc m17n-shell.pc + m17n-flt.pc m17n-gui.pc ]) @@ -325,6 +464,9 @@ dnl fi AC_OUTPUT +echo "The m17n library is configured with these external libraries." +echo " $M17N_EXT_LIBS" + dnl Local Variables: dnl comment-start: "dnl " dnl comment-end: ""