On Thu, Oct 17, 2019 at 3:30 PM Kevin Pouget <kpouget@xxxxxxxxxx> wrote: > > The 'agent' interface is an experimental instrumentation library for > capturing and sharing Spice performance indicators with an external > agent. > > --enable-instrumentation=[c3d-rec/agent/no] > Enable instrumentation [default=no] > > Former configuration option '--enable-recorder=c3d' is transformed into > '--enable-instrumentation=c3d-rec'. > > Signed-off-by: Kevin Pouget <kpouget@xxxxxxxxxx> > --- > common/Makefile.am | 9 ++++++++- > common/meson.build | 8 +++++++- > common/recorder.h | 12 ++++++++---- > configure.ac | 2 +- > m4/spice-deps.m4 | 23 +++++++++++++---------- > meson.build | 7 +++++-- > meson_options.txt | 10 +++++----- > 7 files changed, 47 insertions(+), 24 deletions(-) > > diff --git a/common/Makefile.am b/common/Makefile.am > index 9638635..fc466bd 100644 > --- a/common/Makefile.am > +++ b/common/Makefile.am > @@ -56,7 +56,7 @@ libspice_common_la_SOURCES = \ > recorder.h \ > $(NULL) > > -if ENABLE_RECORDER > +if ENABLE_C3D_RECORDER > libspice_common_la_SOURCES += \ > recorder/recorder.c \ > recorder/recorder.h \ > @@ -65,6 +65,13 @@ libspice_common_la_SOURCES += \ > $(NULL) > endif > > +if ENABLE_AGENT_INTERFACE > +libspice_common_la_SOURCES += \ > + agent_interface.c \ > + agent_interface.h \ > + $(NULL) > +endif > + > # These 2 files are not build as part of spice-common > # build system, but modules using spice-common will build > # them with the appropriate options. We need to let automake > diff --git a/common/meson.build b/common/meson.build > index 9a2725f..418593e 100644 > --- a/common/meson.build > +++ b/common/meson.build > @@ -41,7 +41,7 @@ spice_common_sources = [ > 'recorder.h' > ] > > -if get_option('recorder') > +if get_option('instrumentation') == 'c3d-rec' > spice_common_sources += [ > 'recorder/recorder.c', > 'recorder/recorder.h', > @@ -49,6 +49,12 @@ if get_option('recorder') > 'recorder/recorder_ring.h' > ] > endif > +if get_option('instrumentation') == 'agent' > + spice_common_sources += [ > + 'agent_interface.c', > + 'agent_interface.h' > + ] > +endif > > spice_common_lib = static_library('spice-common', spice_common_sources, > install : false, > diff --git a/common/recorder.h b/common/recorder.h > index 7194ab5..f776fd3 100644 > --- a/common/recorder.h > +++ b/common/recorder.h > @@ -16,7 +16,14 @@ > */ > /* This file include recorder library headers or if disabled provide > * replacement declarations */ > -#ifndef ENABLE_RECORDER > + > +#ifdef ENABLE_C3D_RECORDER > +#include <common/recorder/recorder.h> > + > +#elif defined(ENABLE_AGENT_INTERFACE) > +#include <common/agent_interface.h> > + > +#else > > #include <stdio.h> > #include <stdint.h> > @@ -69,9 +76,6 @@ static inline void > recorder_dump_on_common_signals(unsigned add, unsigned remove) > { > } > - > -#else > -#include <common/recorder/recorder.h> > #endif > > #if !defined(ENABLE_AGENT_INTERFACE) > diff --git a/configure.ac b/configure.ac > index da0a687..9d10287 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -41,7 +41,7 @@ AC_ARG_ENABLE([alignment-checks], > AS_IF([test "x$enable_alignment_checks" = "xyes"], > [AC_DEFINE([SPICE_DEBUG_ALIGNMENT], 1, [Enable runtime checks for cast alignment])]) > > -SPICE_CHECK_RECORDER > +SPICE_CHECK_INSTRUMENTATION > > # Checks for libraries > PKG_CHECK_MODULES([PROTOCOL], [spice-protocol >= 0.12.12]) > diff --git a/m4/spice-deps.m4 b/m4/spice-deps.m4 > index 1214341..34f73e6 100644 > --- a/m4/spice-deps.m4 > +++ b/m4/spice-deps.m4 > @@ -341,17 +341,20 @@ AC_DEFUN([SPICE_CHECK_OPENSSL], [ > PKG_CHECK_MODULES(OPENSSL, openssl) > ]) > > -# SPICE_CHECK_RECORDER > +# SPICE_CHECK_INSTRUMENTATION > # ----------------- > -# Check for the availability of recorder library. > +# Check for the availability of an instrumentation library. > #------------------ > -AC_DEFUN([SPICE_CHECK_RECORDER], [ > - AC_ARG_ENABLE([recorder], > - AS_HELP_STRING([--enable-recorder], > - [Enable recorder instrumentation @<:@default=no@:>@]), > +AC_DEFUN([SPICE_CHECK_INSTRUMENTATION], [ > + AC_ARG_ENABLE([instrumentation], > + AS_HELP_STRING([--enable-instrumentation=@<:@c3d-rec/agent/no@:>@], > + [Enable instrumentation @<:@default=no@:>@]), > [], > - enable_recorder="no") > - AS_IF([test "$enable_recorder" = "yes"], > - AC_DEFINE([ENABLE_RECORDER], [1], [Define if recorder instrumentation is enabled])) > - AM_CONDITIONAL([ENABLE_RECORDER],[test "$enable_recorder" = "yes"]) > + enable_instrumentation="no") > + AS_IF([test "$enable_instrumentation" = "c3d-rec"], > + AC_DEFINE([ENABLE_C3D_RECORDER], [1], [Define if c3d recorder instrumentation is enabled])) > + AS_IF([test "$enable_instrumentation" = "agent"], > + AC_DEFINE([ENABLE_AGENT_INTERFACE], [1], [Define if the agent-interface instrumentation is enabled])) > + AM_CONDITIONAL([ENABLE_C3D_RECORDER],[test "$enable_instrumentation" = "c3d-rec"]) > + AM_CONDITIONAL([ENABLE_AGENT_INTERFACE],[test "$enable_instrumentation" = "agent"]) > ]) > diff --git a/meson.build b/meson.build > index 694119d..064c56e 100644 > --- a/meson.build > +++ b/meson.build > @@ -36,8 +36,11 @@ if host_machine.endian() == 'big' > spice_common_config_data.set('WORDS_BIGENDIAN', '1') > endif > > -if get_option('recorder') > - spice_common_config_data.set('ENABLE_RECORDER', '1') > +if get_option('instrumentation') == 'c3d-rec' > + spice_common_config_data.set('ENABLE_C3D_RECORDER', '1') > +endif > +if get_option('instrumentation') == 'agent' > + spice_common_config_data.set('ENABLE_AGENT_INTERFACE', '1') > endif > > spice_common_generate_code = get_option('generate-code') > diff --git a/meson_options.txt b/meson_options.txt > index c982736..e94bb89 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -21,11 +21,11 @@ option('opus', > yield : true, > description: 'Enable Opus audio codec') > > -option('recorder', > - type : 'boolean', > - value : false, > - yield : true, > - description: 'Enable recorder instrumentation') > +option('instrumentation', > + type : 'combo', > + value : 'off', > + choices : ['c3d-rec', 'agent', 'off'], > + description: 'Enable instrumentation') for consistency with the autotool configure flag, I will change "off" to "no" in this meson options > option('smartcard', > type : 'feature', > -- > 2.21.0 > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel