[3/3] configure: Don't build ivshmem tools unless CONFIG_IVSHMEM is set

Message ID 1500021225-4118-4-git-send-email-peter.maydell@linaro.org
State New
Headers show
Series
  • Fix NetBSD build (don't build ivshmem tools)
Related show

Commit Message

Peter Maydell July 14, 2017, 8:33 a.m.
From: Kamil Rytarowski <n54@gmx.com>


Don't try to build the ivshmem-server and ivshmem-client tools unless
CONFIG_IVSHMEM is set.

This fixes in passing a build bug on NetBSD, which fails to build the
ivshmem tools because they use shm_open() and on NetBSD that requires
linking against -lrt.

Signed-off-by: Kamil Rytarowski <n54@gmx.com>

[PMM: moved some code into earlier patches; minor bugfixes;
 added commit message]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 configure     | 2 ++
 Makefile      | 2 ++
 Makefile.objs | 4 ++--
 3 files changed, 6 insertions(+), 2 deletions(-)

-- 
2.7.4

Patch hide | download patch | download mbox

diff --git a/configure b/configure
index dea46c5..b54bc2e 100755
--- a/configure
+++ b/configure
@@ -4979,6 +4979,8 @@  if test "$want_tools" = "yes" ; then
   tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
   if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
     tools="qemu-nbd\$(EXESUF) $tools"
+  fi
+  if [ "$ivshmem" = "yes" ]; then
     tools="ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools"
   fi
 fi
diff --git a/Makefile b/Makefile
index 16a0430..5d5bd6a 100644
--- a/Makefile
+++ b/Makefile
@@ -470,10 +470,12 @@  ifneq ($(EXESUF),)
 qemu-ga: qemu-ga$(EXESUF) $(QGA_VSS_PROVIDER) $(QEMU_GA_MSI)
 endif
 
+ifdef CONFIG_IVSHMEM
 ivshmem-client$(EXESUF): $(ivshmem-client-obj-y) $(COMMON_LDADDS)
 	$(call LINK, $^)
 ivshmem-server$(EXESUF): $(ivshmem-server-obj-y) $(COMMON_LDADDS)
 	$(call LINK, $^)
+endif
 vhost-user-scsi$(EXESUF): $(vhost-user-scsi-obj-y)
 	$(call LINK, $^)
 
diff --git a/Makefile.objs b/Makefile.objs
index bfd5a6c..24a4ea0 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -107,8 +107,8 @@  qga-vss-dll-obj-y = qga/
 
 ######################################################################
 # contrib
-ivshmem-client-obj-y = contrib/ivshmem-client/
-ivshmem-server-obj-y = contrib/ivshmem-server/
+ivshmem-client-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-client/
+ivshmem-server-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-server/
 libvhost-user-obj-y = contrib/libvhost-user/
 vhost-user-scsi.o-cflags := $(LIBISCSI_CFLAGS)
 vhost-user-scsi.o-libs := $(LIBISCSI_LIBS)