# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT(ledger, 3.0-git, johnw@newartisans.com) AC_CONFIG_SRCDIR(ledger) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([main.cc]) AC_CONFIG_HEADER([acconf.h]) AC_CONFIG_SUBDIRS([gdtoa]) # Checks for programs. AC_PROG_CXX AC_PROG_MAKE_SET AC_PROG_LIBTOOL AM_PROG_LIBTOOL #AC_PROG_YACC #AC_PROG_LEX #if test "$LEX" != flex; then # LEX="$SHELL $missing_dir/missing flex" # AC_SUBST(LEX_OUTPUT_ROOT, lex.yy) # AC_SUBST(LEXLIB, '') #fi # Checks for emacs lisp path AM_PATH_LISPDIR # check if UNIX pipes are available AC_CACHE_CHECK( [if pipes can be used], [pipes_avail], [AC_LANG_PUSH(C++) AC_TRY_LINK( [#include #include #include #include #include #include ], [int status, pfd[2]; status = pipe(pfd); status = fork(); if (status < 0) { ; } else if (status == 0) { char *arg0; status = dup2(pfd[0], STDIN_FILENO); close(pfd[1]); close(pfd[0]); execlp("", arg0, (char *)0); perror("execl"); exit(1); } else { close(pfd[0]); }], [pipes_avail=true], [pipes_avail=false]) AC_LANG_POP]) if [test x$pipes_avail = xtrue ]; then AC_DEFINE([HAVE_UNIX_PIPES], [1], [Whether UNIX pipes are available]) fi # check for boost_regex AC_CACHE_CHECK( [if boost_regex is available], [boost_regex_avail], [boost_regex_save_libs=$LIBS LIBS="-lboost_regex $LIBS" AC_LANG_PUSH(C++) AC_TRY_LINK( [#include ], [boost::regex foo_regexp("Hello, world!");], [boost_regex_avail=true], [boost_regex_avail=false]) AC_LANG_POP LIBS=$boost_regex_save_libs]) if [test x$boost_regex_avail = xtrue ]; then LIBS="-lboost_regex $LIBS" else AC_MSG_FAILURE("Could not find boost_regex library (set CPPFLAGS and LDFLAGS?)") fi # check for boost_date_time AC_CACHE_CHECK( [if boost_date_time is available], [boost_date_time_cpplib_avail], [boost_date_time_save_libs=$LIBS LIBS="-lboost_date_time $LIBS" AC_LANG_PUSH(C++) AC_TRY_LINK( [#include #include #include #include using namespace boost::posix_time; using namespace boost::date_time; #include inline ptime time_to_system_local(const ptime& when) { struct std::tm tm_gmt = to_tm(when); return from_time_t(mktime(&tm_gmt)); }], [ptime t10 = ptime(boost::gregorian::from_string("2007-01-15"), ptime::time_duration_type()); ptime t12 = time_to_system_local(t10); return t10 != t12;], [boost_date_time_cpplib_avail=true], [boost_date_time_cpplib_avail=false]) AC_LANG_POP LIBS=$boost_date_time_save_libs]) if [test x$boost_date_time_cpplib_avail = xtrue ]; then LIBS="-lboost_date_time $LIBS" else AC_MSG_FAILURE("Could not find boost_date_time library (set CPPFLAGS and LDFLAGS?)") fi # check for gmp AC_CACHE_CHECK( [if libgmp is available], [libgmp_avail], [libgmp_save_libs=$LIBS LIBS="-lgmp $LIBS" AC_LANG_PUSH(C++) AC_TRY_LINK( [#include ], [mpz_t bar; mpz_init(bar); mpz_clear(bar);], [libgmp_avail=true], [libgmp_avail=false]) AC_LANG_POP LIBS=$libgmp_save_libs]) if [test x$libgmp_avail = xtrue ]; then LIBS="-lgmp $LIBS" else AC_MSG_FAILURE("Could not find gmp library (set CPPFLAGS and LDFLAGS?)") fi # check for expat or xmlparse AC_ARG_ENABLE(xml, [ --enable-xml Turn on support for XML parsing], [case "${enableval}" in yes) xml=true ;; no) xml=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-xml) ;; esac],[xml=true]) AM_CONDITIONAL(USE_XML, test x$xml = xtrue) if [test x$xml = xtrue ]; then AC_CACHE_CHECK( [if libexpat is available], [libexpat_avail], [libexpat_save_libs=$LIBS LIBS="-lexpat $LIBS" AC_LANG_PUSH(C++) AC_TRY_LINK( [#include extern "C" { #include // expat XML parser }], [XML_Parser parser = XML_ParserCreate(NULL); return parser != NULL;], [libexpat_avail=true], [libexpat_avail=false]) AC_LANG_POP LIBS=$libexpat_save_libs]) if [test x$libexpat_avail = xtrue ]; then AM_CONDITIONAL(HAVE_EXPAT, true) LIBS="-lexpat $LIBS" else AM_CONDITIONAL(HAVE_EXPAT, false) fi else AM_CONDITIONAL(HAVE_EXPAT, false) fi if [test x$xml = xtrue ]; then if [test x$libexpat_avail = xfalse ]; then AC_CACHE_CHECK( [if libxmlparse is available], [libxmlparse_avail], [libxmlparse_save_libs=$LIBS LIBS="-lxmlparse -lxmltok $LIBS" AC_LANG_PUSH(C++) AC_TRY_LINK( [#include extern "C" { #include // expat XML parser }], [XML_Parser parser = XML_ParserCreate(NULL); return parser != NULL;], [libxmlparse_avail=true], [libxmlparse_avail=false]) AC_LANG_POP LIBS=$libxmlparse_save_libs]) if [test x$libxmlparse_avail = xtrue ]; then AM_CONDITIONAL(HAVE_XMLPARSE, true) LIBS="-lxmlparse -lxmltok $LIBS" else AM_CONDITIONAL(HAVE_XMLPARSE, false) fi else AM_CONDITIONAL(HAVE_XMLPARSE, false) fi else AM_CONDITIONAL(HAVE_XMLPARSE, false) fi # check for libofx AC_ARG_ENABLE(ofx, [ --enable-ofx Turn on support for OFX/OCF parsing], [case "${enableval}" in yes) ofx=true ;; no) ofx=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-ofx) ;; esac],[ofx=true]) AM_CONDITIONAL(USE_OFX, test x$ofx = xtrue) if [test x$ofx = xtrue ]; then AC_CACHE_CHECK( [if libofx is available], [libofx_avail], [libofx_save_libs=$LIBS LIBS="-lofx $LIBS" AC_LANG_PUSH(C++) AC_TRY_LINK( [#include ], [ LibofxContextPtr libofx_context = libofx_get_new_context();], [libofx_avail=true], [libofx_avail=false]) AC_LANG_POP LIBS=$libofx_save_libs]) if [test x$libofx_avail = xtrue ]; then AM_CONDITIONAL(HAVE_LIBOFX, true) LIBS="-lofx $LIBS" else AM_CONDITIONAL(HAVE_LIBOFX, false) fi else AM_CONDITIONAL(HAVE_LIBOFX, false) fi # check for Python AC_ARG_ENABLE(python, [ --enable-python Build the amounts library as a Python module], [case "${enableval}" in yes) python=true ;; no) python=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-python) ;; esac],[python=false]) AM_CONDITIONAL(USE_PYTHON, test x$python = xtrue) if [test x$python = xtrue ]; then AM_PATH_PYTHON(2.2,, :) if [test "$PYTHON" != :]; then AC_CACHE_CHECK( [if boost_python is available], [boost_python_cpplib_avail], [boost_python_save_libs=$LIBS LIBS="-lboost_python -lpython$PYTHON_VERSION $LIBS" AC_LANG_PUSH(C++) AC_TRY_LINK( [#include using namespace boost::python; class foo {}; BOOST_PYTHON_MODULE(samp) { class_< foo > ("foo") ; }], [return 0], [boost_python_cpplib_avail=true], [boost_python_cpplib_avail=false]) AC_LANG_POP LIBS=$boost_python_save_libs]) if [test x$boost_python_cpplib_avail = xtrue ]; then AM_CONDITIONAL(HAVE_BOOST_PYTHON, true) LIBS="-lboost_python -lpython$PYTHON_VERSION $LIBS" else AM_CONDITIONAL(HAVE_BOOST_PYTHON, false) fi else AM_CONDITIONAL(HAVE_BOOST_PYTHON, false) fi else AM_CONDITIONAL(HAVE_BOOST_PYTHON, false) fi # Check for options AC_ARG_ENABLE(debug, [ --enable-debug Turn on debugging], [case "${enableval}" in yes) debug=true ;; no) debug=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; esac],[debug=false]) AM_CONDITIONAL(DEBUG, test x$debug = xtrue) AC_ARG_ENABLE(pch, [ --enable-pch Use GCC 4.x pre-compiled headers], [case "${enableval}" in yes) pch=true ;; no) pch=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-pch) ;; esac],[pch=true]) AM_CONDITIONAL(USE_PCH, test x$pch = xtrue) # Checks for header files. AC_STDC_HEADERS AC_HAVE_HEADERS(sys/stat.h langinfo.h) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_TYPE_SIZE_T AC_STRUCT_TM # Checks for library functions. #AC_FUNC_ERROR_AT_LINE AC_HEADER_STDC AC_CHECK_FUNCS([access mktime realpath getpwuid getpwnam nl_langinfo]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT