[infiniband-diags PATCH 2/2] build-sys: avoid overlinking to libudev

Michal Schmidt
2015-06-25T14:12:02Z

Not all built binaries need to link to udev, only rdma-ndd.
Use pkg-config to detect udev in configure.ac.

Signed-off-by: Michal Schmidt <mschmidt-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
Makefile.am | 6 ++++++
configure.ac | 9 +++++----
2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 057508b18d..93af707ad6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -130,6 +130,12 @@ src_ibcacheedit_LDFLAGS = -L$(top_builddir)/libibnetdisc -libnetdisc
src_dump_fts_SOURCES = src/dump_fts.c
src_dump_fts_LDFLAGS = -L$(top_builddir)/libibnetdisc -libnetdisc

+if ENABLE_RDMA_NDD
+src_rdma_ndd_SOURCES = src/rdma-ndd.c
+src_rdma_ndd_CFLAGS = $(AM_CFLAGS) $(UDEV_CFLAGS)
+src_rdma_ndd_LDADD = libcommon.a $(UDEV_LIBS)
+endif
+
BUILT_SOURCES = ibdiag_version
ibdiag_version:
if [ -x $(top_srcdir)/gen_ver.sh ] ; then \
diff --git a/configure.ac b/configure.ac
index ece1d530a7..090b6ecf76 100644
--- a/configure.ac
+++ b/configure.ac
@@ -210,11 +210,12 @@ default_start="null"
AC_SUBST(DEFAULT_START, $default_start)
AC_SUBST(DEFAULT_STOP, $default_stop)

-if test x$rdmandd = xyes; then
- AC_CHECK_HEADER(libudev.h, with_udev="yes", with_udev="no")
- AC_CHECK_LIB(udev, udev_monitor_ref, [], AC_MSG_ERROR(libudev is required for rdma-ndd...))
+AS_IF([test x$rdmandd = xyes], [
+ PKG_CHECK_MODULES([UDEV], [libudev])
AC_CONFIG_FILES([doc/man/rdma-ndd.8 etc/rdma-ndd.init])
-fi
+ AC_SUBST([UDEV_CFLAGS])
+ AC_SUBST([UDEV_LIBS])
+])

dnl Generate doc/man/*.in files if possible
DOC_DATE="`date +%Y-%m-%d`"