Build drivers as libtool convenience libs

This commit is contained in:
Daniel P. Berrange 2008-11-17 10:43:30 +00:00
parent 48e9d7b726
commit 41ebac421e
2 changed files with 75 additions and 36 deletions

View File

@ -1,3 +1,7 @@
Mon Nov 17 10:43:00 GMT 2008 Daniel Berrange <berrange@redhat.com>
* src/Makefile.am: Build drivers as libtool convenience libs
Mon Nov 17 10:23:00 GMT 2008 Daniel Berrange <berrange@redhat.com> Mon Nov 17 10:23:00 GMT 2008 Daniel Berrange <berrange@redhat.com>
* docs/libvirt-api.xml: Re-generate * docs/libvirt-api.xml: Re-generate

View File

@ -6,11 +6,7 @@ INCLUDES = \
-I@top_srcdir@/include \ -I@top_srcdir@/include \
-I@top_srcdir@/qemud \ -I@top_srcdir@/qemud \
$(LIBXML_CFLAGS) \ $(LIBXML_CFLAGS) \
$(GNUTLS_CFLAGS) \
$(SASL_CFLAGS) \
$(SELINUX_CFLAGS) \ $(SELINUX_CFLAGS) \
$(NUMACTL_CFLAGS) \
$(XEN_CFLAGS) \
-DBINDIR=\""$(libexecdir)"\" \ -DBINDIR=\""$(libexecdir)"\" \
-DSBINDIR=\""$(sbindir)"\" \ -DSBINDIR=\""$(sbindir)"\" \
-DSYSCONF_DIR="\"$(sysconfdir)\"" \ -DSYSCONF_DIR="\"$(sysconfdir)\"" \
@ -19,10 +15,6 @@ INCLUDES = \
-DGETTEXT_PACKAGE=\"$(PACKAGE)\" \ -DGETTEXT_PACKAGE=\"$(PACKAGE)\" \
$(WARN_CFLAGS) $(WARN_CFLAGS)
DEPS = libvirt.la
LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) libvirt.la ../gnulib/lib/libgnu.la
VIRSH_LIBS = @VIRSH_LIBS@
confdir = $(sysconfdir)/libvirt/ confdir = $(sysconfdir)/libvirt/
conf_DATA = qemu.conf conf_DATA = qemu.conf
@ -40,7 +32,7 @@ lib_LTLIBRARIES = libvirt.la
# These files are not related to driver APIs. Simply generic # These files are not related to driver APIs. Simply generic
# helper APIs for various purposes # helper APIs for various purposes
GENERIC_LIB_SOURCES = \ UTIL_SOURCES = \
bridge.c bridge.h \ bridge.c bridge.h \
buf.c buf.h \ buf.c buf.h \
conf.c conf.h \ conf.c conf.h \
@ -55,6 +47,16 @@ GENERIC_LIB_SOURCES = \
logging.c logging.h \ logging.c logging.h \
xml.c xml.h xml.c xml.h
# Internal generic driver infrastructure
DRIVER_SOURCES = \
driver.h \
internal.h \
datatypes.c datatypes.h \
domain_event.c domain_event.h \
stats_linux.c stats_linux.h \
libvirt.c libvirt_internal.h
# Domain driver generic impl APIs # Domain driver generic impl APIs
DOMAIN_CONF_SOURCES = \ DOMAIN_CONF_SOURCES = \
capabilities.c capabilities.h \ capabilities.c capabilities.h \
@ -147,62 +149,91 @@ STORAGE_HELPER_DISK_SOURCES = \
# #
# First deal with sources usable in non-daemon context # First deal with sources usable in non-daemon context
libvirt_la_SOURCES = \ noinst_LTLIBRARIES = libvirt_util.la
driver.h \ libvirt_la_LIBADD = libvirt_util.la
internal.h \ libvirt_util_la_SOURCES = \
datatypes.c datatypes.h \ $(UTIL_SOURCES)
domain_event.c domain_event.h \
stats_linux.c stats_linux.h \ noinst_LTLIBRARIES += libvirt_driver.la
libvirt.c libvirt_internal.h \ libvirt_la_LIBADD += libvirt_driver.la
$(GENERIC_LIB_SOURCES) \ libvirt_driver_la_SOURCES = \
$(DRIVER_SOURCES) \
$(DOMAIN_CONF_SOURCES) \ $(DOMAIN_CONF_SOURCES) \
$(NETWORK_CONF_SOURCES) \ $(NETWORK_CONF_SOURCES) \
$(STORAGE_CONF_SOURCES) $(STORAGE_CONF_SOURCES)
if WITH_TEST if WITH_TEST
libvirt_la_SOURCES += $(TEST_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
endif endif
if WITH_REMOTE if WITH_REMOTE
libvirt_la_SOURCES += $(REMOTE_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
libvirt_driver_remote_la_CFLAGS = \
$(GNUTLS_CFLAGS) \
$(SASL_CFLAGS)
libvirt_driver_remote_la_LDFLAGS = \
$(GNUTLS_LIBS) \
$(SASL_LIBS)
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
endif endif
if WITH_XEN if WITH_XEN
libvirt_la_SOURCES += $(XEN_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
endif endif
if WITH_OPENVZ if WITH_OPENVZ
libvirt_la_SOURCES += $(OPENVZ_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
endif endif
if WITH_QEMU if WITH_QEMU
libvirt_la_SOURCES += $(QEMU_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_qemu.la
libvirt_la_LIBADD += libvirt_driver_qemu.la
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
endif endif
if WITH_LXC if WITH_LXC
libvirt_la_SOURCES += $(LXC_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_lxc.la
libvirt_la_LIBADD += libvirt_driver_lxc.la
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
endif endif
if WITH_NETWORK if WITH_NETWORK
libvirt_la_SOURCES += $(NETWORK_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_network.la
libvirt_la_LIBADD += libvirt_driver_network.la
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
endif endif
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
if WITH_STORAGE_DIR if WITH_STORAGE_DIR
libvirt_la_SOURCES += $(STORAGE_DRIVER_SOURCES) noinst_LTLIBRARIES += libvirt_driver_storage.la
libvirt_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES) libvirt_la_LIBADD += libvirt_driver_storage.la
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
endif endif
if WITH_STORAGE_LVM if WITH_STORAGE_LVM
libvirt_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES) libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
endif endif
if WITH_STORAGE_ISCSI if WITH_STORAGE_ISCSI
libvirt_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES) libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
endif endif
if WITH_STORAGE_DISK if WITH_STORAGE_DISK
libvirt_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES) libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
endif endif
# Add all conditional sources just in case... # Add all conditional sources just in case...
@ -221,8 +252,9 @@ EXTRA_DIST += \
$(STORAGE_DRIVER_DISK_SOURCES) $(STORAGE_DRIVER_DISK_SOURCES)
libvirt_la_LIBADD = $(LIBXML_LIBS) $(GNUTLS_LIBS) $(SASL_LIBS) $(SELINUX_LIBS) \ # Empty source list - it merely links a bunch of convenience libs together
$(NUMACTL_LIBS) $(XEN_LIBS) \ libvirt_la_SOURCES =
libvirt_la_LIBADD += $(LIBXML_LIBS) $(SELINUX_LIBS) \
@CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
libvirt_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libvirt_sym.version \ libvirt_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libvirt_sym.version \
-version-info @LIBVIRT_VERSION_INFO@ \ -version-info @LIBVIRT_VERSION_INFO@ \
@ -233,7 +265,7 @@ libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
# Create an automake "convenience library" version of libvirt_la, # Create an automake "convenience library" version of libvirt_la,
# just for testing, since the test harness requires access to internal # just for testing, since the test harness requires access to internal
# bits and pieces that we don't want to make publicly accessible. # bits and pieces that we don't want to make publicly accessible.
noinst_LTLIBRARIES = libvirt_test.la noinst_LTLIBRARIES += libvirt_test.la
# Convert libvirt_sym.version # Convert libvirt_sym.version
# to libvirt_test_sym.version, and # to libvirt_test_sym.version, and
@ -257,8 +289,12 @@ virsh_SOURCES = \
virsh.c virsh.c
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS) virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
virsh_DEPENDENCIES = $(DEPS) virsh_LDADD = \
virsh_LDADD = $(LDADDS) $(VIRSH_LIBS) $(STATIC_BINARIES) \
$(WARN_CFLAGS) \
libvirt.la \
../gnulib/lib/libgnu.la \
$(VIRSH_LIBS)
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS)
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c
@ -295,7 +331,6 @@ virsh-pool-edit.c: virsh.c Makefile.am
if WITH_WIN_ICON if WITH_WIN_ICON
virsh_LDADD += virsh_win_icon.$(OBJEXT) virsh_LDADD += virsh_win_icon.$(OBJEXT)
virsh_DEPENDENCIES += virsh_win_icon.$(OBJEXT)
# Before you edit virsh_win_icon.rc, please note the following # Before you edit virsh_win_icon.rc, please note the following
# limitations of the resource file format: # limitations of the resource file format:
@ -341,7 +376,7 @@ libexec_PROGRAMS += libvirt_lxc
libvirt_lxc_SOURCES = \ libvirt_lxc_SOURCES = \
$(LXC_CONTROLLER_SOURCES) \ $(LXC_CONTROLLER_SOURCES) \
$(GENERIC_LIB_SOURCES) \ $(UTIL_SOURCES) \
$(DOMAIN_CONF_SOURCES) $(DOMAIN_CONF_SOURCES)
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS) libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_lxc_LDADD = $(LIBXML_LIBS) ../gnulib/lib/libgnu.la libvirt_lxc_LDADD = $(LIBXML_LIBS) ../gnulib/lib/libgnu.la