AC_INIT([cdec],[2013-11-10]) AC_CONFIG_SRCDIR([decoder/cdec.cc]) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS(config.h) AC_PROG_LIBTOOL AC_PROG_LEX case $LEX in :) AC_MSG_ERROR([No lex (Flex, lex, etc.) program found]);; esac AC_PROG_CC AC_PROG_CXX AX_CXX_COMPILE_STDCXX_11 AC_LANG_CPLUSPLUS AC_OPENMP BOOST_REQUIRE([1.44]) BOOST_FILESYSTEM BOOST_PROGRAM_OPTIONS BOOST_SYSTEM BOOST_SERIALIZATION BOOST_TEST BOOST_THREADS AM_PATH_PYTHON AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H)) AC_CHECK_LIB(rt, clock_gettime) AC_CHECK_LIB(dl, dlopen) AC_CHECK_HEADERS(zlib.h, AC_CHECK_LIB(z, gzread,[ AC_DEFINE(HAVE_ZLIB,[],[Do we have zlib]) ZLIBS="$ZLIBS -lz" ])) AC_CHECK_HEADERS(bzlib.h, AC_CHECK_LIB(bz2, BZ2_bzReadOpen,[ AC_DEFINE(HAVE_BZLIB,[],[Do we have bzlib]) ZLIBS="$ZLIBS -lbz2" ])) AC_CHECK_HEADERS(lzma.h, AC_CHECK_LIB(lzma, lzma_code,[ AC_DEFINE(HAVE_XZLIB,[],[Do we have lzma]) ZLIBS="$ZLIBS -llzma" ])) AC_ARG_ENABLE(mpi, [ --enable-mpi Build MPI binaries, assumes mpi.h is present ], [ mpi=yes ]) AM_CONDITIONAL([MPI], [test "x$mpi" = xyes]) if test "x$mpi" = xyes then AC_DEFINE([HAVE_MPI], [1], [flag for MPI]) LIBS="$LIBS -lboost_mpi" fi AM_CONDITIONAL([HAVE_METEOR], false) AC_ARG_WITH(meteor, [AC_HELP_STRING([--with-meteor=PATH], [(optional) path to METEOR jar])], [with_meteor=$withval], [with_meteor=no] ) if test "x$with_meteor" != 'xno' then AC_CHECK_FILE([$with_meteor], [AC_DEFINE([HAVE_METEOR], [1], [flag for METEOR jar library])], [AC_MSG_ERROR([Cannot find METEOR jar!])]) AC_SUBST(METEOR_JAR,"${with_meteor}") AM_CONDITIONAL([HAVE_METEOR], true) fi AM_CONDITIONAL([HAVE_CMPH], false) AC_ARG_WITH(cmph, [AC_HELP_STRING([--with-cmph=PATH], [(optional) path to cmph perfect hashing library])], [with_cmph=$withval], [with_cmph=no] ) if test "x$with_cmph" != 'xno' then SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I${with_cmph}/include" AC_CHECK_HEADER(cmph.h, [AC_DEFINE([HAVE_CMPH], [1], [flag for cmph perfect hashing library])], [AC_MSG_ERROR([Cannot find cmph library!])]) LDFLAGS="$LDFLAGS -L${with_cmph}/lib" AC_CHECK_LIB(cmph, cmph_search) AM_CONDITIONAL([HAVE_CMPH], true) fi AM_CONDITIONAL([HAVE_GTEST], false) AC_ARG_WITH(gtest, [AC_HELP_STRING([--with-gtest=DIR], [(optional) path to Google Test library])], [with_gtest=$withval], [with_gtest=no] ) AM_CONDITIONAL([HAVE_GMOCK], false) AC_ARG_WITH(gmock, [AC_HELP_STRING([--with-gmock=DIR], [(optional) path to Google Mock library])], [with_gmock=$withval], [with_gmock=no] ) if test "x$with_gtest" != 'xno' then gtest_CPPFLAGS="-I${with_gtest}/include" gtest_LDFLAGS="-L${with_gtest} -L${with_gtest}/lib" gtest_LIBS="-lgtest_main -lgtest -lpthread" SAVECPP_FLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $gtest_CPPFLAGS" AC_CHECK_HEADER(${with_gtest}/include/gtest/gtest.h, [AC_DEFINE([HAVE_GTEST], [1], [flag for Google Test header])], [AC_MSG_ERROR([Cannot find Google Test headers!])] ) SAVE_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $gtest_LDFLAGS" SAVE_LIBS="$LIBS" # Google Test needs pthreads. AC_CHECK_LIB([pthread], [pthread_mutex_init], [], [AC_MSG_ERROR([Cannot find pthread library])] ) AX_CXX_CHECK_LIB([gtest], [testing::TestInfo::name() const], [], [AC_MSG_ERROR([Cannot find Google Test library libgtest])] ) AC_CHECK_LIB([gtest_main], [main], [], [AC_MSG_ERROR([Cannot find Google Test library libgtest_main])] ) AC_SUBST(AS_TR_CPP([GTEST_CPPFLAGS]), ["$gtest_CPPFLAGS"]) AC_SUBST(AS_TR_CPP([GTEST_LDFLAGS]), ["$gtest_LDFLAGS"]) AC_SUBST(AS_TR_CPP([GTEST_LIBS]), ["$gtest_LIBS"]) if test "x$with_gmock" != 'xno' then gmock_CPPFLAGS="-I${with_gmock}/include" gmock_LDFLAGS="-L${with_gmock} -L${with_gmock}/lib" gmock_LIBS="-lgmock" CPPFLAGS="$CPPFLAGS $gmock_CPPFLAGS" AC_CHECK_HEADER(${with_gmock}/include/gmock/gmock.h, [AC_DEFINE([HAVE_GMOCK], [1], [flag for Google Mock header])], [AC_MSG_ERROR([Cannot find Google Mock headers!])] ) LDFLAGS="$LDFLAGS $gmock_LDFLAGS" AX_CXX_CHECK_LIB([gmock], [testing::Expectation], [], [AC_MSG_ERROR([Cannot find Google Mock library libgmock])] ) AC_SUBST(AS_TR_CPP([GMOCK_CPPFLAGS]), ["$gmock_CPPFLAGS"]) AC_SUBST(AS_TR_CPP([GMOCK_LDFLAGS]), ["$gmock_LDFLAGS"]) AC_SUBST(AS_TR_CPP([GMOCK_LIBS]), ["$gmock_LIBS"]) AM_CONDITIONAL([HAVE_GMOCK], true) fi CPPFLAGS="$SAVE_CPPFLAGS" LDFLAGS="$SAVE_LDFLAGS" LIBS="$SAVE_LIBS" AM_CONDITIONAL([HAVE_GTEST], true) fi #BOOST_THREADS CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" LDFLAGS="$LDFLAGS $BOOST_PROGRAM_OPTIONS_LDFLAGS $BOOST_SERIALIZATION_LDFLAGS $BOOST_SYSTEM_LDFLAGS $BOOST_FILESYSTEM_LDFLAGS" # $BOOST_THREAD_LDFLAGS" LIBS="$LIBS $BOOST_PROGRAM_OPTIONS_LIBS $BOOST_SERIALIZATION_LIBS $BOOST_SYSTEM_LIBS $BOOST_FILESYSTEM_LIBS $ZLIBS" # $BOOST_THREAD_LIBS" AC_CHECK_HEADER(google/dense_hash_map, [AC_DEFINE([HAVE_SPARSEHASH], [1], [flag for google::dense_hash_map])]) AC_PROG_INSTALL CPPFLAGS="-DPIC -fPIC $CPPFLAGS -DHAVE_CONFIG_H -DKENLM_MAX_ORDER=6" CXXFLAGS="$CXX11_SWITCH $CXXFLAGS" if test "x$HAVE_CXX11" = "x0"; then CPPFLAGS="$CPPFLAGS -DHAVE_OLD_CPP" fi # core cdec stuff AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([utils/Makefile]) AC_CONFIG_FILES([mteval/Makefile]) AC_CONFIG_FILES([mteval/meteor_jar.cc]) AC_CONFIG_FILES([decoder/Makefile]) AC_CONFIG_FILES([python/setup.py]) AC_CONFIG_FILES([extractor/Makefile]) AC_CONFIG_FILES([word-aligner/Makefile]) # KenLM stuff AC_CONFIG_FILES([klm/util/double-conversion/Makefile]) AC_CONFIG_FILES([klm/util/stream/Makefile]) AC_CONFIG_FILES([klm/util/Makefile]) AC_CONFIG_FILES([klm/lm/Makefile]) AC_CONFIG_FILES([klm/search/Makefile]) AC_CONFIG_FILES([klm/lm/builder/Makefile]) # training stuff AC_CONFIG_FILES([training/Makefile]) AC_CONFIG_FILES([training/utils/Makefile]) AC_CONFIG_FILES([training/liblbfgs/Makefile]) AC_CONFIG_FILES([training/crf/Makefile]) AC_CONFIG_FILES([training/dpmert/Makefile]) AC_CONFIG_FILES([training/pro/Makefile]) AC_CONFIG_FILES([training/rampion/Makefile]) AC_CONFIG_FILES([training/minrisk/Makefile]) AC_CONFIG_FILES([training/mira/Makefile]) AC_CONFIG_FILES([training/latent_svm/Makefile]) AC_CONFIG_FILES([training/dtrain/Makefile]) # external feature function example code AC_CONFIG_FILES([example_extff/Makefile]) AC_OUTPUT