build: ensure storage driver is used

Commit 1c275e9a accidentally dropped the storage driver from
libvirtd, because it depended on a C preprocessor macro that
was not defined.  Furthermore, if you do './configure
--without-storage-dir --with-storage-disk' or any other combination
where you explicitly build a subset of storage backends excluding
the dir backend, then the build is broken.

Based on analysis by Osier Yang.

* configure.ac (WITH_STORAGE): Define top-level conditional.
* src/Makefile.am (mod_LTLIBRARIES): Build driver even when
storage_dir is disabled.
* daemon/libvirtd.c: Pick up storage driver for any backend, not
just dir.
* daemon/Makefile.am (libvirtd_LDADD): Likewise.
This commit is contained in:
Eric Blake 2012-06-05 10:28:52 -06:00 committed by Osier Yang
parent eb635de1fe
commit 3c3644d30f
4 changed files with 17 additions and 4 deletions

View File

@ -2076,6 +2076,19 @@ fi
AC_SUBST([DEVMAPPER_CFLAGS])
AC_SUBST([DEVMAPPER_LIBS])
with_storage=no
for backend in dir fs lvm iscsi scsi mpath rbd disk; do
if eval test \$with_storage_$backend = yes; then
with_storage=yes
break
fi
done
if test $with_storage = yes; then
AC_DEFINE([WITH_STORAGE], [1],
[Define to 1 if at least one storage backend is in use])
fi
AM_CONDITIONAL([WITH_STORAGE], [test "$with_storage" = "yes"])
dnl
dnl check for libcurl (ESX/XenAPI)
dnl

View File

@ -140,7 +140,7 @@ if WITH_UML
libvirtd_LDADD += ../src/libvirt_driver_uml.la
endif
if WITH_STORAGE_DIR
if WITH_STORAGE
libvirtd_LDADD += ../src/libvirt_driver_storage.la
endif

View File

@ -77,7 +77,7 @@
# ifdef WITH_NETCF
# include "interface/netcf_driver.h"
# endif
# ifdef WITH_STORAGE_DIR
# ifdef WITH_STORAGE
# include "storage/storage_driver.h"
# endif
# ifdef WITH_NODE_DEVICES
@ -403,7 +403,7 @@ static void daemonInitialize(void)
# ifdef WITH_NETCF
interfaceRegister();
# endif
# ifdef WITH_STORAGE_DIR
# ifdef WITH_STORAGE
storageRegister();
# endif
# ifdef WITH_NODE_DEVICES

View File

@ -967,7 +967,7 @@ if HAVE_LIBBLKID
libvirt_driver_storage_la_CFLAGS += $(BLKID_CFLAGS)
libvirt_driver_storage_la_LIBADD += $(BLKID_LIBS)
endif
if WITH_STORAGE_DIR
if WITH_STORAGE
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else