summaryrefslogtreecommitdiffstats
path: root/ctdb/lib/talloc/libtalloc.m4
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2012-03-21 13:18:10 +1100
committerAmitay Isaacs <amitay@gmail.com>2012-03-30 12:33:27 +1100
commit89415a1f00eb3cbdb17133037bb6bf8e64fea136 (patch)
tree532a3aa77d9e8269191cc6653350d1f03445f9d8 /ctdb/lib/talloc/libtalloc.m4
parent25d01ece0767cd646d734c4de7e9822fb396ed0c (diff)
build: Use system talloc library if available
Signed-off-by: Amitay Isaacs <amitay@gmail.com> (This used to be ctdb commit 94f1e02406c353c3a0235685acdd107ee5a7f285)
Diffstat (limited to 'ctdb/lib/talloc/libtalloc.m4')
-rw-r--r--ctdb/lib/talloc/libtalloc.m463
1 files changed, 44 insertions, 19 deletions
diff --git a/ctdb/lib/talloc/libtalloc.m4 b/ctdb/lib/talloc/libtalloc.m4
index 4b22c8e41a..65227d89f6 100644
--- a/ctdb/lib/talloc/libtalloc.m4
+++ b/ctdb/lib/talloc/libtalloc.m4
@@ -1,25 +1,50 @@
-dnl find the talloc sources. This is meant to work both for
-dnl talloc standalone builds, and builds of packages using talloc
-tallocdir=""
-tallocpaths=". lib/talloc talloc ../talloc ../lib/talloc"
-for d in $tallocpaths; do
- if test -f "$srcdir/$d/talloc.c"; then
- tallocdir="$d"
- AC_SUBST(tallocdir)
- break;
- fi
-done
-if test x"$tallocdir" = "x"; then
- AC_MSG_ERROR([cannot find talloc source in $tallocpaths])
-fi
-TALLOC_OBJ="talloc.o"
-AC_SUBST(TALLOC_OBJ)
+dnl Check to see if we should use the included talloc
-TALLOC_CFLAGS="-I$srcdir/$tallocdir"
-AC_SUBST(TALLOC_CFLAGS)
+INCLUDED_TALLOC=auto
+AC_ARG_WITH(included-talloc,
+ [AC_HELP_STRING([--with-included-talloc], [use bundled talloc library, not from system])],
+ [ INCLUDED_TALLOC=$withval ])
-TALLOC_LIBS=""
AC_SUBST(TALLOC_LIBS)
+AC_SUBST(TALLOC_CFLAGS)
+
+if test x"$INCLUDED_TALLOC" != x"yes" ; then
+ AC_CHECK_HEADERS(talloc.h)
+ AC_CHECK_LIB(talloc, talloc_init, [ TALLOC_LIBS="-ltalloc" ])
+ if test x"$ac_cv_header_talloc_h" = x"no" -o x"$ac_cv_lib_talloc_talloc_init" = x"no" ; then
+ INCLUDED_TALLOC=yes
+ TALLOC_CFLAGS=""
+ else
+ INCLUDED_TALLOC=no
+ fi
+fi
+
+AC_MSG_CHECKING(whether to use included talloc)
+AC_MSG_RESULT($INCLUDED_TALLOC)
+if test x"$INCLUDED_TALLOC" != x"no" ; then
+ dnl find the talloc sources. This is meant to work both for
+ dnl talloc standalone builds, and builds of packages using talloc
+ tallocdir=""
+ tallocpaths=". lib/talloc talloc ../talloc ../lib/talloc"
+ for d in $tallocpaths; do
+ if test -f "$srcdir/$d/talloc.c"; then
+ tallocdir="$d"
+ AC_SUBST(tallocdir)
+ break
+ fi
+ done
+ if test x"$tallocdir" = "x"; then
+ AC_MSG_ERROR([cannot find talloc source in $tallocpaths])
+ fi
+ TALLOC_OBJ="talloc.o"
+ AC_SUBST(TALLOC_OBJ)
+
+ TALLOC_CFLAGS="-I$srcdir/$tallocdir"
+ AC_SUBST(TALLOC_CFLAGS)
+
+ TALLOC_LIBS=""
+ AC_SUBST(TALLOC_LIBS)
+fi
AC_CHECK_SIZEOF(size_t,cross)
AC_CHECK_SIZEOF(void *,cross)