]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
build: define WITH_INTERFACE for the driver
authorDoug Goldstein <cardoe@cardoe.com>
Tue, 18 Sep 2012 01:27:06 +0000 (20:27 -0500)
committerEric Blake <eblake@redhat.com>
Wed, 19 Sep 2012 14:27:01 +0000 (08:27 -0600)
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

configure.ac
daemon/Makefile.am
daemon/libvirtd.c
libvirt.spec.in
po/POTFILES.in
src/Makefile.am
src/interface/interface_backend_netcf.c [moved from src/interface/netcf_driver.c with 99% similarity]
src/interface/interface_driver.h [moved from src/interface/netcf_driver.h with 100% similarity]
tests/virdrivermoduletest.c
tools/virsh.c

index 186f79e87d53a92111b6eaf5cac05190da736cd9..3e9067202665cd56561510ca1879911c9356e35c 100644 (file)
@@ -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([])
index b45349c1bd00f1a3dff02ed44752d7f74c80f307..3405c67182713898678a889ffed6bc068207111a 100644 (file)
@@ -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
 
index 6973df646195109f80eb2758c952d1763b683363..1156bd63600ac75875af610fb41afb1fbf563bcc 100644 (file)
@@ -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
index 8c4c08dfcb5ebfd7154a3ce02ffc0efce98a4c4b..1192739148e064d5bb77c6d2ad555671c3431616 100644 (file)
@@ -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}}
 %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}}
 # 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
 %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} \
index 7a91eb4a9bec83d3b13ae0ed009fde7fdafdc4d7..12a2b25cd5df454572ab781e4408f8768508c163 100644 (file)
@@ -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
index 9f27fcfa747b088b9df4a7716a543d95fad1bd62..4ae741be274ec4cc5ed9f3820282b5ca3967cf65 100644 (file)
@@ -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
similarity index 99%
rename from src/interface/netcf_driver.c
rename to src/interface/interface_backend_netcf.c
index 6e429db68045b497f1e3317aed3cccd1eb2d6537..3b4ee11448cca50bc86e78de4ea41d11428f5d50 100644 (file)
@@ -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"
index 4d6e91e619ffb7b90bbd7027cc40de96c24439a1..8762de435fe236317da7ba68704644249d45ba3d 100644 (file)
@@ -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
index 6a72412baa8cf9eba76507fa7ad3b4de606601b7..5447376bee9b40f3db0e36d49afbddc2be76eccb 100644 (file)
@@ -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");