summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Goldstein <cardoe@cardoe.com>2012-09-17 20:27:06 -0500
committerEric Blake <eblake@redhat.com>2012-09-19 08:27:01 -0600
commitb95ad92e058d3b25b9fc0a9f48cf21c57c29e0b5 (patch)
treef6223ebecf35348d10c3c024325d6c0938643065
parentvirsh: Rename QEmu to QEMU to match upstream (diff)
downloadlibvirt-b95ad92e058d3b25b9fc0a9f48cf21c57c29e0b5.tar.gz
libvirt-b95ad92e058d3b25b9fc0a9f48cf21c57c29e0b5.tar.bz2
libvirt-b95ad92e058d3b25b9fc0a9f48cf21c57c29e0b5.zip
build: define WITH_INTERFACE for the driver
Based exclusively on work by Eric Blake in a patch posted with the same subject. However some modifications related to comments and my plans to add another backend. Added WITH_INTERFACE as the only automake variable deciding whether to build the driver and using WITH_NETCF to identify that we're wanting to use the netcf library as the backend. * configure.ac: Added with_interface * src/interface/netcf_driver.c: Renamed.. * src/interface/interface_backend_netcf.c: ..to this to match storage. * src/interface/netcf_driver.h: Renamed.. * src/interface/interface_driver.h: ..to this. * daemon/Makefile.am: Respect WITH_INTERFACE and WITH_NETCF. * libvirt.spec.in: Add RPM support for --with-interface
-rw-r--r--configure.ac32
-rw-r--r--daemon/Makefile.am2
-rw-r--r--daemon/libvirtd.c8
-rw-r--r--libvirt.spec.in18
-rw-r--r--po/POTFILES.in2
-rw-r--r--src/Makefile.am24
-rw-r--r--src/interface/interface_backend_netcf.c (renamed from src/interface/netcf_driver.c)2
-rw-r--r--src/interface/interface_driver.h (renamed from src/interface/netcf_driver.h)0
-rw-r--r--tests/virdrivermoduletest.c2
-rw-r--r--tools/virsh.c5
10 files changed, 73 insertions, 22 deletions
diff --git a/configure.ac b/configure.ac
index 186f79e87..3e9067202 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2787,6 +2787,36 @@ if test "$with_nwfilter" = "yes" ; then
fi
AM_CONDITIONAL([WITH_NWFILTER], [test "$with_nwfilter" = "yes"])
+dnl check if the interface driver should be compiled
+AC_ARG_WITH([interface],
+ AC_HELP_STRING([--with-interface],
+ [with host interface driver @<:@default=check@:>@]), [],
+ [with_interface=check])
+
+dnl Don't compile the interface driver without libvirtd
+if test "$with_libvirtd" = "no" ; then
+ with_interface=no
+fi
+
+dnl The interface driver depends on the netcf library
+if test "$with_interface:$with_netcf" = "check:yes" ; then
+ with_interface=yes
+fi
+
+if test "$with_interface:$with_netcf" = "check:no" ; then
+ with_interface=no
+fi
+
+if test "$with_interface:$with_netcf" = "yes:no" ; then
+ AC_MSG_ERROR([Requested the Interface driver without netcf support])
+fi
+
+if test "$with_interface" = "yes" ; then
+ AC_DEFINE_UNQUOTED([WITH_INTERFACE], [1],
+ [whether the interface driver is enabled])
+fi
+AM_CONDITIONAL([WITH_INTERFACE], [test "$with_interface" = "yes"])
+
dnl libblkid is used by several storage drivers; therefore we probe
dnl for it unconditionally.
AC_ARG_WITH([libblkid],
@@ -3018,7 +3048,7 @@ AC_MSG_NOTICE([ Test: $with_test])
AC_MSG_NOTICE([ Remote: $with_remote])
AC_MSG_NOTICE([ Network: $with_network])
AC_MSG_NOTICE([ Libvirtd: $with_libvirtd])
-AC_MSG_NOTICE([ netcf: $with_netcf])
+AC_MSG_NOTICE([Interface: $with_interface])
AC_MSG_NOTICE([ macvtap: $with_macvtap])
AC_MSG_NOTICE([ virtport: $with_virtualport])
AC_MSG_NOTICE([])
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index b45349c1b..3405c6718 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -151,7 +151,7 @@ if WITH_NETWORK
libvirtd_LDADD += ../src/libvirt_driver_network.la
endif
-if WITH_NETCF
+if WITH_INTERFACE
libvirtd_LDADD += ../src/libvirt_driver_interface.la
endif
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index 6973df646..1156bd636 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -78,8 +78,8 @@
# ifdef WITH_NETWORK
# include "network/bridge_driver.h"
# endif
-# ifdef WITH_NETCF
-# include "interface/netcf_driver.h"
+# ifdef WITH_INTERFACE
+# include "interface/interface_driver.h"
# endif
# ifdef WITH_STORAGE
# include "storage/storage_driver.h"
@@ -382,7 +382,7 @@ static void daemonInitialize(void)
# ifdef WITH_NWFILTER
virDriverLoadModule("nwfilter");
# endif
-# ifdef WITH_NETCF
+# ifdef WITH_INTERFACE
virDriverLoadModule("interface");
# endif
# ifdef WITH_XEN
@@ -404,7 +404,7 @@ static void daemonInitialize(void)
# ifdef WITH_NETWORK
networkRegister();
# endif
-# ifdef WITH_NETCF
+# ifdef WITH_INTERFACE
interfaceRegister();
# endif
# ifdef WITH_STORAGE
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 8c4c08dfc..119273914 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -70,6 +70,7 @@
%define with_parallels 0%{!?_without_parallels:1}
# Then the secondary host drivers, which run inside libvirtd
+%define with_interface 0%{!?_without_interface:%{server_drivers}}
%define with_network 0%{!?_without_network:%{server_drivers}}
%define with_storage_fs 0%{!?_without_storage_fs:%{server_drivers}}
%define with_storage_lvm 0%{!?_without_storage_lvm:%{server_drivers}}
@@ -207,6 +208,11 @@
%define with_hal 0%{!?_without_hal:%{server_drivers}}
%endif
+# interface requires netcf
+%if ! 0%{?with_netcf}
+%define with_interface 0
+%endif
+
# Enable yajl library for JSON mode with QEMU
%if 0%{?fedora} >= 13 || 0%{?rhel} >= 6
%define with_yajl 0%{!?_without_yajl:%{server_drivers}}
@@ -226,6 +232,7 @@
# Disable some drivers when building without libvirt daemon.
# The logic is the same as in configure.ac
%if ! %{with_libvirtd}
+%define with_interface 0
%define with_network 0
%define with_qemu 0
%define with_lxc 0
@@ -281,12 +288,6 @@
%define with_nodedev 0
%endif
-%if %{with_netcf}
-%define with_interface 1
-%else
-%define with_interface 0
-%endif
-
%if %{with_storage_fs} || %{with_storage_mpath} || %{with_storage_iscsi} || %{with_storage_lvm} || %{with_storage_disk}
%define with_storage 1
%else
@@ -1113,6 +1114,10 @@ of recent versions of Linux (and other OSes).
%define _with_rhel5_api --with-rhel5-api
%endif
+%if ! %{with_interface}
+%define _without_interface --without-interface
+%endif
+
%if ! %{with_network}
%define _without_network --without-network
%endif
@@ -1249,6 +1254,7 @@ autoreconf -if
%{?_without_hyperv} \
%{?_without_vmware} \
%{?_without_parallels} \
+ %{?_without_interface} \
%{?_without_network} \
%{?_with_rhel5_api} \
%{?_without_storage_fs} \
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 7a91eb4a9..12a2b25cd 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -40,7 +40,7 @@ src/fdstream.c
src/hyperv/hyperv_driver.c
src/hyperv/hyperv_util.c
src/hyperv/hyperv_wmi.c
-src/interface/netcf_driver.c
+src/interface/interface_backend_netcf.c
src/internal.h
src/libvirt.c
src/libvirt-qemu.c
diff --git a/src/Makefile.am b/src/Makefile.am
index 9f27fcfa7..4ae741be2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -552,8 +552,17 @@ PARALLELS_DRIVER_SOURCES = \
NETWORK_DRIVER_SOURCES = \
network/bridge_driver.h network/bridge_driver.c
-INTERFACE_DRIVER_SOURCES = \
- interface/netcf_driver.h interface/netcf_driver.c
+INTERFACE_DRIVER_SOURCES =
+
+if WITH_INTERFACE
+INTERFACE_DRIVER_SOURCES += \
+ interface/interface_driver.h
+endif
+
+if WITH_NETCF
+INTERFACE_DRIVER_SOURCES += \
+ interface/interface_backend_netcf.c
+endif
SECRET_DRIVER_SOURCES = \
secret/secret_driver.h secret/secret_driver.c
@@ -1021,7 +1030,7 @@ endif
EXTRA_DIST += network/default.xml
-if WITH_NETCF
+if WITH_INTERFACE
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
@@ -1029,10 +1038,13 @@ noinst_LTLIBRARIES += libvirt_driver_interface.la
# Stateful, so linked to daemon instead
#libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
endif
-libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
- -I$(top_srcdir)/src/conf $(AM_CFLAGS)
+libvirt_driver_interface_la_CFLAGS = -I$(top_srcdir)/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
-libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
+libvirt_driver_interface_la_LIBADD =
+if WITH_NETCF
+libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
+libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
+endif
if WITH_DRIVER_MODULES
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
diff --git a/src/interface/netcf_driver.c b/src/interface/interface_backend_netcf.c
index 6e429db68..3b4ee1144 100644
--- a/src/interface/netcf_driver.c
+++ b/src/interface/interface_backend_netcf.c
@@ -27,7 +27,7 @@
#include "virterror_internal.h"
#include "datatypes.h"
-#include "netcf_driver.h"
+#include "interface_driver.h"
#include "interface_conf.h"
#include "memory.h"
#include "logging.h"
diff --git a/src/interface/netcf_driver.h b/src/interface/interface_driver.h
index 38fbc77eb..38fbc77eb 100644
--- a/src/interface/netcf_driver.h
+++ b/src/interface/interface_driver.h
diff --git a/tests/virdrivermoduletest.c b/tests/virdrivermoduletest.c
index 4d6e91e61..8762de435 100644
--- a/tests/virdrivermoduletest.c
+++ b/tests/virdrivermoduletest.c
@@ -79,7 +79,7 @@ mymain(void)
#ifdef WITH_NWFILTER
TEST("nwfilter", NULL);
#endif
-#ifdef WITH_NETCF
+#ifdef WITH_INTERFACE
TEST("interface", NULL);
#endif
#ifdef WITH_QEMU
diff --git a/tools/virsh.c b/tools/virsh.c
index 6a72412ba..5447376be 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -2707,8 +2707,11 @@ vshShowVersion(vshControl *ctl ATTRIBUTE_UNUSED)
#ifdef WITH_BRIDGE
vshPrint(ctl, " Bridging");
#endif
-#ifdef WITH_NETCF
+#if defined(WITH_INTERFACE)
vshPrint(ctl, " Interface");
+# if defined(WITH_NETCF)
+ vshPrint(ctl, " netcf");
+# endif
#endif
#ifdef WITH_NWFILTER
vshPrint(ctl, " Nwfilter");