[libvirt] [PATCH 1/2] build: define WITH_INTERFACE for the driver

Doug Goldstein cardoe at cardoe.com
Mon Sep 3 03:44:16 UTC 2012


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.

Signed-off-by: Doug Goldstein <cardoe at cardoe.com>
---
 configure.ac                                       |   33 ++++++++++++++++++-
 daemon/Makefile.am                                 |    2 +-
 daemon/libvirtd.c                                  |    8 ++--
 src/Makefile.am                                    |   24 +++++++++++---
 .../{netcf_driver.c => interface_backend_netcf.c}  |    2 +-
 .../{netcf_driver.h => interface_driver.h}         |    0
 tests/virdrivermoduletest.c                        |    2 +-
 tools/virsh.c                                      |    4 +-
 8 files changed, 58 insertions(+), 17 deletions(-)
 rename src/interface/{netcf_driver.c => interface_backend_netcf.c} (99%)
 rename src/interface/{netcf_driver.h => interface_driver.h} (100%)

diff --git a/configure.ac b/configure.ac
index 028a80d..fd546fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1967,7 +1967,6 @@ AM_CONDITIONAL([WITH_NETCF], [test "$with_netcf" = "yes"])
 AC_SUBST([NETCF_CFLAGS])
 AC_SUBST([NETCF_LIBS])
 
-
 AC_ARG_WITH([secrets],
   AC_HELP_STRING([--with-secrets], [with local secrets management driver @<:@default=yes@:>@]),[],[with_secrets=yes])
 
@@ -2806,6 +2805,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],
@@ -3017,7 +3046,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 b00fc13..fbd5a5e 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -147,7 +147,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 352d4fe..e8d7ce1 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -75,8 +75,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"
@@ -379,7 +379,7 @@ static void daemonInitialize(void)
 # ifdef WITH_NWFILTER
     virDriverLoadModule("nwfilter");
 # endif
-# ifdef WITH_NETCF
+# ifdef WITH_INTERFACE
     virDriverLoadModule("interface");
 # endif
 # ifdef WITH_QEMU
@@ -401,7 +401,7 @@ static void daemonInitialize(void)
 # ifdef WITH_NETWORK
     networkRegister();
 # endif
-# ifdef WITH_NETCF
+# ifdef WITH_INTERFACE
     interfaceRegister();
 # endif
 # ifdef WITH_STORAGE
diff --git a/src/Makefile.am b/src/Makefile.am
index 95e1bea..72c4d6c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -548,8 +548,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
@@ -1017,7 +1026,7 @@ endif
 EXTRA_DIST += network/default.xml
 
 
-if WITH_NETCF
+if WITH_INTERFACE
 if WITH_DRIVER_MODULES
 mod_LTLIBRARIES += libvirt_driver_interface.la
 else
@@ -1025,10 +1034,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
similarity index 99%
rename from src/interface/netcf_driver.c
rename to src/interface/interface_backend_netcf.c
index 935be66..9285b08 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"
 
diff --git a/src/interface/netcf_driver.h b/src/interface/interface_driver.h
similarity index 100%
rename from src/interface/netcf_driver.h
rename to src/interface/interface_driver.h
diff --git a/tests/virdrivermoduletest.c b/tests/virdrivermoduletest.c
index 4d6e91e..8762de4 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 7a5b92c..b8ec663 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -2643,8 +2643,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE_UNUSED)
 #ifdef WITH_BRIDGE
     vshPrint(ctl, " Bridging");
 #endif
-#ifdef WITH_NETCF
-    vshPrint(ctl, " Interface");
+#if defined(WITH_INTERFACE) && defined(WITH_NETCF)
+    vshPrint(ctl, " Interface (netcf)");
 #endif
 #ifdef WITH_NWFILTER
     vshPrint(ctl, " Nwfilter");
-- 
1.7.8.6




More information about the libvir-list mailing list