[libvirt PATCH 152/351] meson: src: build libvirt.so library

Pavel Hrdina phrdina at redhat.com
Thu Jul 16 09:56:28 UTC 2020


Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---
 src/Makefile.am            | 35 +--------------------------------
 src/access/Makefile.inc.am |  2 --
 src/access/meson.build     |  2 ++
 src/admin/meson.build      |  2 ++
 src/conf/meson.build       |  2 ++
 src/cpu/meson.build        |  2 ++
 src/esx/meson.build        |  2 ++
 src/hyperv/meson.build     |  2 ++
 src/hypervisor/meson.build |  2 ++
 src/locking/meson.build    |  2 ++
 src/logging/meson.build    |  2 ++
 src/meson.build            | 40 ++++++++++++++++++++++++++++++++++++++
 src/openvz/meson.build     |  2 ++
 src/remote/meson.build     |  2 ++
 src/rpc/meson.build        |  6 ++++++
 src/security/meson.build   |  2 ++
 src/test/meson.build       |  2 ++
 src/util/meson.build       |  2 ++
 src/vmware/meson.build     |  2 ++
 src/vmx/meson.build        |  2 ++
 20 files changed, 79 insertions(+), 36 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 3ad565f7775..b83a087b716 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -35,7 +35,6 @@ mod_LTLIBRARIES =
 INSTALL_DATA_DIRS =
 INSTALL_DATA_LOCAL =
 UNINSTALL_LOCAL =
-libvirt_la_BUILT_LIBADD =
 SYM_FILES =
 USED_SYM_FILES =
 GENERATED_SYM_FILES =
@@ -65,7 +64,7 @@ COMMON_UNIT_VARS = \
 
 # Set these variables before we include any of the subdirs as libvirt-admin.la
 # has to be installed after libvirt.la.
-lib_LTLIBRARIES += libvirt.la libvirt-qemu.la libvirt-lxc.la
+lib_LTLIBRARIES += libvirt-qemu.la libvirt-lxc.la
 
 include util/Makefile.inc.am
 include cpu_map/Makefile.inc.am
@@ -204,13 +203,6 @@ check-local: check-protocol check-symfile check-symsorting \
 .PHONY: check-protocol $(PROTOCOL_STRUCTS:structs=struct)
 
 
-#########################
-#
-# Build up list of libvirt.la source files based on configure conditions
-#
-# First deal with sources usable in non-daemon context
-
-
 # All .syms files should be placed in exactly one of these three lists,
 # depending on whether they are stored in git and/or used in the build.
 SYM_FILES += $(USED_SYM_FILES)
@@ -237,32 +229,7 @@ check-augeas: $(augeas_DATA) $(augeastest_DATA)
 AUG_GENTEST_SCRIPT = $(top_srcdir)/scripts/augeas-gentest.py
 AUG_GENTEST = $(RUNUTF8) $(PYTHON) $(AUG_GENTEST_SCRIPT)
 
-# Empty source list - it merely links a bunch of convenience libs together
-libvirt_la_SOURCES =
-libvirt_la_LDFLAGS = \
-		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
-		-version-info $(LIBVIRT_VERSION_INFO) \
-		$(LIBVIRT_NODELETE) \
-		$(NO_UNDEFINED_LDFLAGS) \
-		$(FLAT_NAMESPACE_FLAGS) \
-		$(AM_LDFLAGS) \
-		$(NULL)
-libvirt_la_LIBADD += \
-		$(DLOPEN_LIBS) \
-		$(XDR_LIBS) \
-		$(NULL)
-libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
-# Because we specify libvirt_la_DEPENDENCIES for $(LIBVIRT_SYMBOL_FILE), we
-# lose automake's automatic dependencies on an appropriate subset of
-# $(libvirt_la_LIBADD).  But we were careful to create
-# $(libvirt_la_BUILT_LIBADD) as the subset that automake would have
-# picked out for us.
-libvirt_la_DEPENDENCIES = $(libvirt_la_BUILT_LIBADD) $(LIBVIRT_SYMBOL_FILE)
-
 if WITH_DTRACE_PROBES
-libvirt_la_BUILT_LIBADD += libvirt_probes.lo
-libvirt_la_DEPENDENCIES += libvirt_probes.lo libvirt_probes.o
-nodist_libvirt_la_SOURCES = libvirt_probes.h
 
 tapset_DATA += libvirt_functions.stp
 
diff --git a/src/access/Makefile.inc.am b/src/access/Makefile.inc.am
index bd1d51dd777..72c62a0d2cd 100644
--- a/src/access/Makefile.inc.am
+++ b/src/access/Makefile.inc.am
@@ -8,8 +8,6 @@ ACCESS_DRIVER_API_FILES = \
 
 ACCESS_DRIVER_POLKIT_POLICY = access/org.libvirt.api.policy
 
