On Thu, Oct 7, 2021 at 5:26 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > Reviewed-by: Marc-André Lureau > --- > configure | 35 ++++------------------------------- > meson.build | 26 +++++++++++++++++++++++--- > meson_options.txt | 2 ++ > net/meson.build | 2 +- > 4 files changed, 30 insertions(+), 35 deletions(-) > > diff --git a/configure b/configure > index 86bc4b52d7..a2b1d54be8 100755 > --- a/configure > +++ b/configure > @@ -301,7 +301,7 @@ libudev="auto" > mpath="auto" > vnc="auto" > sparse="auto" > -vde="$default_feature" > +vde="auto" > vnc_sasl="auto" > vnc_jpeg="auto" > vnc_png="auto" > @@ -1022,9 +1022,9 @@ for opt do > ;; > --enable-slirp=system) slirp="system" > ;; > - --disable-vde) vde="no" > + --disable-vde) vde="disabled" > ;; > - --enable-vde) vde="yes" > + --enable-vde) vde="enabled" > ;; > --disable-netmap) netmap="no" > ;; > @@ -2901,30 +2901,6 @@ EOF > fi > fi > > -########################################## > -# vde libraries probe > -if test "$vde" != "no" ; then > - vde_libs="-lvdeplug" > - cat > $TMPC << EOF > -#include > -int main(void) > -{ > - struct vde_open_args a = {0, 0, 0}; > - char s[] = ""; > - vde_open(s, s, &a); > - return 0; > -} > -EOF > - if compile_prog "" "$vde_libs" ; then > - vde=yes > - else > - if test "$vde" = "yes" ; then > - feature_not_found "vde" "Install vde (Virtual Distributed Ethernet) > devel" > - fi > - vde=no > - fi > -fi > - > ########################################## > # netmap support probe > # Apart from looking for netmap headers, we make sure that the host API > version > @@ -4197,10 +4173,6 @@ if test "$slirp_smbd" = "yes" ; then > echo "CONFIG_SLIRP_SMBD=y" >> $config_host_mak > echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak > fi > -if test "$vde" = "yes" ; then > - echo "CONFIG_VDE=y" >> $config_host_mak > - echo "VDE_LIBS=$vde_libs" >> $config_host_mak > -fi > if test "$netmap" = "yes" ; then > echo "CONFIG_NETMAP=y" >> $config_host_mak > fi > @@ -4750,6 +4722,7 @@ if test "$skip_meson" = no; then > -Dalsa=$alsa -Dcoreaudio=$coreaudio -Ddsound=$dsound -Djack=$jack > -Doss=$oss \ > -Dpa=$pa -Daudio_drv_list=$audio_drv_list > -Dtcg_interpreter=$tcg_interpreter \ > -Dtrace_backends=$trace_backends -Dtrace_file=$trace_file > -Dlinux_aio=$linux_aio \ > + -Dvde=$vde \ > $cross_arg \ > "$PWD" "$source_path" > > diff --git a/meson.build b/meson.build > index 0be11e5e08..46d8798a19 100644 > --- a/meson.build > +++ b/meson.build > @@ -502,9 +502,28 @@ else > xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'), > method: 'pkg-config', kwargs: static_kwargs) > endif > + > vde = not_found > -if config_host.has_key('CONFIG_VDE') > - vde = declare_dependency(link_args: config_host['VDE_LIBS'].split()) > +if not get_option('vde').auto() or have_system or have_tools > + vde = cc.find_library('vdeplug', has_headers: ['libvdeplug.h'], > + required: get_option('vde'), > + kwargs: static_kwargs) > +endif > +if vde.found() and not cc.links(''' > + #include > + int main(void) > + { > + struct vde_open_args a = {0, 0, 0}; > + char s[] = ""; > + vde_open(s, s, &a); > + return 0; > + }''', dependencies: vde) > + vde = not_found > + if get_option('cap_ng').enabled() > + error('could not link libvdeplug') > + else > + warning('could not link libvdeplug, disabling') > + endif > endif > > pulse = not_found > @@ -1443,6 +1462,7 @@ config_host_data.set('CONFIG_SDL_IMAGE', > sdl_image.found()) > config_host_data.set('CONFIG_SECCOMP', seccomp.found()) > config_host_data.set('CONFIG_SNAPPY', snappy.found()) > config_host_data.set('CONFIG_USB_LIBUSB', libusb.found()) > +config_host_data.set('CONFIG_VDE', vde.found()) > config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER', > have_vhost_user_blk_server) > config_host_data.set('CONFIG_VNC', vnc.found()) > config_host_data.set('CONFIG_VNC_JPEG', jpeg.found()) > @@ -3295,7 +3315,7 @@ if targetos == 'linux' > endif > summary_info += {'JACK support': jack} > summary_info += {'brlapi support': brlapi} > -summary_info += {'vde support': config_host.has_key('CONFIG_VDE')} > +summary_info += {'vde support': vde} > summary_info += {'netmap support': > config_host.has_key('CONFIG_NETMAP')} > summary_info += {'Linux AIO support': libaio} > summary_info += {'Linux io_uring support': linux_io_uring} > diff --git a/meson_options.txt b/meson_options.txt > index 904e15d54c..7d0fa1c7f4 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -129,6 +129,8 @@ option('u2f', type : 'feature', value : 'auto', > description: 'U2F emulation support') > option('usb_redir', type : 'feature', value : 'auto', > description: 'libusbredir support') > +option('vde', type : 'feature', value : 'auto', > + description: 'vde network backend support') > option('virglrenderer', type : 'feature', value : 'auto', > description: 'virgl rendering support') > option('vnc', type : 'feature', value : 'auto', > diff --git a/net/meson.build b/net/meson.build > index 1076b0a7ab..491144a697 100644 > --- a/net/meson.build > +++ b/net/meson.build > @@ -20,7 +20,7 @@ softmmu_ss.add(when: 'CONFIG_TCG', if_true: > files('filter-replay.c')) > > softmmu_ss.add(when: 'CONFIG_L2TPV3', if_true: files('l2tpv3.c')) > softmmu_ss.add(when: slirp, if_true: files('slirp.c')) > -softmmu_ss.add(when: ['CONFIG_VDE', vde], if_true: files('vde.c')) > +softmmu_ss.add(when: vde, if_true: files('vde.c')) > softmmu_ss.add(when: 'CONFIG_NETMAP', if_true: files('netmap.c')) > vhost_user_ss = ss.source_set() > vhost_user_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: > files('vhost-user.c'), if_false: files('vhost-user-stub.c')) > -- > 2.31.1 > > > > -- Marc-André Lureau