| AC_PREREQ(2.52) |
| AC_INIT(lmserver, 1.0) |
| AC_CANONICAL_SYSTEM |
| AC_CONFIG_SRCDIR(lmserver.c) |
| AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) |
| AM_CONFIG_HEADER(config.h) |
|
|
| AC_PROG_CC |
| AC_PROG_CXX |
| AM_PROG_CC_C_O |
| AC_PROG_INSTALL |
|
|
| AC_ARG_WITH(srilm, |
| [AC_HELP_STRING([--with-srilm=PATH], [(optional) path to SRI's LM toolkit])], |
| [with_srilm=$withval], |
| [with_srilm=no] |
| ) |
| |
| AC_ARG_ENABLE(64bit, |
| [AS_HELP_STRING([--enable-64bit],[build 64bit verison])]) |
| if test "x$enable_64bit" == "xyes" |
| then |
| org_cflags=$CFLAGS |
| CFLAGS=-m64 |
| AC_RUN_IFELSE( |
| [AC_LANG_PROGRAM([], [dnl |
| return sizeof(void*) == 8 ? 0 : 1; |
| ]) |
| ],[ |
| CFLAGS="-m64 $org_cflags" |
| ],[ |
| AC_MSG_ERROR([Don't know how to build a 64-bit object.]) |
| ]) |
| fi |
|
|
| trylibeventdir="" |
| AC_ARG_WITH(libevent, |
| [ --with-libevent=PATH Specify path to libevent installation ], |
| [ |
| if test "x$withval" != "xno" ; then |
| trylibeventdir=$withval |
| fi |
| ] |
| ) |
|
|
| if test "x$with_srilm" != 'xno' |
| then |
| SAVE_CPPFLAGS="$CPPFLAGS" |
| CPPFLAGS="$CPPFLAGS -I${with_srilm}/include" |
|
|
| AC_CHECK_HEADER(Prob.h, |
| [AC_DEFINE([HAVE_SRILM], [], [flag for SRILM])], |
| [AC_MSG_ERROR([Cannot find SRILM!])]) |
|
|
| LIB_SRILM="-loolm -ldstruct -lmisc" |
| # ROOT/lib/i686-m64/liboolm.a |
| # ROOT/lib/i686-m64/libdstruct.a |
| # ROOT/lib/i686-m64/libmisc.a |
| MY_ARCH=`${with_srilm}/sbin/machine-type` |
| LDFLAGS="$LDFLAGS -L${with_srilm}/lib/${MY_ARCH}" |
| LIBS="$LIBS $LIB_SRILM" |
| FMTLIBS="$FMTLIBS liboolm.a libdstruct.a libmisc.a" |
| AM_CONDITIONAL([SRI_LM], true) |
| fi |
|
|
|
|
| dnl ------------------------------------------------------ |
| dnl libevent detection. swiped from Tor. modified a bit. |
|
|
| LIBEVENT_URL=http://www.monkey.org/~provos/libevent/ |
|
|
| AC_CACHE_CHECK([for libevent directory], ac_cv_libevent_dir, [ |
| saved_LIBS="$LIBS" |
| saved_LDFLAGS="$LDFLAGS" |
| saved_CPPFLAGS="$CPPFLAGS" |
| le_found=no |
| for ledir in $trylibeventdir "" $prefix /usr/local ; do |
| LDFLAGS="$saved_LDFLAGS" |
| LIBS="$saved_LIBS -levent" |
|
|
| # Skip the directory if it isn't there. |
| if test ! -z "$ledir" -a ! -d "$ledir" ; then |
| continue; |
| fi |
| if test ! -z "$ledir" ; then |
| if test -d "$ledir/lib" ; then |
| LDFLAGS="-L$ledir/lib $LDFLAGS" |
| else |
| LDFLAGS="-L$ledir $LDFLAGS" |
| fi |
| if test -d "$ledir/include" ; then |
| CPPFLAGS="-I$ledir/include $CPPFLAGS" |
| else |
| CPPFLAGS="-I$ledir $CPPFLAGS" |
| fi |
| fi |
| # Can I compile and link it? |
| AC_TRY_LINK([#include <sys/time.h> |
| #include <sys/types.h> |
| #include <event.h>], [ event_init(); ], |
| [ libevent_linked=yes ], [ libevent_linked=no ]) |
| if test $libevent_linked = yes; then |
| if test ! -z "$ledir" ; then |
| ac_cv_libevent_dir=$ledir |
| else |
| ac_cv_libevent_dir="(system)" |
| fi |
| le_found=yes |
| break |
| fi |
| done |
| LIBS="$saved_LIBS" |
| LDFLAGS="$saved_LDFLAGS" |
| CPPFLAGS="$saved_CPPFLAGS" |
| if test $le_found = no ; then |
| AC_MSG_ERROR([libevent is required. You can get it from $LIBEVENT_URL |
| |
| If it's already installed, specify its path using --with-libevent=/dir/ |
| ]) |
| fi |
| ]) |
| LIBS="$LIBS -levent" |
| if test $ac_cv_libevent_dir != "(system)"; then |
| if test -d "$ac_cv_libevent_dir/lib" ; then |
| LDFLAGS="-L$ac_cv_libevent_dir/lib $LDFLAGS" |
| le_libdir="$ac_cv_libevent_dir/lib" |
| else |
| LDFLAGS="-L$ac_cv_libevent_dir $LDFLAGS" |
| le_libdir="$ac_cv_libevent_dir" |
| fi |
| if test -d "$ac_cv_libevent_dir/include" ; then |
| CPPFLAGS="-I$ac_cv_libevent_dir/include $CPPFLAGS" |
| else |
| CPPFLAGS="-I$ac_cv_libevent_dir $CPPFLAGS" |
| fi |
| fi |
|
|
| dnl ---------------------------------------------------------------------------- |
|
|
| AC_SEARCH_LIBS(socket, socket) |
| AC_SEARCH_LIBS(gethostbyname, nsl) |
| AC_SEARCH_LIBS(mallinfo, malloc) |
|
|
| AC_CHECK_FUNC(daemon,AC_DEFINE([HAVE_DAEMON],,[Define this if you have daemon()]),[DAEMON_OBJ=daemon.o]) |
| AC_SUBST(DAEMON_OBJ) |
|
|
| AC_HEADER_STDBOOL |
| AC_C_CONST |
| AC_CHECK_HEADER(malloc.h, AC_DEFINE(HAVE_MALLOC_H,,[do we have malloc.h?])) |
| AC_CHECK_MEMBER([struct mallinfo.arena], [ |
| AC_DEFINE(HAVE_STRUCT_MALLINFO,,[do we have stuct mallinfo?]) |
| ], ,[ |
| |
| ] |
| ) |
|
|
| dnl From licq: Copyright (c) 2000 Dirk Mueller |
| dnl Check if the type socklen_t is defined anywhere |
| AC_DEFUN([AC_C_SOCKLEN_T], |
| [AC_CACHE_CHECK(for socklen_t, ac_cv_c_socklen_t, |
| [ |
| AC_TRY_COMPILE([ |
| #include <sys/types.h> |
| #include <sys/socket.h> |
| ],[ |
| socklen_t foo; |
| ],[ |
| ac_cv_c_socklen_t=yes |
| ],[ |
| ac_cv_c_socklen_t=no |
| ]) |
| ]) |
| if test $ac_cv_c_socklen_t = no; then |
| AC_DEFINE(socklen_t, int, [define to int if socklen_t not available]) |
| fi |
| ]) |
|
|
| AC_C_SOCKLEN_T |
|
|
| dnl Check if we're a little-endian or a big-endian system, needed by hash code |
| AC_DEFUN([AC_C_ENDIAN], |
| [AC_CACHE_CHECK(for endianness, ac_cv_c_endian, |
| [ |
| AC_RUN_IFELSE( |
| [AC_LANG_PROGRAM([], [dnl |
| long val = 1; |
| char *c = (char *) &val; |
| exit(*c == 1); |
| ]) |
| ],[ |
| ac_cv_c_endian=big |
| ],[ |
| ac_cv_c_endian=little |
| ]) |
| ]) |
| if test $ac_cv_c_endian = big; then |
| AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian]) |
| fi |
| if test $ac_cv_c_endian = little; then |
| AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian]) |
| fi |
| ]) |
| |
| AC_C_ENDIAN |
| |
| dnl Check whether the user wants threads or not |
| AC_ARG_ENABLE(threads, |
| [AS_HELP_STRING([--enable-threads],[support multithreaded execution])]) |
| if test "x$enable_threads" == "xyes"; then |
| AC_SEARCH_LIBS(pthread_create, pthread) |
| if test "x$ac_cv_search_pthread_create" != "xno"; then |
| AC_DEFINE([USE_THREADS],,[Define this if you want to use pthreads]) |
| dnl Sun compilers need the -mt flag! |
| AC_RUN_IFELSE( |
| [AC_LANG_PROGRAM([], [dnl |
| #ifdef __SUNPRO_C |
| return 0; |
| #else |
| return 1; |
| #endif |
| ]) |
| ],[ |
| CFLAGS="-mt $CFLAGS" |
| ]) |
| else |
| AC_MSG_ERROR([Can't enable threads without the POSIX thread library.]) |
| fi |
| fi |
|
|
| AC_CHECK_FUNCS(mlockall) |
| AC_CHECK_FUNCS(getpagesizes) |
| AC_CHECK_FUNCS(memcntl) |
|
|
| AC_CONFIG_FILES(Makefile) |
| AC_OUTPUT |
|
|