-libvirt_la_BUILT_LIBADD += libvirt_driver_access.la
-
 $(ACCESS_DRIVER_POLKIT_POLICY): $(srcdir)/access/viraccessperm.h \
     $(top_srcdir)/scripts/genpolkit.py Makefile.am
 	$(AM_V_GEN)$(RUNUTF8) $(PYTHON) \
diff --git a/src/access/meson.build b/src/access/meson.build
index dc962166873..f3b605f0009 100644
--- a/src/access/meson.build
+++ b/src/access/meson.build
@@ -75,6 +75,8 @@ virt_access_lib = static_library(
   ]
 )
 
+libvirt_libs += virt_access_lib
+
 access_inc_dir = include_directories('.')
 
 # Used by others where generated headers are required
diff --git a/src/admin/meson.build b/src/admin/meson.build
index cf2f206e34a..31d1a437fbe 100644
--- a/src/admin/meson.build
+++ b/src/admin/meson.build
@@ -48,3 +48,5 @@ admin_driver_lib = static_library(
     xdr_dep,
   ],
 )
+
+libvirt_libs += admin_driver_lib
diff --git a/src/conf/meson.build b/src/conf/meson.build
index 394cca4e6a1..03b90aa6f60 100644
--- a/src/conf/meson.build
+++ b/src/conf/meson.build
@@ -105,4 +105,6 @@ virt_conf_lib = static_library(
   ],
 )
 
+libvirt_libs += virt_conf_lib
+
 conf_inc_dir = include_directories('.')
diff --git a/src/cpu/meson.build b/src/cpu/meson.build
index 2404dc6b76f..b4ad95e46d5 100644
--- a/src/cpu/meson.build
+++ b/src/cpu/meson.build
@@ -17,3 +17,5 @@ cpu_lib = static_library(
     conf_inc_dir,
   ],
 )
+
+libvirt_libs += cpu_lib
diff --git a/src/esx/meson.build b/src/esx/meson.build
index 08d8a542498..1718411d759 100644
--- a/src/esx/meson.build
+++ b/src/esx/meson.build
@@ -54,6 +54,8 @@ if conf.has('WITH_ESX')
       vmx_inc_dir,
     ],
   )
+
+  libvirt_libs += esx_lib
 endif
 
 if conf.has('WITH_ESX')
diff --git a/src/hyperv/meson.build b/src/hyperv/meson.build
index 71382e3db0e..d499889b01b 100644
--- a/src/hyperv/meson.build
+++ b/src/hyperv/meson.build
@@ -38,4 +38,6 @@ if conf.has('WITH_HYPERV')
       conf_inc_dir,
     ]
   )
+
+  libvirt_libs += hyperv_lib
 endif
diff --git a/src/hypervisor/meson.build b/src/hypervisor/meson.build
index ea1dddfe983..85149c683ee 100644
--- a/src/hypervisor/meson.build
+++ b/src/hypervisor/meson.build
@@ -18,4 +18,6 @@ hypervisor_lib = static_library(
   ],
 )
 
+libvirt_libs += hypervisor_lib
+
 hypervisor_inc_dir = include_directories('.')
diff --git a/src/locking/meson.build b/src/locking/meson.build
index 67822486253..18b2e3c72a6 100644
--- a/src/locking/meson.build
+++ b/src/locking/meson.build
@@ -16,3 +16,5 @@ lock_driver_lib = static_library(
     conf_inc_dir,
   ],
 )
+
+libvirt_libs += lock_driver_lib
diff --git a/src/logging/meson.build b/src/logging/meson.build
index a9c30efe063..5d1f30ac08f 100644
--- a/src/logging/meson.build
+++ b/src/logging/meson.build
@@ -36,3 +36,5 @@ log_driver_lib = static_library(
     xdr_dep,
   ],
 )
+
+libvirt_libs += log_driver_lib
diff --git a/src/meson.build b/src/meson.build
index 257cdbe4090..b6b9da32df6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -114,6 +114,11 @@ else
 endif
 
 
+# variables filled by subdirectories
+
+libvirt_libs = []
+
+
 # list subdirectories
 
 subdir('util')
@@ -179,6 +184,8 @@ driver_lib = static_library(
   ],
 )
 
+libvirt_libs += driver_lib
+
 
 # symbol files for libvirt.so
 
@@ -206,6 +213,7 @@ libvirt_syms = custom_target(
   command: [ gen_sym_files_prog, 'LIBVIRT_PRIVATE_' + meson.project_version(), '@INPUT@' ],
   capture: true,
 )
