summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2012-03-21 15:56:45 +1100
committerAmitay Isaacs <amitay@gmail.com>2012-03-30 12:33:28 +1100
commit13124e356ea2ede43ffa98dc0476330834c6cf3d (patch)
tree292722c02faf750f6fe6b01c339ac45094fcc774
parent89415a1f00eb3cbdb17133037bb6bf8e64fea136 (diff)
build: Use system tevent library if available
Signed-off-by: Amitay Isaacs <amitay@gmail.com> (This used to be ctdb commit 2ade83de4e1f318c91489ec9a7f90d1b26f77e1b)
-rwxr-xr-xctdb/Makefile.in12
-rw-r--r--ctdb/lib/tevent/libtevent.m466
2 files changed, 50 insertions, 28 deletions
diff --git a/ctdb/Makefile.in b/ctdb/Makefile.in
index 7def439749..d9a877c010 100755
--- a/ctdb/Makefile.in
+++ b/ctdb/Makefile.in
@@ -33,6 +33,10 @@ TALLOC_LIBS = @TALLOC_LIBS@
TALLOC_CFLAGS = @TALLOC_CFLAGS@
TALLOC_OBJ = @TALLOC_OBJ@
+TEVENT_LIBS = @TEVENT_LIBS@
+TEVENT_CFLAGS = @TEVENT_CFLAGS@
+TEVENT_OBJ = @TEVENT_OBJ@
+
SOCKET_WRAPPER_OBJ = @SOCKET_WRAPPER_OBJS@
PMDA_LIBS = -lpcp -lpcp_pmda
@@ -40,7 +44,7 @@ PMDA_INSTALL = @CTDB_PMDA_INSTALL@
PMDA_DEST_DIR = /var/lib/pcp/pmdas
CFLAGS=@CPPFLAGS@ -g -I$(srcdir)/include -Iinclude -Ilib -Ilib/util -I$(srcdir) \
- $(TALLOC_CFLAGS) -I@tdbdir@/include -I@libreplacedir@ \
+ $(TALLOC_CFLAGS) $(TEVENT_CFLAGS) -I@tdbdir@/include -I@libreplacedir@ \
-DVARDIR=\"$(localstatedir)\" -DETCDIR=\"$(etcdir)\" \
-DLOGDIR=\"$(logdir)\" \
-DUSE_MMAP=1 -DTEVENT_DEPRECATED_QUIET=1 @CFLAGS@ -Wno-format-zero-length $(POPT_CFLAGS) \
@@ -50,7 +54,7 @@ LDSHFLAGS=-fPIC -shared
#LDSHFLAGS=-fPIC -shared -Wl,-Bsymbolic -Wl,-z,relo -Wl,-Bsymbolic-funtions -Wl,--as-needed -Wl,-z,defs
SHLD=${CC} ${CFLAGS} ${LDSHFLAGS} -o $@
-LIB_FLAGS=@LDFLAGS@ -Llib @LIBS@ $(POPT_LIBS) $(TALLOC_LIBS) @INFINIBAND_LIBS@ @CTDB_PCAP_LDFLAGS@
+LIB_FLAGS=@LDFLAGS@ -Llib @LIBS@ $(POPT_LIBS) $(TALLOC_LIBS) $(TEVENT_LIBS) @INFINIBAND_LIBS@ @CTDB_PCAP_LDFLAGS@
UTIL_OBJ = lib/util/idtree.o lib/util/db_wrap.o lib/util/strlist.o lib/util/util.o \
lib/util/util_time.o lib/util/util_file.o lib/util/fault.o lib/util/substitute.o \
@@ -69,7 +73,7 @@ CTDB_TCP_OBJ = tcp/tcp_connect.o tcp/tcp_io.o tcp/tcp_init.o
CTDB_CLIENT_OBJ = client/ctdb_client.o \
$(CTDB_COMMON_OBJ) $(POPT_OBJ) $(UTIL_OBJ) $(TALLOC_OBJ) @TDB_OBJ@ \
- @LIBREPLACEOBJ@ $(EXTRA_OBJ) @TEVENT_OBJ@ $(SOCKET_WRAPPER_OBJ)
+ @LIBREPLACEOBJ@ $(EXTRA_OBJ) $(TEVENT_OBJ) $(SOCKET_WRAPPER_OBJ)
CTDB_SERVER_OBJ = server/ctdbd.o server/ctdb_daemon.o server/ctdb_lockwait.o \
server/ctdb_recoverd.o server/ctdb_recover.o server/ctdb_freeze.o \
@@ -250,7 +254,7 @@ CTDBD_TEST_C = $(CTDB_SERVER_MOST_OBJ:.o=.c) tests/src/ctdbd_test.c
CTDB_TEST_C = $(CTDB_CLIENT_OBJ:.o=.c) tools/ctdb.c tools/ctdb_vacuum.c tests/src/ctdb_test.c
CTDB_TEST_OBJ = $(TALLOC_OBJ) @TDB_OBJ@ \
- @CTDB_SYSTEM_OBJ@ @LIBREPLACEOBJ@ $(EXTRA_OBJ) @TEVENT_OBJ@ $(SOCKET_WRAPPER_OBJ)
+ @CTDB_SYSTEM_OBJ@ @LIBREPLACEOBJ@ $(EXTRA_OBJ) $(TEVENT_OBJ) $(SOCKET_WRAPPER_OBJ)
tests/src/ctdb_takeover_tests.o: tests/src/ctdb_takeover_tests.c $(CTDBD_TEST_C)
diff --git a/ctdb/lib/tevent/libtevent.m4 b/ctdb/lib/tevent/libtevent.m4
index 8bb969ce9e..8a07eea2e7 100644
--- a/ctdb/lib/tevent/libtevent.m4
+++ b/ctdb/lib/tevent/libtevent.m4
@@ -1,41 +1,59 @@
-dnl find the tevent sources. This is meant to work both for
-dnl standalone builds, and builds of packages using libtevent
+dnl Check to see if we should use the included tevent
-AC_SUBST(teventdir)
+INCLUDED_TEVENT=auto
+AC_ARG_WITH(included-tevent,
+ [AC_HELP_STRING([--with-included-tevent], [use bundled tevent library, not from system])],
+ [ INCLUDED_TEVENT=$withval ])
-if test x"$teventdir" = "x"; then
+AC_SUBST(TEVENT_LIBS)
+AC_SUBST(TEVENT_CFLAGS)
+
+if test x"$INCLUDED_TEVENT" != x"yes" ; then
+ AC_CHECK_HEADERS(tevent.h)
+ AC_CHECK_LIB(tevent, tevent_context_init, [ TEVENT_LIBS="-ltevent" ])
+ if test x"$ac_cv_header_tevent_h" = x"no" -o x"$ac_cv_lib_tevent_tevent_context_init" = x"no" ; then
+ INCLUDED_TEVENT=yes
+ TEVENT_CFLAGS=""
+ else
+ INCLUDED_TEVENT=no
+ fi
+fi
+
+AC_MSG_CHECKING(whether to use included tevent)
+AC_MSG_RESULT($INCLUDED_TEVENT)
+if test x"$INCLUDED_TEVENT" != x"no" ; then
+ dnl find the tevent sources. This is meant to work both for
+ dnl standalone builds, and builds of packages using libtevent
teventdir=""
teventpaths="$srcdir $srcdir/lib/tevent $srcdir/tevent $srcdir/../tevent"
for d in $teventpaths; do
if test -f "$d/tevent.c"; then
teventdir="$d"
- break;
+ AC_SUBST(teventdir)
+ break
fi
done
if test x"$teventdir" = "x"; then
- AC_MSG_ERROR([cannot find libtevent source in $teventpaths])
+ AC_MSG_ERROR([cannot find tevent source in $teventpaths])
fi
-fi
-
-TEVENT_OBJ=""
-TEVENT_CFLAGS=""
-TEVENT_LIBS=""
-AC_SUBST(TEVENT_OBJ)
-AC_SUBST(TEVENT_CFLAGS)
-AC_SUBST(TEVENT_LIBS)
+ TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o"
+ TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o"
+ TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o"
+ TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o"
+ AC_SUBST(TEVENT_OBJ)
-TEVENT_CFLAGS="-I$teventdir"
+ TEVENT_CFLAGS="-I$teventdir"
+ AC_SUBST(TEVENT_CFLAGS)
-TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o"
-TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o"
-TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o"
-TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o"
+ TEVENT_LIBS=""
+ AC_SUBST(TEVENT_LIBS)
-AC_CHECK_HEADERS(sys/epoll.h)
-AC_CHECK_FUNCS(epoll_create)
-if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes"; then
- TEVENT_OBJ="$TEVENT_OBJ tevent_epoll.o"
- AC_DEFINE(HAVE_EPOLL, 1, [Whether epoll available])
+ AC_CHECK_HEADERS(sys/epoll.h)
+ AC_CHECK_FUNCS(epoll_create)
+ if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes"; then
+ TEVENT_OBJ="$TEVENT_OBJ tevent_epoll.o"
+ AC_DEFINE(HAVE_EPOLL, 1, [Whether epoll available])
+ fi
fi
if test x"$VERSIONSCRIPT" != "x"; then