Emil Velikov wrote:
Some drivers do not support certain targets - for example nouveau
doesn't do VAAPI, while freedreno doesn't do of the video backends.
As such if we enter vdpau when building freedreno/ilo/etc, a vdpau/
folder will be created, empty library will be build and almost
immediately removed. Thus keeping an empty vdpau/ folder around.
There are two ways to fix this.
* add substantial tracking in configure/makefiles so that we never end
up in targets/vdpau
Downsides:
Error prone, as the configure checks and the 'include
gallium/drivers/foo/Automake.inc' can easily get out of sync.
* remove the folder, if empty, alongside the empty library.
Downsides:
In the latter case vdpau/ might be empty before the mesa build has
started, yet we'll remove it either way.
This patch implements the latter option, as the downside isn't that
significant, plus the patch is way shorter ;-)
v2: use has_drivers to track since TARGET_DRIVERS can contain space,
hence neither string comparison nor -n/-z works correctly.
This breaks make install on my setup.
./autogen.sh --prefix=/usr --sysconfdir=/etc --enable-texture-float
--enable-opencl --enable-omx --with-egl-platforms=x11,drm
--with-gallium-drivers=radeonsi,swrast --enable-gbm
--enable-shared-glapi --enable-glx-tls --with-dri-drivers= && make -j5
....
make install
....
Making install in state_trackers/xvmc
make[4]: Entering directory
'/mnt/sdb1/Gits/mesa/src/gallium/state_trackers/xvmc'
make[5]: Entering directory
'/mnt/sdb1/Gits/mesa/src/gallium/state_trackers/xvmc'
make[5]: Nothing to be done for 'install-exec-am'.
make[5]: Nothing to be done for 'install-data-am'.
make[5]: Leaving directory
'/mnt/sdb1/Gits/mesa/src/gallium/state_trackers/xvmc'
make[4]: Leaving directory
'/mnt/sdb1/Gits/mesa/src/gallium/state_trackers/xvmc'
Making install in targets/xvmc
make[4]: Entering directory '/mnt/sdb1/Gits/mesa/src/gallium/targets/xvmc'
make[5]: Entering directory '/mnt/sdb1/Gits/mesa/src/gallium/targets/xvmc'
make[5]: Nothing to be done for 'install-exec-am'.
/bin/mkdir -p '/usr/lib'
/bin/sh ../../../../libtool --mode=install /usr/bin/install -c
libXvMCgallium.la '/usr/lib'
libtool: install: /usr/bin/install -c .libs/libXvMCgallium.so.1.0.0
/usr/lib/libXvMCgallium.so.1.0.0
libtool: install: (cd /usr/lib && { ln -s -f libXvMCgallium.so.1.0.0
libXvMCgallium.so.1 || { rm -f libXvMCgallium.so.1 && ln -s
libXvMCgallium.so.1.0.0 libXvMCgallium.so.1; }; })
libtool: install: (cd /usr/lib && { ln -s -f libXvMCgallium.so.1.0.0
libXvMCgallium.so || { rm -f libXvMCgallium.so && ln -s
libXvMCgallium.so.1.0.0 libXvMCgallium.so; }; })
libtool: install: /usr/bin/install -c .libs/libXvMCgallium.lai
/usr/lib/libXvMCgallium.la
libtool: finish: PATH="/sbin:/bin:/usr/sbin:/usr/bin:/sbin" ldconfig -n
/usr/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
make install-data-hook
make[6]: Entering directory '/mnt/sdb1/Gits/mesa/src/gallium/targets/xvmc'
GEN install-data-hook
/bin/sh: line 16: test: -eq: unary operator expected
rm: cannot remove ‘//usr/lib’: Directory not empty
Makefile:1059: recipe for target 'install-data-hook' failed
make[6]: *** [install-data-hook] Error 1
make[6]: Leaving directory '/mnt/sdb1/Gits/mesa/src/gallium/targets/xvmc'
Makefile:987: recipe for target 'install-data-am' failed
make[5]: *** [install-data-am] Error 2
make[5]: Leaving directory '/mnt/sdb1/Gits/mesa/src/gallium/targets/xvmc'
Makefile:939: recipe for target 'install-am' failed
make[4]: *** [install-am] Error 2
make[4]: Leaving directory '/mnt/sdb1/Gits/mesa/src/gallium/targets/xvmc'
Makefile:600: recipe for target 'install-recursive' failed
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory '/mnt/sdb1/Gits/mesa/src/gallium'
Makefile:856: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/mnt/sdb1/Gits/mesa/src'
Makefile:1013: recipe for target 'install' failed
make[1]: *** [install] Error 2
make[1]: Leaving directory '/mnt/sdb1/Gits/mesa/src'
Makefile:644: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev