dnl Process this file with autoconf to produce a configure script. AC_INIT(src/librcc.c) AC_CONFIG_HEADERS(config.h) PACKAGE=librcc LIBRCC_VERSION_MAJOR=`cat VERSION | sed -e s/CVS// | cut -d . -f 1 | sed -e s/^$/0/` LIBRCC_VERSION_MINOR=`cat VERSION | sed -e s/CVS// | cut -d . -f 2 | sed -e s/^$/0/` LIBRCC_VERSION_SUBMINOR=`cat VERSION | sed -e s/CVS// | cut -d . -f 3 | sed -e s/^$/0/` LIBRCC_VERSION=$LIBRCC_VERSION_MAJOR.$LIBRCC_VERSION_MINOR.$LIBRCC_VERSION_SUBMINOR VERSION=$LIBRCC_VERSION LIBRCC_VERSION_INFO=`echo $LIBRCC_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'` AC_SUBST(LIBRCC_VERSION) AC_SUBST(LIBRCC_VERSION_MAJOR) AC_SUBST(LIBRCC_VERSION_MINOR) AC_SUBST(LIBRCC_VERSION_SUBMINOR) AC_SUBST(LIBRCC_VERSION_INFO) LIBRCC_CVS=`cat VERSION | sed -e s/.*CVS.*/CVS/` if test "x$LIBRCC_CVS" = "xCVS"; then LIBRCC_CVS=1 LIBRCC_CVS_DATE=`date +%y%m%d.%H` else LIBRCC_CVS=0 LIBRCC_CVS_DATE=0 fi AC_SUBST(LIBRCC_CVS) AC_SUBST(LIBRCC_CVS_DATE) AM_INIT_AUTOMAKE($PACKAGE, $VERSION) AC_ARG_ENABLE( force-dynamic-engines, [ --enable-force-dynamic-engines force usage of dynamic engines],, enable_force_dynamic_engines="no") AC_ARG_ENABLE( libtranslate, [ --disable-libtranslate disable usage of libtranslate],, disable_libtranslate="yes") AC_ARG_ENABLE( bdb, [ --disable-bdb disable usage of berkeleydb for recodings caching],, disable_bdb="yes") AC_PROG_CC AM_PROG_CC_C_O AC_PROG_INSTALL AM_PROG_LIBTOOL AC_C_CONST AC_TYPE_SIZE_T AC_CHECK_TYPE(ssize_t, long) pkgdatadir=${libdir}/rcc/ AC_SUBST(pkgdatadir) CFLAGS="$CFLAGS -Wall -Wpointer-arith" if test ! -f /usr/include/iconv.h -a -f /usr/local/include/iconv.h ; then CFLAGS+=" -I/usr/local/include" LIBS+=" -L/usr/local/lib" fi dnl Checks for programs. AC_PATH_PROG(RM, rm, /bin/rm) AC_PATH_PROG(MV, mv, /bin/mv) AC_PATH_PROG(TAR, tar, /bin/tar) dnl Checks for header files. AC_CHECK_HEADERS(iconv.h,, [AC_MSG_ERROR(Missing iconv header)]) AC_CHECK_HEADERS(mntent.h pwd.h sys/types.h sys/stat.h sys/file.h sys/socket.h sys/un.h sys/time.h sys/select.h sys/wait.h signal.h unistd.h fcntl.h) AC_TRY_COMPILE([#include ], [char *codeset = nl_langinfo (CODESET);], [AC_DEFINE(HAVE_CODESET,,[Define if nl_langinfo(CODESET) is available.])] ) dnl Checks for libraries. AC_PATH_PROG(XML2_CONFIG, xml2-config, no) if test $XML2_CONFIG = no; then AC_MSG_ERROR(LibXML2 is required) fi XML_LIBS="\`xml2-config --libs\`" XML_INCLUDES="\`xml2-config --cflags\`" AC_SUBST(XML_LIBS) AC_SUBST(XML_INCLUDES) AC_PATH_PROG(GTK_CONFIG, gtk-config, no) AM_CONDITIONAL(HAVE_GTK, [ test $GTK_CONFIG != no ]) if test $GTK_CONFIG = no; then GTK1_LIBS="" GTK1_INCLUDES="" HAVE_GTK=no else GTK1_LIBS="\`gtk-config --libs\`" GTK1_INCLUDES="\`gtk-config --cflags\`" HAVE_GTK=yes fi AC_SUBST(GTK1_LIBS) AC_SUBST(GTK1_INCLUDES) PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.0.0, HAVE_GTK2=yes, HAVE_GTK2=no) AM_CONDITIONAL(HAVE_GTK2, [ test $HAVE_GTK2 = yes ]) AC_CHECK_HEADER(dlfcn.h, [AC_CHECK_LIB(dl, dlopen, [ AC_DEFINE(HAVE_DLOPEN,1,[Defines if dlopen is available]) DLOPEN_LIBS="-ldl" DLOPEN_INCLUDES="" HAVE_DLOPEN=yes ],[ DLOPEN_LIBS="" DLOPEN_INCLUDES="" AC_CHECK_FUNCS(dlopen, [ HAVE_DLOPEN=yes ],[ HAVE_DLOPEN=no ]) ])]) RCD_LIBS="" RCD_INCLUDES="" HAVE_RCD=no ENCA_LIBS="" ENCA_INCLUDES="" HAVE_ENCA=no if test "x$enable_force_dynamic_engines" != "xyes"; then AC_CHECK_HEADER(librcd.h, [AC_CHECK_LIB(rcd, rcdGetRussianCharset, [ AC_DEFINE(HAVE_RCD,1,[Defines if libRCD is available]) RCD_LIBS="-lrcd" RCD_INCLUDES="" HAVE_RCD=yes ])]) AC_CHECK_HEADER(enca.h, [AC_CHECK_LIB(enca, enca_analyse, [ AC_DEFINE(HAVE_ENCA,1,[Defines if enca is available]) ENCA_LIBS="-lenca" ENCA_INCLUDES="" HAVE_ENCA=yes ])]) fi AM_CONDITIONAL(HAVE_RCD, [ test "x$HAVE_RCD" = "xyes" ]) AM_CONDITIONAL(HAVE_ENCA, [ test "x$HAVE_ENCA" = "xyes" ]) AC_SUBST(RCD_LIBS) AC_SUBST(RCD_INCLUDES) AC_SUBST(ENCA_LIBS) AC_SUBST(ENCA_INCLUDES) USE_DLOPEN=no if test "x$HAVE_DLOPEN" = "xyes"; then if test "x$HAVE_ENCA" = "xno"; then HAVE_ENCA=dynamic USE_DLOPEN=yes fi if test "x$HAVE_RCD" = "xno"; then HAVE_RCD=dynamic USE_DLOPEN=yes fi if test "x$USE_DLOPEN" = "xno"; then DLOPEN_LIBS="" DLOPEN_INCLUDES="" fi fi AC_SUBST(DLOPEN_LIBS) AC_SUBST(DLOPEN_INCLUDES) if test "x$disable_bdb" != "xyes"; then BDB_LIBS="" BDB_INCLUDES="" HAVE_BDB=no else AX_PATH_BDB([4],[ BDB_LIBS="$BDB_LDFLAGS $BDB_LIBS" BDB_INCLUDES="$BDB_CPPFLAGS" HAVE_BDB=yes ],[ BDB_LIBS="" BDB_INCLUDES="" HAVE_BDB=no ]) fi AC_SUBST(BDB_LIBS) AC_SUBST(BDB_INCLUDES) PKG_CHECK_MODULES(GLIB2, glib-2.0 >= 2.0.0, HAVE_GLIB2=yes, HAVE_GLIB2=no) AM_CONDITIONAL(HAVE_GLIB2, [ test $HAVE_GLIB2 = yes ]) if test "x$disable_libtranslate" != "xyes"; then HAVE_LIBTRANSLATE=no HAVE_LIBTRANSLATE_TIMED_TRANSLATE=no LIBTRANSLATE_LIBS="" LIBTRANSLATE_CFLAGS="" AC_SUBST(LIBTRANSLATE_LIBS) AC_SUBST(LIBTRANSLATE_CFLAGS) else PKG_CHECK_MODULES(LIBTRANSLATE, [libtranslate], [ HAVE_LIBTRANSLATE=yes ],[ HAVE_LIBTRANSLATE=no ]) if test $HAVE_LIBTRANSLATE = yes; then AC_DEFINE(HAVE_LIBTRANSLATE,1,[Defines if libtranslate is available]) AC_CHECK_LIB(translate, translate_session_timed_translate_text, [ HAVE_LIBTRANSLATE_TIMED_TRANSLATE=yes AC_DEFINE(HAVE_LIBTRANSLATE_TIMED_TRANSLATE,1,[Defines if libtranslate has time limited translate]) ],[ HAVE_LIBTRANSLATE_TIMED_TRANSLATE=no ]) else HAVE_LIBTRANSLATE_TIMED_TRANSLATE=no fi fi AM_PATH_ASPELL([ AC_DEFINE(HAVE_ASPELL,1,[Defines if aspell is available]) HAVE_ASPELL=yes ],[ HAVE_ASPELL=no ]) PTHREAD_LIBS=error AC_EGREP_CPP(yes,[ #if (defined(__FreeBSD_cc_version) && __FreeBSD_cc_version <= 500001) || defined(__OpenBSD__) yes #endif ], PTHREAD_CFLAGS="-D_THREAD_SAFE" PTHREAD_LIBS="-pthread" ) if test "x$PTHREAD_LIBS" = "xerror"; then AC_CHECK_LIB(pthread, pthread_mutex_lock, PTHREAD_LIBS="-lpthread") fi if test "x$PTHREAD_LIBS" = xerror; then AC_CHECK_LIB(pthreads, pthread_mutex_lock, PTHREAD_LIBS="-lpthreads") fi if test "x$PTHREAD_LIBS" = xerror; then AC_CHECK_LIB(c_r, pthread_mutex_lock, PTHREAD_LIBS="-lc_r") fi if test "x$PTHREAD_LIBS" = xerror; then AC_CHECK_FUNC(pthread_mutex_lock, PTHREAD_LIBS="") fi if test "x$PTHREAD_LIBS" = xerror; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" else AC_CHECK_HEADER(pthread.h, [ AC_DEFINE(HAVE_PTHREAD,1,[Defines if pthread is available]) HAVE_PTHREAD=yes ],[ HAVE_PTHREAD=no PTHREAD_LIBS="" PTHREAD_CFLAGS="" ]) fi AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_LIBS) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST dnl Checks for library functions. AC_CHECK_FUNCS(strcasecmp strncasecmp strdup strnlen) AC_OUTPUT(src/Makefile engines/Makefile external/Makefile ui/Makefile examples/Makefile Makefile librcc.spec) echo "" echo "Configuration:" echo " POSIX Threading Support: $HAVE_PTHREAD" echo "" echo " Dynamic Engine Loading Support: $HAVE_DLOPEN" echo " Enca Charset Detection Support: $HAVE_ENCA" echo " LibRCD Charset Detection Support: $HAVE_RCD" echo "" echo " Multilanguage support with DB4: $HAVE_BDB" echo " Language autodetection using aspell: $HAVE_ASPELL" echo " Libtranslate support: $HAVE_LIBTRANSLATE" echo " Libtranslate Timed Translate: $HAVE_LIBTRANSLATE_TIMED_TRANSLATE" echo "" echo "User Interfaces:" echo " GTK User Interface: $HAVE_GTK" echo " GTK2 User Interface: $HAVE_GTK2" echo "" echo "" echo ""