ledger/configure.in
John Wiegley f691735c6c Restructed the code that it can build and be used as a shared library.
The command-line version is still statically bound in the build
process by default (for the sake of speed).
2008-04-13 02:41:21 -04:00

255 lines
6.3 KiB
Text

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(ledger, 2.5, johnw@newartisans.com)
AM_INIT_AUTOMAKE(ledger, 2.5)
AC_CONFIG_SRCDIR([main.cc])
AC_CONFIG_HEADER([acconf.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_MAKE_SET
AC_PROG_LIBTOOL
AM_PROG_LIBTOOL
# check if UNIX pipes are available
AC_CACHE_CHECK(
[if pipes can be used],
[pipes_avail],
[AC_LANG_PUSH(C++)
AC_TRY_LINK(
[#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>],
[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 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 <gmp.h>],
[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
AM_CONDITIONAL(HAVE_GMP, true)
LIBS="-lgmp $LIBS"
else
AC_MSG_FAILURE("Could not find gmp library (set CPPFLAGS and LDFLAGS?)")
fi
# check for pcre
AC_CACHE_CHECK(
[if libpcre is available],
[libpcre_avail],
[libpcre_save_libs=$LIBS
LIBS="-lpcre $LIBS"
AC_LANG_PUSH(C++)
AC_TRY_LINK(
[#include <pcre.h>],
[pcre_free((pcre *)NULL);],
[libpcre_avail=true],
[libpcre_avail=false])
AC_LANG_POP
LIBS=$libpcre_save_libs])
if [test x$libpcre_avail = xtrue ]; then
AM_CONDITIONAL(HAVE_PCRE, true)
LIBS="-lpcre $LIBS"
else
AC_MSG_FAILURE("Could not find pcre 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 <stdio.h>
extern "C" {
#include <expat.h> // 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])
AM_CONDITIONAL(HAVE_EXPAT, test x$libexpat_avail = xtrue)
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 <stdio.h>
extern "C" {
#include <xmlparse.h> // 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])
AM_CONDITIONAL(HAVE_XMLPARSE, test x$libxmlparse_avail = xtrue)
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 <libofx.h>],
[ LibofxContextPtr libofx_context = libofx_get_new_context();],
[libofx_avail=true],
[libofx_avail=false])
AC_LANG_POP
LIBS=$libofx_save_libs])
AM_CONDITIONAL(HAVE_LIBOFX, test x$libofx_avail = xtrue)
else
AM_CONDITIONAL(HAVE_LIBOFX, false)
fi
# check for Python
AC_ARG_ENABLE(python,
[ --enable-python Turn on Python support],
[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 <boost/python.hpp>
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])
AM_CONDITIONAL(HAVE_BOOST_PYTHON,
test x$boost_python_cpplib_avail = xtrue)
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)
# Checks for header files.
AC_STDC_HEADERS
AC_HAVE_HEADERS(sys/stat.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 stat strftime strptime])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT