From 0f880f36260e5b71921b17425400c952b96606d1 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Mon, 10 Aug 2009 14:04:49 -0700 Subject: [PATCH] pandora-build v0.45 --- config/autorun.sh | 11 +++ m4/pandora_64bit.m4 | 33 ++++--- m4/pandora_canonical.m4 | 13 +-- m4/pandora_have_better_malloc.m4 | 12 ++- m4/pandora_have_libdrizzle.m4 | 23 +++-- m4/pandora_have_libgearman.m4 | 24 +++-- m4/pandora_have_libmemcached.m4 | 23 +++-- m4/pandora_have_libpq.m4 | 29 ++++-- m4/pandora_have_libsqlite3.m4 | 42 +++++++++ m4/pandora_have_protobuf.m4 | 80 ++++++++++++++++ m4/pandora_platform.m4 | 68 +++++++++++++ m4/pandora_plugins.m4 | 34 +++++++ m4/pandora_pthread.m4 | 34 +++++++ m4/pandora_swig.m4 | 32 +++++++ m4/pandora_use_pipe.m4 | 36 +++++++ m4/pandora_warnings.m4 | 10 +- m4/pandora_with_lua.m4 | 45 +++++++++ m4/pandora_with_perl.m4 | 38 ++++++++ m4/pandora_with_php.m4 | 56 +++++++++++ m4/pandora_with_python.m4 | 28 ++++++ m4/pandora_with_python3.m4 | 35 +++++++ m4/pandora_with_r.m4 | 33 +++++++ m4/pandora_with_ruby.m4 | 79 ++++++++++++++++ m4/pkg.m4 | 157 +++++++++++++++++++++++++++++++ 24 files changed, 923 insertions(+), 52 deletions(-) create mode 100644 m4/pandora_have_libsqlite3.m4 create mode 100644 m4/pandora_have_protobuf.m4 create mode 100644 m4/pandora_platform.m4 create mode 100644 m4/pandora_plugins.m4 create mode 100644 m4/pandora_pthread.m4 create mode 100644 m4/pandora_swig.m4 create mode 100644 m4/pandora_use_pipe.m4 create mode 100644 m4/pandora_with_lua.m4 create mode 100644 m4/pandora_with_perl.m4 create mode 100644 m4/pandora_with_php.m4 create mode 100644 m4/pandora_with_python.m4 create mode 100644 m4/pandora_with_python3.m4 create mode 100644 m4/pandora_with_r.m4 create mode 100644 m4/pandora_with_ruby.m4 create mode 100644 m4/pkg.m4 diff --git a/config/autorun.sh b/config/autorun.sh index 2e0d839f..bcf80427 100755 --- a/config/autorun.sh +++ b/config/autorun.sh @@ -35,6 +35,12 @@ locate_binary() { return 1 } + +if test -f config/pre_hook.sh +then + . config/pre_hook.sh +fi + # Try to detect the supported binaries if the user didn't # override that by pushing the environment variable if test x$LIBTOOLIZE = x; then @@ -78,6 +84,11 @@ run $AUTOHEADER || die "Can't execute autoheader" run $AUTOMAKE $AUTOMAKE_FLAGS || die "Can't execute automake" run $AUTOCONF || die "Can't execute autoconf" +if test -f config/post_hook.sh +then + . config/post_hook.sh +fi + echo "---" echo "Configured with the following tools:" echo " * `$LIBTOOLIZE --version | head -1`" diff --git a/m4/pandora_64bit.m4 b/m4/pandora_64bit.m4 index 99db56e0..c1812f40 100644 --- a/m4/pandora_64bit.m4 +++ b/m4/pandora_64bit.m4 @@ -9,12 +9,11 @@ dnl --------------------------------------------------------------------------- AC_DEFUN([PANDORA_64BIT],[ AC_BEFORE([$0], [AC_LIB_PREFIX]) - - AC_ARG_ENABLE([64bit],[ - AS_HELP_STRING([--disable-64bit], + AC_ARG_ENABLE([64bit], + [AS_HELP_STRING([--disable-64bit], [Build 64 bit binary @<:@default=on@:>@])], - [ac_enable_64bit="$enableval"], - [ac_enable_64bit="yes"]) + [ac_enable_64bit="$enableval"], + [ac_enable_64bit="yes"]) AC_CHECK_PROGS(ISAINFO, [isainfo], [no]) AS_IF([test "x$ISAINFO" != "xno"], @@ -26,23 +25,29 @@ AC_DEFUN([PANDORA_64BIT],[ isainfo_k=`${ISAINFO} -k` DTRACEFLAGS="${DTRACEFLAGS} -${isainfo_k}" - AS_IF([test "x${ac_cv_env_CPPFLAGS_set}" = "x"],[ - CPPFLAGS="-I/usr/local ${CPPFLAGS}" - ]) + AS_IF([test "x$ac_enable_64bit" = "xyes"],[ - AS_IF([test "x${ac_cv_env_LDFLAGS_set}" = "x"],[ - LDFLAGS="-L/usr/local/lib/${isainfo_k} ${LDFLAGS}" - ]) + AS_IF([test "x${ac_cv_env_LDFLAGS_set}" = "x"],[ + LDFLAGS="-L/usr/local/lib/${isainfo_k} ${LDFLAGS}" + ]) - AS_IF([test "x$ac_enable_64bit" = "xyes"],[ AS_IF([test "x$libdir" = "x\${exec_prefix}/lib"],[ dnl The user hasn't overridden the default libdir, so we'll dnl the dir suffix to match solaris 32/64-bit policy libdir="${libdir}/${isainfo_k}" ]) - CPPFLAGS="-m64 ${CPPFLAGS}" - LDFLAGS="-m64 ${LDFLAGS}" + AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"],[ + CFLAGS="${CFLAGS} -m64" + ac_cv_env_CFLAGS_set=set + ac_cv_env_CFLAGS_value='-m64' + ]) + AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"],[ + CXXFLAGS="${CXXFLAGS} -m64" + ac_cv_env_CXXFLAGS_set=set + ac_cv_env_CXXFLAGS_value='-m64' + ]) + AS_IF([test "$target_cpu" = "sparc" -a "x$SUNCC" = "xyes"],[ AM_CFLAGS="-xmemalign=8s ${AM_CFLAGS}" AM_CXXFLAGS="-xmemalign=8s ${AM_CXXFLAGS}" diff --git a/m4/pandora_canonical.m4 b/m4/pandora_canonical.m4 index 90ea6da8..ec104b7d 100644 --- a/m4/pandora_canonical.m4 +++ b/m4/pandora_canonical.m4 @@ -4,7 +4,7 @@ dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Which version of the canonical setup we're using -AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.22]) +AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.45]) AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[ dnl Force dependency tracking on for Sun Studio builds @@ -63,19 +63,17 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[ dnl Once we can use a modern autoconf, we can use this dnl AC_PROG_CC_C99 - AC_PROG_CXX + AC_REQUIRE([AC_PROG_CXX]) + gl_USE_SYSTEM_EXTENSIONS AC_PROG_CPP AM_PROG_CC_C_O - gl_USE_SYSTEM_EXTENSIONS m4_if(PCT_FORCE_GCC42, [yes], [ AS_IF([test "$GCC" = "yes"], PANDORA_ENSURE_GCC_VERSION) ]) - AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) - AC_CHECK_DECL([__ICC], [INTELCC="yes"], [INTELCC="no"]) - AS_IF([test "x$INTELCC" = "xyes"], [enable_rpath=no]) + PANDORA_PLATFORM PANDORA_LIBTOOL @@ -140,6 +138,9 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[ ]) ]) + PANDORA_USE_PIPE + + AM_CPPFLAGS="-I\${top_srcdir} -I\${top_builddir} ${AM_CPPFLAGS}" AM_CFLAGS="${AM_CFLAGS} ${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}" AM_CXXFLAGS="${AM_CXXFLAGS} ${CXX_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}" diff --git a/m4/pandora_have_better_malloc.m4 b/m4/pandora_have_better_malloc.m4 index 4563e3b5..18b47480 100644 --- a/m4/pandora_have_better_malloc.m4 +++ b/m4/pandora_have_better_malloc.m4 @@ -11,8 +11,16 @@ AC_DEFUN([PANDORA_HAVE_BETTER_MALLOC],[ AC_ARG_ENABLE([umem], [AS_HELP_STRING([--enable-umem], [Enable linking with libumem @<:@default=off@:>@])], - [ac_enable_umem="$enableval"], - [ac_enable_umem="no"]) + [ac_enable_umem="$enableval"],[ + case "$target_os" in + *solaris*) + ac_enable_umem="yes" + ;; + *) + ac_enable_umem="no" + ;; + esac + ]) AC_ARG_ENABLE([tcmalloc], [AS_HELP_STRING([--enable-tcmalloc], diff --git a/m4/pandora_have_libdrizzle.m4 b/m4/pandora_have_libdrizzle.m4 index ea86dd16..218d1fad 100644 --- a/m4/pandora_have_libdrizzle.m4 +++ b/m4/pandora_have_libdrizzle.m4 @@ -9,16 +9,25 @@ AC_DEFUN([_PANDORA_SEARCH_LIBDRIZZLE],[ dnl -------------------------------------------------------------------- dnl Check for libdrizzle dnl -------------------------------------------------------------------- - - AC_LIB_HAVE_LINKFLAGS(drizzle,,[ - #include + + AC_ARG_ENABLE([libdrizzle], + [AS_HELP_STRING([--disable-libdrizzle], + [Build with libdrizzle support @<:@default=on@:>@])], + [ac_enable_libdrizzle="$enableval"], + [ac_enable_libdrizzle="yes"]) + + AS_IF([test "x$ac_enable_libdrizzle" = "xyes"],[ + AC_LIB_HAVE_LINKFLAGS(drizzle,,[ + #include + ],[ + drizzle_st drizzle; + drizzle_version(); + ]) ],[ - drizzle_st drizzle; - drizzle_version(); + ac_cv_libdrizzle="no" ]) AM_CONDITIONAL(HAVE_LIBDRIZZLE, [test "x${ac_cv_libdrizzle}" = "xyes"]) - ]) AC_DEFUN([PANDORA_HAVE_LIBDRIZZLE],[ @@ -27,7 +36,7 @@ AC_DEFUN([PANDORA_HAVE_LIBDRIZZLE],[ AC_DEFUN([PANDORA_REQUIRE_LIBDRIZZLE],[ AC_REQUIRE([PANDORA_HAVE_LIBDRIZZLE]) - AS_IF([test x$ac_cv_libdrizzle = xno], + AS_IF([test "x${ac_cv_libdrizzle}" = "xno"], AC_MSG_ERROR([libdrizzle is required for ${PACKAGE}])) ]) diff --git a/m4/pandora_have_libgearman.m4 b/m4/pandora_have_libgearman.m4 index fc0def74..2387bed9 100644 --- a/m4/pandora_have_libgearman.m4 +++ b/m4/pandora_have_libgearman.m4 @@ -10,14 +10,24 @@ AC_DEFUN([_PANDORA_SEARCH_LIBGEARMAN],[ dnl Check for libgearman dnl -------------------------------------------------------------------- - AC_LIB_HAVE_LINKFLAGS(gearman,, - [#include ],[ - gearman_client_st gearman_client; - gearman_version(); - ]) + AC_ARG_ENABLE([libgearman], + [AS_HELP_STRING([--disable-libgearman], + [Build with libgearman support @<:@default=on@:>@])], + [ac_enable_libgearman="$enableval"], + [ac_enable_libgearman="yes"]) + + AS_IF([test "x$ac_enable_libgearman" = "xyes"],[ + AC_LIB_HAVE_LINKFLAGS(gearman,,[ + #include + ],[ + gearman_client_st gearman_client; + gearman_version(); + ]) + ],[ + ac_cv_libgearman="no" + ]) AM_CONDITIONAL(HAVE_LIBGEARMAN, [test "x${ac_cv_libgearman}" = "xyes"]) - ]) AC_DEFUN([PANDORA_HAVE_LIBGEARMAN],[ @@ -26,6 +36,6 @@ AC_DEFUN([PANDORA_HAVE_LIBGEARMAN],[ AC_DEFUN([PANDORA_REQUIRE_LIBGEARMAN],[ AC_REQUIRE([PANDORA_HAVE_LIBGEARMAN]) - AS_IF([test x$ac_cv_libgearman = xno], + AS_IF([test "x${ac_cv_libgearman}" = "xno"], AC_MSG_ERROR([libgearman is required for ${PACKAGE}])) ]) diff --git a/m4/pandora_have_libmemcached.m4 b/m4/pandora_have_libmemcached.m4 index d4bebf53..d1a44c60 100644 --- a/m4/pandora_have_libmemcached.m4 +++ b/m4/pandora_have_libmemcached.m4 @@ -10,18 +10,27 @@ AC_DEFUN([_PANDORA_SEARCH_LIBMEMCACHED],[ dnl Check for libmemcached dnl -------------------------------------------------------------------- - AC_LIB_HAVE_LINKFLAGS(memcached,,[ - #include - ], [ - memcached_st memc; - memcached_dump_func *df; - memcached_version(); + AC_ARG_ENABLE([libmemcached], + [AS_HELP_STRING([--disable-libmemcached], + [Build with libmemcached support @<:@default=on@:>@])], + [ac_enable_libmemcached="$enableval"], + [ac_enable_libmemcached="yes"]) + + AS_IF([test "x$ac_enable_libmemcached" = "xyes"],[ + AC_LIB_HAVE_LINKFLAGS(memcached,,[ + #include + ],[ + memcached_st memc; + memcached_dump_func *df; + memcached_lib_version(); + ]) + ],[ + ac_cv_libmemcached="no" ]) AM_CONDITIONAL(HAVE_LIBMEMCACHED, [test "x${ac_cv_libmemcached}" = "xyes"]) AS_IF([test "x${ac_cv_libmemcached}" = "xyes"], [ PANDORA_WITH_MEMCACHED ]) - ]) AC_DEFUN([PANDORA_HAVE_LIBMEMCACHED],[ diff --git a/m4/pandora_have_libpq.m4 b/m4/pandora_have_libpq.m4 index 86ccb495..3812dc59 100644 --- a/m4/pandora_have_libpq.m4 +++ b/m4/pandora_have_libpq.m4 @@ -10,11 +10,26 @@ AC_DEFUN([_PANDORA_SEARCH_LIBPQ],[ dnl Check for libpq dnl -------------------------------------------------------------------- - AC_LIB_HAVE_LINKFLAGS(pq,,[ - #include - ], [ - PGconn *conn; - conn = PQconnectdb(NULL); + AC_ARG_ENABLE([libpq], + [AS_HELP_STRING([--disable-libpq], + [Build with libpq support @<:@default=on@:>@])], + [ac_enable_libpq="$enableval"], + [ac_enable_libpq="yes"]) + + AS_IF([test "x$ac_enable_libpq" = "xyes"],[ + AC_CHECK_HEADERS([libpq-fe.h]) + AC_LIB_HAVE_LINKFLAGS(pq,,[ + #ifdef HAVE_LIBPQ_FE_H + # include + #else + # include + #endif + ], [ + PGconn *conn; + conn = PQconnectdb(NULL); + ]) + ],[ + ac_cv_libpq="no" ]) AM_CONDITIONAL(HAVE_LIBPQ, [test "x${ac_cv_libpq}" = "xyes"]) @@ -26,6 +41,6 @@ AC_DEFUN([PANDORA_HAVE_LIBPQ],[ AC_DEFUN([PANDORA_REQUIRE_LIBPQ],[ AC_REQUIRE([PANDORA_HAVE_LIBPQ]) - AS_IF([test x$ac_cv_libpq = xno], - AC_MSG_ERROR([libpq is required for ${PACKAGE}])) + AS_IF([test "x${ac_cv_libpq}" = "xno"], + AC_MSG_ERROR([libpq is required for ${PACKAGE}])) ]) diff --git a/m4/pandora_have_libsqlite3.m4 b/m4/pandora_have_libsqlite3.m4 new file mode 100644 index 00000000..15e0195c --- /dev/null +++ b/m4/pandora_have_libsqlite3.m4 @@ -0,0 +1,42 @@ +dnl Copyright (C) 2009 Sun Microsystems +dnl This file is free software; Sun Microsystems +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([_PANDORA_SEARCH_LIBSQLITE3],[ + AC_REQUIRE([AC_LIB_PREFIX]) + + dnl -------------------------------------------------------------------- + dnl Check for libsqlite3 + dnl -------------------------------------------------------------------- + + AC_ARG_ENABLE([libsqlite3], + [AS_HELP_STRING([--disable-libsqlite3], + [Build with libsqlite3 support @<:@default=on@:>@])], + [ac_enable_libsqlite3="$enableval"], + [ac_enable_libsqlite3="yes"]) + + AS_IF([test "x$ac_enable_libsqlite3" = "xyes"],[ + AC_LIB_HAVE_LINKFLAGS(sqlite3,,[ + #include + #include + ],[ + sqlite3 *db; + sqlite3_open(NULL, &db); + ]) + ],[ + ac_cv_libsqlite3="no" + ]) + + AM_CONDITIONAL(HAVE_LIBSQLITE3, [test "x${ac_cv_libsqlite3}" = "xyes"]) +]) + +AC_DEFUN([PANDORA_HAVE_LIBSQLITE3],[ + AC_REQUIRE([_PANDORA_SEARCH_LIBSQLITE3]) +]) + +AC_DEFUN([PANDORA_REQUIRE_LIBSQLITE3],[ + AC_REQUIRE([_PANDORA_SEARCH_LIBSQLITE3]) + AS_IF([test "x${ac_cv_libsqlite3}" = "xno"], + AC_MSG_ERROR([libsqlite3 is required for ${PACKAGE}])) +]) diff --git a/m4/pandora_have_protobuf.m4 b/m4/pandora_have_protobuf.m4 new file mode 100644 index 00000000..3b1652e9 --- /dev/null +++ b/m4/pandora_have_protobuf.m4 @@ -0,0 +1,80 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + +dnl -------------------------------------------------------------------- +dnl Check for Google Proto Buffers +dnl -------------------------------------------------------------------- + +AC_DEFUN([_PANDORA_SEARCH_LIBPROTOBUF],[ + AC_REQUIRE([PANDORA_HAVE_PTHREAD]) + + AC_LANG_PUSH([C++]) + save_CXXFLAGS="${CXXFLAGS}" + CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" + AC_LIB_HAVE_LINKFLAGS(protobuf,, + [#include ], + [google::protobuf::FileDescriptor* file;], + [system]) + CXXFLAGS="${save_CXXFLAGS}" + AC_LANG_POP() +]) + +AC_DEFUN([PANDORA_HAVE_LIBPROTOBUF],[ + AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) +]) + +AC_DEFUN([PANDORA_REQUIRE_LIBPROTOBUF],[ + AC_REQUIRE([PANDORA_HAVE_LIBPROTOBUF]) + AS_IF([test x$ac_cv_libprotobuf = xno], + AC_MSG_ERROR([libprotobuf is required for ${PACKAGE}. On Debian this can be found in libprotobuf-dev. On RedHat this can be found in protobuf-devel.])) +]) + +AC_DEFUN([PANDORA_PROTOBUF_REQUIRE_VERSION],[ + AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) + p_recent_ver=$1 + p_recent_ver_major=`echo $p_recent_ver | cut -f1 -d.` + p_recent_ver_minor=`echo $p_recent_ver | cut -f2 -d.` + p_recent_ver_patch=`echo $p_recent_ver | cut -f3 -d.` + p_recent_ver_hex=`printf "%d%03d%03d" $p_recent_ver_major $p_recent_ver_minor $p_recent_ver_patch` + AC_LANG_PUSH([C++]) + AC_CACHE_CHECK([for protobuf >= $p_recent_ver], + [drizzle_cv_protobuf_recent], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +#if GOOGLE_PROTOBUF_VERSION < $p_recent_ver_hex +# error Your version of Protobuf is too old +#endif + ]])], + [drizzle_cv_protobuf_recent=yes], + [drizzle_cv_protobuf_recent=no])]) + AS_IF([test "$drizzle_cv_protobuf_recent" = "no"],[ + AC_MSG_ERROR([Your version of Google Protocol Buffers is too old. ${PACKAGE} requires at least version $p_recent_ver]) + ]) + AC_LANG_POP() +]) + +AC_DEFUN([_PANDORA_SEARCH_PROTOC],[ + AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) + AC_PATH_PROG([PROTOC],[protoc],[no],[$LIBPROTOBUF_PREFIX/bin:$PATH]) +]) + +AC_DEFUN([PANDORA_HAVE_PROTOC],[ + AC_REQUIRE([_PANDORA_SEARCH_PROTOC]) +]) + +AC_DEFUN([PANDORA_REQUIRE_PROTOC],[ + AC_REQUIRE([PANDORA_HAVE_PROTOC]) + AS_IF([test "x$PROTOC" = "xno"],[ + AC_MSG_ERROR([Couldn't find the protoc compiler. On Debian this can be found in protobuf-compiler. On RedHat this can be found in protobuf-compiler.]) + ]) +]) + + diff --git a/m4/pandora_platform.m4 b/m4/pandora_platform.m4 new file mode 100644 index 00000000..76ef66bc --- /dev/null +++ b/m4/pandora_platform.m4 @@ -0,0 +1,68 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + +AC_DEFUN([PANDORA_PLATFORM],[ + + dnl Canonicalize the configuration name. + + AC_DEFINE_UNQUOTED([HOST_VENDOR], ["$host_vendor"],[Vendor of Build System]) + AC_DEFINE_UNQUOTED([HOST_OS], ["$host_os"], [OS of Build System]) + AC_DEFINE_UNQUOTED([HOST_CPU], ["$host_cpu"], [CPU of Build System]) + + AC_DEFINE_UNQUOTED([TARGET_VENDOR], ["$target_vendor"],[Vendor of Target System]) + AC_DEFINE_UNQUOTED([TARGET_OS], ["$target_os"], [OS of Target System]) + AC_DEFINE_UNQUOTED([TARGET_CPU], ["$target_cpu"], [CPU of Target System]) + + + case "$host_os" in + *solaris*|*freebsd*) + AS_IF([test "x${ac_cv_env_CPPFLAGS_set}" = "x"],[ + CPPFLAGS="${CPPFLAGS} -I/usr/local/include" + ]) + + AS_IF([test "x${ac_cv_env_LDFLAGS_set}" = "x"],[ + LDFLAGS="${LDFLAGS} -L/usr/local/lib" + ]) + ;; + esac + + case "$target_os" in + *linux*) + TARGET_LINUX="true" + AC_SUBST(TARGET_LINUX) + AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux]) + ;; + *darwin*) + TARGET_OSX="true" + AC_SUBST(TARGET_OSX) + AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX]) + ;; + *solaris*) + TARGET_SOLARIS="true" + AC_SUBST(TARGET_SOLARIS) + AC_DEFINE([TARGET_OS_SOLARIS], [1], [Whether we are building for Solaris]) + ;; + *freebsd*) + TARGET_FREEBSD="true" + AC_SUBST(TARGET_FREEBSD) + AC_DEFINE([TARGET_OS_FREEBSD], [1], [Whether we are building for FreeBSD]) + AC_DEFINE([__APPLE_CC__],[1],[Workaround for bug in FreeBSD headers]) + ;; + *) + ;; + esac + + AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) + AC_CHECK_DECL([__ICC], [INTELCC="yes"], [INTELCC="no"]) + + AS_IF([test "x$INTELCC" = "xyes"], [enable_rpath=no]) + +]) diff --git a/m4/pandora_plugins.m4 b/m4/pandora_plugins.m4 new file mode 100644 index 00000000..c4df08dc --- /dev/null +++ b/m4/pandora_plugins.m4 @@ -0,0 +1,34 @@ +dnl Copyright (C) 2009 Sun Microsystems +dnl This file is free software; Sun Microsystems +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl-------------------------------------------------------------------- +dnl PANDORA_PLUGINS +dnl Declare our plugin modules +dnl-------------------------------------------------------------------- + +AC_DEFUN([PANDORA_PLUGINS],[ + + m4_include(config/plugin.ac) + dnl Add code here to read set plugin lists and set drizzled_default_plugin_list + AC_DEFINE_UNQUOTED([PANDORA_PLUGIN_LIST],[$pandora_default_plugin_list], + [List of plugins that should be loaded on startup if no + value is given for --plugin-load]) + + pandora_builtin_list=`echo $pandora_builtin_list | sed 's/, *$//'` + AC_DEFINE_UNQUOTED([PANDORA_BUILTIN_LIST],[$pandora_builtin_list], + [List of plugins to be built in]) + + AC_SUBST(pandora_plugin_test_list) + AC_SUBST(pandora_plugin_libs) + + pandora_plugin_defs=`echo $pandora_plugin_defs | sed 's/, *$//'` + AC_SUBST(pandora_plugin_defs) + + AC_SUBST(PANDORA_PLUGIN_DEP_LIBS) + AC_SUBST(pkgplugindir,"\$(pkglibdir)/plugin") +]) + +AC_DEFUN([PANDORA_ADD_PLUGIN_DEP_LIB],[ + PANDORA_PLUGIN_DEP_LIBS="${PANDORA_PLUGIN_DEP_LIBS} $*" +]) \ No newline at end of file diff --git a/m4/pandora_pthread.m4 b/m4/pandora_pthread.m4 new file mode 100644 index 00000000..92bdfc44 --- /dev/null +++ b/m4/pandora_pthread.m4 @@ -0,0 +1,34 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + + +dnl -------------------------------------------------------------------- +dnl Check for libpthread +dnl -------------------------------------------------------------------- + +AC_DEFUN([_PANDORA_SEARCH_PTHREAD],[ + ACX_PTHREAD + LIBS="${PTHREAD_LIBS} ${LIBS}" + AM_CFLAGS="${PTHREAD_CFLAGS} ${AM_CFLAGS}" + AM_CXXFLAGS="${PTHREAD_CFLAGS} ${AM_CXXFLAGS}" + CC="$PTHREAD_CC" +]) + + +AC_DEFUN([PANDORA_HAVE_PTHREAD],[ + AC_REQUIRE([_PANDORA_SEARCH_PTHREAD]) +]) + +AC_DEFUN([PANDORA_REQUIRE_PTHREAD],[ + AC_REQUIRE([PANDORA_HAVE_PTHREAD]) + AS_IF([test "x$acx_pthread_ok" != "xyes"],[ + AC_MSG_ERROR(could not find libpthread)]) +]) diff --git a/m4/pandora_swig.m4 b/m4/pandora_swig.m4 new file mode 100644 index 00000000..07f57e2d --- /dev/null +++ b/m4/pandora_swig.m4 @@ -0,0 +1,32 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + +AC_DEFUN([PANDORA_SWIG],[ + + AC_PROG_SWIG(1.3.36) + AC_DEFINE([SWIG_TYPE_TABLE], + [libgearman], + [Type Table name for SWIG symbol table]) + + dnl Have to hard-code /usr/local/include and /usr/include into the path. + dnl I hate this. Why is swig sucking me + SWIG="$SWIG \${DEFS} -I\${top_srcdir} -I\${top_builddir} -I/usr/local/include -I/usr/include" + AC_SUBST([SWIG]) + + + AC_CACHE_CHECK([if swig supports Python3], + [ac_cv_swig_has_python3_], + [ + AS_IF([swig -python3 2>&1 | grep "Unable to find" > /dev/null], + [ac_cv_swig_has_python3_=no], + [ac_cv_swig_has_python3_=yes]) + ]) +]) diff --git a/m4/pandora_use_pipe.m4 b/m4/pandora_use_pipe.m4 new file mode 100644 index 00000000..8e8c28a2 --- /dev/null +++ b/m4/pandora_use_pipe.m4 @@ -0,0 +1,36 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor +dnl +dnl Test if we can Use -pipe to avoid making temp files during the compile. +dnl Should speed up compile on slower disks + +AC_DEFUN([PANDORA_USE_PIPE],[ + + AS_IF([test "$GCC" = "yes"],[ + AC_CACHE_CHECK([for working -pipe], [pandora_cv_use_pipe], [ + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include + +int main(int argc, char** argv) +{ + (void) argc; (void) argv; + return 0; +} + ]])], + [pandora_cv_use_pipe=yes], + [pandora_cv_use_pipe=no]) + ]) + AS_IF([test "$pandora_cv_use_pipe" = "yes"],[ + AM_CFLAGS="-pipe ${AM_CFLAGS}" + AM_CXXFLAGS="-pipe ${AM_CXXFLAGS}" + ]) + ]) +]) diff --git a/m4/pandora_warnings.m4 b/m4/pandora_warnings.m4 index 46d752ea..9ccb95bd 100644 --- a/m4/pandora_warnings.m4 +++ b/m4/pandora_warnings.m4 @@ -206,7 +206,10 @@ template <> void C::foo(); [CXX_WARNINGS="${CXX_WARNINGS} -Wno-redundant-decls"]) NO_REDUNDANT_DECLS="-Wno-redundant-decls" - PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow" + dnl TODO: Figure out a better way to deal with this: + PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow -Wno-missing-braces" + NO_WERROR="-Wno-error" + INNOBASE_SKIP_WARNINGS="-Wno-shadow -Wno-cast-align" ]) ]) @@ -247,8 +250,9 @@ template <> void C::foo(); CC_WARNINGS="-v -errtags=yes ${W_FAIL} ${CC_WARNINGS_FULL}" CXX_WARNINGS="+w +w2 -xwe -xport64 -errtags=yes ${CXX_WARNINGS_FULL} ${W_FAIL}" - PROTOSKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,wbadinitl,identexpected,inllargeuse,truncwarn1,signextwarn" + PROTOSKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,wbadinitl,identexpected,inllargeuse,truncwarn1,signextwarn,partinit,notused,badargtype2w,wbadinit" NO_UNREACHED="-erroff=E_STATEMENT_NOT_REACHED" + NO_WERROR="-errwarn=%none" ]) @@ -258,5 +262,7 @@ template <> void C::foo(); AC_SUBST(NO_SHADOW) AC_SUBST(NO_STRICT_ALIASING) AC_SUBST(PROTOSKIP_WARNINGS) + AC_SUBST(INNOBASE_SKIP_WARNINGS) + AC_SUBST(NO_WERROR) ]) diff --git a/m4/pandora_with_lua.m4 b/m4/pandora_with_lua.m4 new file mode 100644 index 00000000..6e4a96fe --- /dev/null +++ b/m4/pandora_with_lua.m4 @@ -0,0 +1,45 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + +AC_DEFUN([PANDORA_WITH_LUA],[ + dnl Check for lua + AC_ARG_WITH([lua], + [AS_HELP_STRING([--with-lua], + [Build Lua Bindings @<:@default=yes@:>@])], + [with_lua=$withval], + [with_lua=yes]) + + AS_IF([test "x$with_lua" != "xno"],[ + AS_IF([test "x$with_lua" = "xyes"], + [LUAPC=lua], + [LUAPC=$with_lua]) + + PKG_CHECK_MODULES([LUA], $LUAPC >= 5.1, [ + AC_DEFINE([HAVE_LUA], [1], [liblua]) + AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) + with_lua=yes + ],[ + PKG_CHECK_MODULES([LUA], lua5.1 >= 5.1, [ + AC_DEFINE([HAVE_LUA], [1], [liblua]) + AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) + with_lua=yes + ],[ + AC_DEFINE([HAVE_LUA],["x"],["x"]) + with_lua=no + ]) + ]) + + AC_SUBST(LUA_CFLAGS) + AC_SUBST(LUA_LIBS) + ]) + AM_CONDITIONAL(BUILD_LUA, test "$with_lua" = "yes") + +]) diff --git a/m4/pandora_with_perl.m4 b/m4/pandora_with_perl.m4 new file mode 100644 index 00000000..e3fd50a2 --- /dev/null +++ b/m4/pandora_with_perl.m4 @@ -0,0 +1,38 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + + +AC_DEFUN([PANDORA_WITH_PERL], [ + + AC_ARG_WITH([perl], + [AS_HELP_STRING([--with-perl], + [Build Perl Bindings @<:@default=yes@:>@])], + [with_perl=$withval], + [with_perl=yes]) + + + AS_IF([test "x$with_perl" != "xno"],[ + AS_IF([test "x$with_perl" != "xyes"], + [ac_chk_perl=$with_perl], + [ac_chk_perl=perl]) + AC_CHECK_PROGS(PERL,$ac_chk_perl) + ]) + + AM_CONDITIONAL(BUILD_PERL, [test "$with_perl" = "yes"]) + +dnl Don't think we need these anymore, but it's a good reference +dnl if test "x$PERL" != "x"; then +dnl PERLCCFLAGS=`$PERL -MConfig -e 'print $Config{ccflags};'` +dnl PERLCPPFLAGS=`$PERL -MConfig -e 'print $Config{cppflags};'` +dnl PERLLIBS=`$PERL -MConfig -e 'print $Config{perllibs};'` +dnl fi + +]) diff --git a/m4/pandora_with_php.m4 b/m4/pandora_with_php.m4 new file mode 100644 index 00000000..4e163fd1 --- /dev/null +++ b/m4/pandora_with_php.m4 @@ -0,0 +1,56 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + + +AC_DEFUN([PANDORA_WITH_PHP],[ + + AC_ARG_WITH([php], + [AS_HELP_STRING([--with-php], + [Build NDB/PHP @<:@default=no@:>@])], + [with_php=$withval], + [with_php=no]) + + AS_IF([test "x$with_php" != "xno"],[ + dnl We explicitly requested PHP build. Fail on too-young SWIG. + AS_IF([test "x$SWIG_CAN_BUILD_PHP" != "xyes"], + [AC_MSG_ERROR("Your version of SWIG is too young to build NDB/PHP. >=1.3.33 is required!")]) + AS_IF([test "x$with_php" != "xyes"], + [ac_check_php_config=$with_php], + [ac_check_php_config="php-config php-config5"]) + AC_CHECK_PROGS(PHP_CONFIG, [$ac_check_php_config]) + ]) + + AS_IF([test "x$PHP_CONFIG" != "x"],[ + PHP_CFLAGS=`$PHP_CONFIG --includes` + PHP_CPPFLAGS=`$PHP_CONFIG --includes` + PHP_LDFLAGS=`$PHP_CONFIG --ldflags` + PHP_EXTDIR=`$PHP_CONFIG --extension-dir` + strip_php_prefix=`$PHP_CONFIG --prefix | sed 's/\//./g'` + PHP_ARCH_DIR=`echo $PHP_EXTDIR | sed "s/$strip_php_prefix//"` + ],[ + PHP_CFLAGS= + PHP_CPPFLAGS= + PHP_LDFLAGS= + PHP_EXTDIR= + PHP_ARCH_DIR= + with_php=no + ]) + + AC_SUBST(PHP_CFLAGS) + AC_SUBST(PHP_CPPFLAGS) + AC_SUBST(PHP_LDFLAGS) + AC_SUBST(PHP_EXTDIR) + AC_SUBST(PHP_ARCH_DIR) + + AM_CONDITIONAL(BUILD_PHP, test "$with_php" = "yes") + +]) + diff --git a/m4/pandora_with_python.m4 b/m4/pandora_with_python.m4 new file mode 100644 index 00000000..97aa57f8 --- /dev/null +++ b/m4/pandora_with_python.m4 @@ -0,0 +1,28 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + + +AC_DEFUN([PANDORA_WITH_PYTHON], [ + + AC_ARG_WITH([python], + [AS_HELP_STRING([--with-python], + [Build Python Bindings @<:@default=yes@:>@])], + [with_python=$withval], + [with_python=yes]) + + AS_IF([test "x$with_python" != "xno"],[ + AS_IF([test "x$with_python" != "xyes"],[PYTHON=$with_python]) + AM_PATH_PYTHON([2.4],,[with_python="no"]) + AC_PYTHON_DEVEL() + AS_IF([test "x$pythonexists" = "xno"],[with_python="no"]) + ]) + AM_CONDITIONAL(BUILD_PYTHON, [test "$with_python" = "yes"]) +]) diff --git a/m4/pandora_with_python3.m4 b/m4/pandora_with_python3.m4 new file mode 100644 index 00000000..1b964ff3 --- /dev/null +++ b/m4/pandora_with_python3.m4 @@ -0,0 +1,35 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + +AC_DEFUN([PANDORA_WITH_PYTHON3], [ + + AC_REQUIRE([PANDORA_SWIG]) + + AC_ARG_WITH([python3], + [AS_HELP_STRING([--with-python3], + [Build Python3 Bindings @<:@default=yes@:>@])], + [with_python3=$withval], + [with_python3=yes]) + + AS_IF([test "x$ac_cv_swig_has_python3_" != "xno"],[ + AS_IF([test "x$with_python3" != "xno"],[ + AS_IF([test "x$with_python3" != "xyes"], + [PYTHON3=$with_python3], + [AC_PATH_PROG([PYTHON3],[python3],[no]) + AS_IF([test "x$PYTHON3" = "xno"], + [with_python3=no]) + ]) + ]) + ],[ + with_python3=no + ]) +AM_CONDITIONAL(BUILD_PYTHON3, [test "$with_python3" = "yes"]) +]) diff --git a/m4/pandora_with_r.m4 b/m4/pandora_with_r.m4 new file mode 100644 index 00000000..cc6dc594 --- /dev/null +++ b/m4/pandora_with_r.m4 @@ -0,0 +1,33 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + +AC_DEFUN([PANDORA_WITH_R],[ + dnl Check for GNU R + AC_ARG_WITH([r], + [AS_HELP_STRING([--with-r], + [Build R Bindings @<:@default=yes@:>@])], + [with_r=$withval], + [with_r=yes]) + + AS_IF([test "x$with_r" != "xno"],[ + + PKG_CHECK_MODULES([R], [libR], [ + with_r=yes + ],[ + with_r=no + ]) + + AC_SUBST(R_CFLAGS) + AC_SUBST(R_LIBS) + ]) + AM_CONDITIONAL(BUILD_R, test "$with_r" = "yes") + +]) diff --git a/m4/pandora_with_ruby.m4 b/m4/pandora_with_ruby.m4 new file mode 100644 index 00000000..63b4263f --- /dev/null +++ b/m4/pandora_with_ruby.m4 @@ -0,0 +1,79 @@ +dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- +dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: +dnl +dnl pandora-build: A pedantic build system +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl From Monty Taylor + + +AC_DEFUN([PANDORA_WITH_RUBY], [ + + AC_ARG_WITH([ruby], + [AS_HELP_STRING([--with-ruby], + [Build Ruby Bindings @<:@default=yes@:>@])], + [with_ruby=$withval], + [with_ruby=ruby]) + + AS_IF([test "x$with_ruby" != "xno"],[ + AS_IF([test "x$with_ruby" != "xyes"], + [ac_chk_ruby=$with_ruby], + [ac_chk_ruby=ruby1.8 ruby]) + AC_CHECK_PROGS(RUBY,$ac_chk_ruby) + ]) + + AS_IF([test "x$RUBY" != "x"],[ + + AC_MSG_CHECKING(for ruby devel) + + dnl need to change quotes to allow square brackets + changequote(<<, >>)dnl + ruby_prefix=`$RUBY -rrbconfig -e "print Config::CONFIG['archdir']"` + strip_ruby_prefix=`$RUBY -rrbconfig -e "print Config::CONFIG['prefix']" | sed 's/\//./g'` + + RUBY_LIB=`$RUBY -rrbconfig -e "puts Config::CONFIG['ruby_install_name']"` + LIBRUBYARG_SHARED=`$RUBY -rrbconfig -e "puts Config::CONFIG['LIBRUBYARG_SHARED']"` + RUBY_DIR=`$RUBY -rrbconfig -e "puts Config::CONFIG['archdir']"` + RUBY_ARCH_DIR=`echo $RUBY_DIR | sed "s/$strip_ruby_prefix//"` + RUBY_LIBDIR=`$RUBY -rrbconfig -e "puts Config::CONFIG['rubylibdir']"` + RUBY_INCLUDES="-I$ruby_prefix" + changequote([, ])dnl + + ac_save_CFLAGS="$CFLAGS" + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" + CFLAGS="$ac_save_CFLAGS $RUBY_INCLUDES" + CPPFLAGS="$ac_save_CPPFLAGS $RUBY_INCLUDES" + LDFLAGS="$ac_save_LDFLAGS $LIBRUBYARG_SHARED" + + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[VALUE rb_ac_test = rb_define_module("actest");]])],[with_ruby="yes";AC_MSG_RESULT(found)],[with_ruby="no";AC_MSG_RESULT(missing)]) + + CPPFLAGS="$ac_save_CPPFLAGS" + CFLAGS="$ac_save_CFLAGS" + LDFLAGS="$ac_save_LDFLAGS" + ],[ + # This allows 'make clean' in the ruby directory to work when + # ruby isn't available + RUBY= + RUBY_INCLUDES= + LIBRUBYARG_SHARED= + RUBY_LIB= + RUBY_DIR= + RUBY_LIBDIR= + RUBY_ARCH_DIR= + with_ruby="no" + ]) + + AC_SUBST(RUBY_INCLUDES) + AC_SUBST(LIBRUBYARG_SHARED) + AC_SUBST(RUBY_LIB) + AC_SUBST(RUBY_DIR) + AC_SUBST(RUBY_LIBDIR) + AC_SUBST(RUBY_ARCH_DIR) + + AS_IF([test "x$RUBY_DIR" = "x"],[with_ruby="no"]) + AM_CONDITIONAL(BUILD_RUBY, test "$with_ruby" = "yes") +]) diff --git a/m4/pkg.m4 b/m4/pkg.m4 new file mode 100644 index 00000000..0048a3fa --- /dev/null +++ b/m4/pkg.m4 @@ -0,0 +1,157 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES -- 2.30.2