On Thu, Dec 17, 2020 at 1:40 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > Reviewed-by: Marc-André Lureau --- > chardev/meson.build | 2 +- > configure | 32 ++++---------------------------- > meson.build | 20 +++++++++++++++++--- > meson_options.txt | 2 ++ > 4 files changed, 24 insertions(+), 32 deletions(-) > > diff --git a/chardev/meson.build b/chardev/meson.build > index 4e19722c5e..32377af383 100644 > --- a/chardev/meson.build > +++ b/chardev/meson.build > @@ -29,7 +29,7 @@ softmmu_ss.add(files('msmouse.c', 'wctablet.c', > 'testdev.c')) > > chardev_modules = {} > > -if config_host.has_key('CONFIG_BRLAPI') > +if brlapi.found() > module_ss = ss.source_set() > module_ss.add(when: [brlapi], if_true: [files('baum.c'), pixman]) > chardev_modules += { 'baum': module_ss } > diff --git a/configure b/configure > index 74eebfd692..42b39544d4 100755 > --- a/configure > +++ b/configure > @@ -306,7 +306,7 @@ for opt do > esac > done > > -brlapi="$default_feature" > +brlapi="auto" > curl="$default_feature" > iconv="auto" > curses="auto" > @@ -1105,9 +1105,9 @@ for opt do > ;; > --enable-xen-pci-passthrough) xen_pci_passthrough="enabled" > ;; > - --disable-brlapi) brlapi="no" > + --disable-brlapi) brlapi="disabled" > ;; > - --enable-brlapi) brlapi="yes" > + --enable-brlapi) brlapi="enabled" > ;; > --disable-kvm) kvm="disabled" > ;; > @@ -3425,26 +3425,6 @@ for drv in $audio_drv_list; do > esac > done > > -########################################## > -# BrlAPI probe > - > -if test "$brlapi" != "no" ; then > - brlapi_libs="-lbrlapi" > - cat > $TMPC << EOF > -#include > -#include > -int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); } > -EOF > - if compile_prog "" "$brlapi_libs" ; then > - brlapi=yes > - else > - if test "$brlapi" = "yes" ; then > - feature_not_found "brlapi" "Install brlapi devel" > - fi > - brlapi=no > - fi > -fi > - > ########################################## > # curl probe > if test "$curl" != "no" ; then > @@ -6134,10 +6114,6 @@ if test "$curl" = "yes" ; then > echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak > echo "CURL_LIBS=$curl_libs" >> $config_host_mak > fi > -if test "$brlapi" = "yes" ; then > - echo "CONFIG_BRLAPI=y" >> $config_host_mak > - echo "BRLAPI_LIBS=$brlapi_libs" >> $config_host_mak > -fi > if test "$gtk" = "yes" ; then > echo "CONFIG_GTK=y" >> $config_host_mak > echo "GTK_CFLAGS=$gtk_cflags" >> $config_host_mak > @@ -6971,7 +6947,7 @@ NINJA=$ninja $meson setup \ > -Dcocoa=$cocoa -Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \ > -Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg > -Dvnc_png=$vnc_png \ > -Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f > -Dvirtiofsd=$virtiofsd \ > - -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt \ > + -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \ > -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\ > -Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \ > -Dvhost_user_blk_server=$vhost_user_blk_server \ > diff --git a/meson.build b/meson.build > index bb198f792a..70f81121d7 100644 > --- a/meson.build > +++ b/meson.build > @@ -570,8 +570,21 @@ if have_system and not get_option('curses').disabled() > endif > > brlapi = not_found > -if 'CONFIG_BRLAPI' in config_host > - brlapi = declare_dependency(link_args: > config_host['BRLAPI_LIBS'].split()) > +if not get_option('brlapi').auto() or have_system > with some new legit conditional check, ok > + brlapi = cc.find_library('brlapi', has_headers: ['brlapi.h'], > + required: get_option('brlapi'), > + static: enable_static) > + if brlapi.found() and not cc.links(''' > + #include > + #include > + int main(void) { return brlapi__openConnection (NULL, NULL, NULL); > }''', dependencies: brlapi) > + brlapi = not_found > + if get_option('brlapi').enabled() > + error('could not link brlapi') > + else > + warning('could not link brlapi, disabling') > + endif > + endif > endif > > sdl = not_found > @@ -854,6 +867,7 @@ > config_host_data.set_quoted('CONFIG_QEMU_LOCALSTATEDIR', > get_option('prefix') / > config_host_data.set_quoted('CONFIG_QEMU_MODDIR', get_option('prefix') / > qemu_moddir) > config_host_data.set_quoted('CONFIG_SYSCONFDIR', get_option('prefix') / > get_option('sysconfdir')) > > +config_host_data.set('CONFIG_BRLAPI', brlapi.found()) > config_host_data.set('CONFIG_COCOA', cocoa.found()) > config_host_data.set('CONFIG_LIBUDEV', libudev.found()) > config_host_data.set('CONFIG_MPATH', mpathpersist.found()) > @@ -2164,7 +2178,7 @@ summary_info += {'xen support': > config_host.has_key('CONFIG_XEN_BACKEND')} > if config_host.has_key('CONFIG_XEN_BACKEND') > summary_info += {'xen ctrl version': > config_host['CONFIG_XEN_CTRL_INTERFACE_VERSION']} > endif > -summary_info += {'brlapi support': > config_host.has_key('CONFIG_BRLAPI')} > +summary_info += {'brlapi support': brlapi.found()} > summary_info += {'Documentation': build_docs} > summary_info += {'PIE': get_option('b_pie')} > summary_info += {'vde support': config_host.has_key('CONFIG_VDE')} > diff --git a/meson_options.txt b/meson_options.txt > index 242e0769fb..62efe96a91 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -40,6 +40,8 @@ option('cfi', type: 'boolean', value: 'false', > option('cfi_debug', type: 'boolean', value: 'false', > description: 'Verbose errors in case of CFI violation') > > +option('brlapi', type : 'feature', value : 'auto', > + description: 'brlapi character device driver') > option('cocoa', type : 'feature', value : 'auto', > description: 'Cocoa user interface (macOS only)') > option('mpath', type : 'feature', value : 'auto', > -- > 2.29.2 > > >