dnl MinGW checks
-LIBVIRT_WIN_CHECK_SYMBOLS
LIBVIRT_WIN_CHECK_WINDRES
+++ /dev/null
-dnl The MinGW symbols checks
-dnl
-dnl Copyright (C) 2016 Red Hat, Inc.
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Lesser General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2.1 of the License, or (at your option) any later version.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Lesser General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU Lesser General Public
-dnl License along with this library. If not, see
-dnl <http://www.gnu.org/licenses/>.
-dnl
-
-AC_DEFUN([LIBVIRT_WIN_CHECK_SYMBOLS], [
- LIBVIRT_ADMIN_SYMBOL_FILE=admin/libvirt_admin.syms
- case "$host" in
- *-*-mingw* )
- # Also set the symbol file to .def, so src/Makefile generates libvirt.def
- # from libvirt.syms and passes libvirt.def instead of libvirt.syms to the
- # linker
- LIBVIRT_ADMIN_SYMBOL_FILE=admin/libvirt_admin.def
- ;;
- esac
- AC_SUBST([LIBVIRT_ADMIN_SYMBOL_FILE])
-])
nodist_conf_DATA =
DRIVER_SOURCE_FILES =
STATEFUL_DRIVER_SOURCE_FILES =
-lib_LTLIBRARIES =
noinst_LTLIBRARIES =
mod_LTLIBRARIES =
INSTALL_DATA_DIRS =
# vim: filetype=automake
-ADMIN_PROTOCOL = $(srcdir)/admin/admin_protocol.x
-
-ADMIN_PROTOCOL_GENERATED = \
- admin/admin_client.h \
- $(NULL)
-
-BUILT_SOURCES += $(ADMIN_PROTOCOL_GENERATED)
-
-GENERATED_SYM_FILES += admin/libvirt_admin.syms admin/libvirt_admin.def
-
ADMIN_SYM_FILES = $(srcdir)/admin/libvirt_admin_private.syms
conf_DATA += admin/libvirt-admin.conf
-lib_LTLIBRARIES += libvirt-admin.la
-
-libvirt_admin_la_SOURCES = \
- admin/libvirt-admin.c \
- $(DATATYPES_SOURCES)
-
-nodist_libvirt_admin_la_SOURCES = \
- $(ADMIN_PROTOCOL_GENERATED)
-
-libvirt_admin_la_LDFLAGS = \
- $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_ADMIN_SYMBOL_FILE) \
- -version-info $(LIBVIRT_VERSION_INFO) \
- $(LIBVIRT_NODELETE) \
- $(AM_LDFLAGS) \
- $(NULL)
-
-libvirt_admin_la_LIBADD = \
- libvirt.la \
- $(XDR_LIBS) \
- $(CAPNG_LIBS) \
- $(YAJL_LIBS) \
- $(DEVMAPPER_LIBS) \
- $(LIBXML_LIBS) \
- $(GLIB_LIBS) \
- $(SSH2_LIBS) \
- $(SASL_LIBS) \
- $(GNUTLS_LIBS) \
- $(LIBSSH_LIBS)
-
-if WITH_DTRACE_PROBES
-libvirt_admin_la_LIBADD += libvirt_probes.lo
-endif WITH_DTRACE_PROBES
-
-libvirt_admin_la_CFLAGS = \
- $(AM_CFLAGS) \
- -I$(builddir)/admin \
- -I$(builddir)/access \
- -I$(srcdir)/remote \
- -I$(srcdir)/rpc \
- -I$(builddir)/rpc \
- $(XDR_CFLAGS) \
- $(CAPNG_CFLAGS) \
- $(YAJL_CFLAGS) \
- $(SSH2_CFLAGS) \
- $(SASL_CFLAGS) \
- $(GNUTLS_CFLAGS) \
- $(LIBSSH_CFLAGS)
-
if WITH_LINUX
check-admin-symfile: admin/libvirt_admin.syms libvirt-admin.la
$(AM_V_GEN)$(RUNUTF8) $(PYTHON) $(top_srcdir)/scripts/check-symfile.py \
$(srcdir)/admin/libvirt_admin_public.syms
check-admin: check-admin-symfile check-admin-symsorting check-admin-drivername
-
-admin/admin_client.h: $(srcdir)/rpc/gendispatch.pl \
- $(ADMIN_PROTOCOL) Makefile.am
- $(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=client \
- admin ADMIN $(ADMIN_PROTOCOL) \
- > admin/admin_client.h
-
-admin/libvirt_admin.syms: admin/libvirt_admin_public.syms $(ADMIN_SYM_FILES) \
- $(top_builddir)/config.status
- $(AM_V_GEN)rm -f $@-tmp $@ ; \
- printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp && \
- cat $(srcdir)/admin/libvirt_admin_public.syms >>$@-tmp && \
- printf '\n\n# Private symbols\n\n' >>$@-tmp && \
- printf 'LIBVIRT_ADMIN_PRIVATE_$(VERSION) {\n\n' >>$@-tmp && \
- printf 'global:\n\n' >>$@-tmp && \
- cat $(ADMIN_SYM_FILES) >>$@-tmp && \
- printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
- chmod a-w $@-tmp && \
- mv $@-tmp admin/libvirt_admin.syms
capture: true,
)
+admin_sources = files(
+ 'libvirt-admin.c',
+)
+
+admin_client_generated = custom_target(
+ 'admin_client.h',
+ input: admin_driver_protocol,
+ output: 'admin_client.h',
+ command: [
+ gendispatch_prog, '--mode=client', 'admin', 'ADMIN', '@INPUT@',
+ ],
+ capture: true,
+)
+
+libvirt_admin_syms = custom_target(
+ 'libvirt_admin.syms',
+ input: [
+ 'libvirt_admin_public.syms',
+ 'libvirt_admin_private.syms',
+ ],
+ output: 'libvirt_admin.syms',
+ command: [
+ meson_python_prog, python3_prog.path(), meson_gen_sym_prog.path(),
+ '@OUTPUT@', 'LIBVIRT_ADMIN_PRIVATE_' + meson.project_version(), '@INPUT@',
+ ],
+)
+libvirt_admin_syms_file = libvirt_admin_syms
+if host_machine.system() == 'windows'
+ libvirt_admin_def = custom_target(
+ 'libvirt_admin.def',
+ input: libvirt_admin_syms,
+ output: 'libvirt_admin.def',
+ command: [
+ meson_python_prog, python3_prog.path(), meson_gen_def_prog.path(),
+ '@INPUT@', '@OUTPUT@',
+ ],
+ )
+ libvirt_admin_syms_file = libvirt_admin_def
+endif
+
+libvirt_admin_syms_flags = '@0@@1@'.format(
+ version_script_flags,
+ libvirt_admin_syms_file.full_path(),
+)
+
admin_driver_lib = static_library(
'virt_admin_driver',
[
xdr_dep,
],
)
+
+admin_inc_dir = include_directories('.')
version: libvirt_lib_version,
soversion: libvirt_so_version,
)
+
+
+# libvirt-admin.so
+
+libvirt_admin_lib = shared_library(
+ 'virt-admin',
+ [
+ admin_sources,
+ admin_client_generated,
+ admin_driver_generated,
+ datatypes_sources,
+ dtrace_gen_objects,
+ ],
+ dependencies: [
+ capng_dep,
+ devmapper_dep,
+ gnutls_dep,
+ libssh2_dep,
+ libssh_dep,
+ sasl_dep,
+ src_dep,
+ rpc_dep,
+ xdr_dep,
+ yajl_dep,
+ ],
+ include_directories: [
+ admin_inc_dir,
+ remote_inc_dir,
+ ],
+ link_args: [
+ libvirt_admin_syms_flags,
+ libvirt_nodelete,
+ ],
+ link_with: [
+ libvirt_lib,
+ ],
+ link_depends: [
+ libvirt_admin_syms_file,
+ ],
+ install: true,
+ install_rpath: libdir,
+ version: libvirt_lib_version,
+ soversion: libvirt_so_version,
+)
else
sym_files += 'libvirt_remote.syms'
endif
+
+remote_inc_dir = include_directories('.')