+libvirt_syms_file = libvirt_syms
 if host_machine.system() == 'windows'
   libvirt_def = custom_target(
     'libvirt.def',
@@ -214,4 +222,36 @@ if host_machine.system() == 'windows'
     command: [ gen_def_files_prog, '@INPUT@' ],
     capture: true,
   )
+  libvirt_syms_file = libvirt_def
 endif
+
+
+# libvirt.so library
+
+libvirt_syms_flags = '@0@@1@'.format(
+  version_script_flags,
+  libvirt_syms_file.full_path(),
+)
+
+libvirt_lib = shared_library(
+  'virt',
+  dtrace_gen_objects,
+  dependencies: [
+    src_dep,
+  ],
+  link_args: [
+    libvirt_flat_namespace,
+    libvirt_no_undefined,
+    libvirt_nodelete,
+    libvirt_syms_flags,
+  ],
+  link_whole: [
+    libvirt_libs,
+  ],
+  link_depends: [
+    libvirt_syms_file,
+  ],
+  install: true,
+  version: libvirt_lib_version,
+  soversion: libvirt_so_version,
+)
diff --git a/src/openvz/meson.build b/src/openvz/meson.build
index 427b25fed1c..66048098774 100644
--- a/src/openvz/meson.build
+++ b/src/openvz/meson.build
@@ -17,6 +17,8 @@ if conf.has('WITH_OPENVZ')
       conf_inc_dir,
     ],
   )
+
+  libvirt_libs += openvz_lib
 endif
 
 if conf.has('WITH_OPENVZ')
diff --git a/src/remote/meson.build b/src/remote/meson.build
index f029edefd7e..a667f15ecf2 100644
--- a/src/remote/meson.build
+++ b/src/remote/meson.build
@@ -56,6 +56,8 @@ if conf.has('WITH_REMOTE')
       conf_inc_dir,
     ],
   )
+
+  libvirt_libs += remote_driver_lib
 endif
 
 if conf.has('WITH_REMOTE')
diff --git a/src/rpc/meson.build b/src/rpc/meson.build
index b8fbe0c38b1..8f4372bb3e2 100644
--- a/src/rpc/meson.build
+++ b/src/rpc/meson.build
@@ -112,3 +112,9 @@ rpc_dep = declare_dependency(
   include_directories: [ rpc_inc_dir ],
   sources: [ rpc_gen_headers ],
 )
+
+libvirt_libs += [
+  virt_rpc_lib,
+  virt_rpc_client_lib,
+  virt_rpc_server_lib,
+]
diff --git a/src/security/meson.build b/src/security/meson.build
index 3dc88c2c546..1e85d8dcf5f 100644
--- a/src/security/meson.build
+++ b/src/security/meson.build
@@ -29,3 +29,5 @@ security_driver_lib = static_library(
     conf_inc_dir,
   ],
 )
+
+libvirt_libs += security_driver_lib
diff --git a/src/test/meson.build b/src/test/meson.build
index ec7b12304ec..f54585adfd1 100644
--- a/src/test/meson.build
+++ b/src/test/meson.build
@@ -20,5 +20,7 @@ if conf.has('WITH_TEST')
     ],
   )
 
+  libvirt_libs += test_lib
+
   install_data(test_driver_assets, install_dir: pkgdatadir)
 endif
diff --git a/src/util/meson.build b/src/util/meson.build
index 59a531f6af1..3c728b355ee 100644
--- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -193,4 +193,6 @@ virt_util_lib = static_library(
   ],
 )
 
+libvirt_libs += virt_util_lib
+
 util_inc_dir = include_directories('.')
diff --git a/src/vmware/meson.build b/src/vmware/meson.build
index dc2a32a1610..2021b4ffa44 100644
--- a/src/vmware/meson.build
+++ b/src/vmware/meson.build
@@ -15,6 +15,8 @@ if conf.has('WITH_VMWARE')
       vmx_inc_dir,
     ],
   )
+
+  libvirt_libs += vmware_lib
 endif
 
 if conf.has('WITH_VMWARE')
diff --git a/src/vmx/meson.build b/src/vmx/meson.build
index 25e3d1a6fca..e599b8de39b 100644
--- a/src/vmx/meson.build
+++ b/src/vmx/meson.build
@@ -15,6 +15,8 @@ if conf.has('WITH_VMX')
       conf_inc_dir,
     ],
   )
+
+  libvirt_libs += vmx_lib
 endif
 
 vmx_inc_dir = include_directories('.')
-- 
2.26.2




More information about the libvir-list mailing list