|
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 |
|
|