Merge pull request #56199 from eadwu/mesa/build-with-meson

mesa: build with meson
This commit is contained in:
Graham Christensen 2019-06-26 19:25:14 -04:00 committed by GitHub
commit 86311cd2f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 147 additions and 219 deletions

View File

@ -1,8 +1,8 @@
{ stdenv, fetchurl, lib { stdenv, lib, fetchurl, fetchpatch
, pkgconfig, intltool, autoreconfHook , pkgconfig, intltool, ninja, meson
, file, expat, libdrm, xorg, wayland, wayland-protocols, openssl , file, flex, bison, expat, libdrm, xorg, wayland, wayland-protocols, openssl
, llvmPackages, libffi, libomxil-bellagio, libva-minimal , llvmPackages, libffi, libomxil-bellagio, libva-minimal
, libelf, libvdpau, python2, python2Packages , libelf, libvdpau, python3Packages
, libglvnd , libglvnd
, enableRadv ? true , enableRadv ? true
, galliumDrivers ? null , galliumDrivers ? null
@ -32,17 +32,17 @@ let
defaultGalliumDrivers = optionals (elem "drm" eglPlatforms) ([ "virgl" ] defaultGalliumDrivers = optionals (elem "drm" eglPlatforms) ([ "virgl" ]
++ lib.optionals pciePlatform [ "r300" "r600" "radeonsi" ] ++ lib.optionals pciePlatform [ "r300" "r600" "radeonsi" ]
++ lib.optionals (pciePlatform || stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "nouveau" ] ++ lib.optionals (pciePlatform || stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "nouveau" ]
++ lib.optionals stdenv.hostPlatform.isx86 [ "i915" "svga" ] ++ lib.optionals stdenv.hostPlatform.isx86 [ "svga" ]
++ lib.optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "vc4" ] ++ lib.optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "vc4" ]
++ lib.optionals stdenv.hostPlatform.isAarch64 [ "freedreno" "etnaviv" "imx" ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "freedreno" "etnaviv" "imx" ]
); );
defaultDriDrivers = optionals (elem "drm" eglPlatforms) ([ ] defaultDriDrivers = optionals (elem "drm" eglPlatforms) ([ ]
++ lib.optionals pciePlatform [ "radeon" "r200" ] ++ lib.optionals pciePlatform [ "r200" ]
++ lib.optionals (pciePlatform || stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "nouveau" ] ++ lib.optionals (pciePlatform || stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "nouveau" ]
++ lib.optionals stdenv.hostPlatform.isx86 [ "i915" "i965" ]); ++ lib.optionals stdenv.hostPlatform.isx86 [ "i915" "i965" ]);
defaultVulkanDrivers = optionals stdenv.hostPlatform.isLinux ([ ] defaultVulkanDrivers = optionals stdenv.hostPlatform.isLinux ([ ]
++ lib.optional stdenv.hostPlatform.isx86 "intel" ++ lib.optional stdenv.hostPlatform.isx86 "intel"
++ lib.optional enableRadv "radeon"); ++ lib.optional enableRadv "amd");
in in
let gallium_ = galliumDrivers; dri_ = driDrivers; vulkan_ = vulkanDrivers; in let gallium_ = galliumDrivers; dri_ = driDrivers; vulkan_ = vulkanDrivers; in
@ -56,7 +56,7 @@ let
driDrivers = driDrivers =
(if dri_ == null (if dri_ == null
then optionals (elem "drm" eglPlatforms) defaultDriDrivers then optionals (elem "drm" eglPlatforms) defaultDriDrivers
else dri_) ++ lib.optional stdenv.isLinux "swrast"; else dri_);
vulkanDrivers = vulkanDrivers =
if vulkan_ == null if vulkan_ == null
then defaultVulkanDrivers then defaultVulkanDrivers
@ -64,7 +64,7 @@ let
in in
let let
version = "18.3.4"; version = "19.1.1";
branch = head (splitString "." version); branch = head (splitString "." version);
in in
@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
"https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz" "https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz"
]; ];
sha256 = "01xv03ah4l5lcfx015n3fg1620dh4nbbv6gmhh6zhdsx6sj4sc9j"; sha256 = "10amy5sdmpjbskr3xazgk0jyli8xpgi0y1nsmjr76hx8nhb4n4bj";
}; };
prePatch = "patchShebangs ."; prePatch = "patchShebangs .";
@ -88,59 +88,75 @@ stdenv.mkDerivation rec {
# revive ./dricore-gallium.patch when it gets ported (from Ubuntu), as it saved # revive ./dricore-gallium.patch when it gets ported (from Ubuntu), as it saved
# ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog # ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
patches = [ patches = [
./symlink-drivers.patch
./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl ./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
./opencl-install-dir.patch
./disk_cache-include-dri-driver-path-in-cache-key.patch ./disk_cache-include-dri-driver-path-in-cache-key.patch
]; ] # do not prefix user provided dri-drivers-path
++ lib.optional (lib.versionOlder version "19.0.0") (fetchpatch {
url = "https://gitlab.freedesktop.org/mesa/mesa/commit/f6556ec7d126b31da37c08d7cb657250505e01a0.patch";
sha256 = "0z6phi8hbrbb32kkp1js7ggzviq7faz1ria36wi4jbc4in2392d9";
})
++ lib.optionals (lib.versionOlder version "19.1.0") [
# do not prefix user provided d3d-drivers-path
(fetchpatch {
url = "https://gitlab.freedesktop.org/mesa/mesa/commit/dcc48664197c7e44684ccfb970a4ae083974d145.patch";
sha256 = "1nhs0xpx3hiy8zfb5gx1zd7j7xha6h0hr7yingm93130a5902lkb";
})
# don't build libGLES*.so with GLVND
(fetchpatch {
url = "https://gitlab.freedesktop.org/mesa/mesa/commit/b01524fff05eef66e8cd24f1c5aacefed4209f03.patch";
sha256 = "1pszr6acx2xw469zq89n156p3bf3xf84qpbjw5fr1sj642lbyh7c";
})
];
outputs = [ "out" "dev" "drivers" ] outputs = [ "out" "dev" "drivers" ]
++ lib.optional (elem "swrast" galliumDrivers) "osmesa"; ++ lib.optional (elem "swrast" galliumDrivers) "osmesa";
# TODO: Figure out how to enable opencl without having a runtime dependency on clang # TODO: Figure out how to enable opencl without having a runtime dependency on clang
configureFlags = [ mesonFlags = [
"--sysconfdir=${libglvnd.driverLink}/etc" "--sysconfdir=/etc"
"--localstatedir=/var"
"--with-dri-driverdir=$(drivers)/lib/dri"
"--with-dri-searchpath=${libglvnd.driverLink}/lib/dri"
"--with-platforms=${concatStringsSep "," eglPlatforms}"
"--with-gallium-drivers=${concatStringsSep "," galliumDrivers}"
"--with-dri-drivers=${concatStringsSep "," driDrivers}"
"--with-vulkan-drivers=${concatStringsSep "," vulkanDrivers}"
"--enable-texture-float"
(enableFeature stdenv.isLinux "dri3")
(enableFeature stdenv.isLinux "nine") # Direct3D in Wine
(enableFeature stdenv.isLinux "libglvnd")
"--enable-dri"
"--enable-driglx-direct"
"--enable-gles1"
"--enable-gles2"
"--enable-glx"
# https://bugs.freedesktop.org/show_bug.cgi?id=35268
(enableFeature (!stdenv.hostPlatform.isMusl) "glx-tls")
# used by wine
(enableFeature (elem "swrast" galliumDrivers) "gallium-osmesa")
"--enable-llvm"
(enableFeature stdenv.isLinux "egl")
(enableFeature stdenv.isLinux "xa") # used in vmware driver
(enableFeature stdenv.isLinux "gbm")
"--enable-xvmc"
"--enable-vdpau"
"--enable-shared-glapi"
"--enable-llvm-shared-libs"
(enableFeature stdenv.isLinux "omx-bellagio")
(enableFeature stdenv.isLinux "va")
"--disable-opencl"
];
nativeBuildInputs = [ # Don't build in debug mode
autoreconfHook intltool pkgconfig file # https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/meson.html#L327
python2 python2Packages.Mako "-Db_ndebug=true"
];
propagatedBuildInputs = with xorg; [ "-Ddisk-cache-key=${placeholder "drivers"}"
libXdamage libXxf86vm "-Ddri-search-path=${libglvnd.driverLink}/lib/dri"
] ++ optional stdenv.isLinux libdrm
++ optionals stdenv.isDarwin [ OpenGL Xplugin ]; "-Dplatforms=${concatStringsSep "," eglPlatforms}"
"-Ddri-drivers=${concatStringsSep "," driDrivers}"
"-Dgallium-drivers=${concatStringsSep "," galliumDrivers}"
"-Dvulkan-drivers=${concatStringsSep "," vulkanDrivers}"
"-Ddri-drivers-path=${placeholder "drivers"}/lib/dri"
"-Dvdpau-libs-path=${placeholder "drivers"}/lib/vdpau"
"-Dxvmc-libs-path=${placeholder "drivers"}/lib"
"-Domx-libs-path=${placeholder "drivers"}/lib/bellagio"
"-Dva-libs-path=${placeholder "drivers"}/lib/dri"
"-Dd3d-drivers-path=${placeholder "drivers"}/lib/d3d"
"-Dgallium-vdpau=true"
"-Dgallium-xvmc=true"
"-Dgallium-opencl=disabled"
"-Dshared-glapi=true"
"-Dgles1=true"
"-Dgles2=true"
"-Dglx=dri"
"-Dglvnd=true"
"-Dllvm=true"
"-Dshared-llvm=true"
"-Dglx-direct=true"
] ++ optional (elem "swrast" galliumDrivers) "-Dosmesa=gallium" # used by wine
++ optionals (stdenv.isLinux) [
"-Ddri3=true"
"-Dgallium-omx=bellagio"
"-Dgallium-va=true"
"-Dgallium-xa=true" # used in vmware driver
"-Dgallium-nine=true" # Direct3D in Wine
"-Dgbm=true"
"-Degl=true"
];
buildInputs = with xorg; [ buildInputs = with xorg; [
expat llvmPackages.llvm libglvnd xorgproto expat llvmPackages.llvm libglvnd xorgproto
@ -151,50 +167,38 @@ stdenv.mkDerivation rec {
++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ] ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ]
++ lib.optional withValgrind valgrind-light; ++ lib.optional withValgrind valgrind-light;
nativeBuildInputs = [
pkgconfig meson ninja
intltool bison flex file
python3Packages.python python3Packages.Mako
];
propagatedBuildInputs = with xorg; [
libXdamage libXxf86vm
] ++ optional stdenv.isLinux libdrm
++ optionals stdenv.isDarwin [ OpenGL Xplugin ];
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = false; doCheck = false;
installFlags = [
"sysconfdir=\${drivers}/etc"
"localstatedir=\${TMPDIR}"
"vendorjsondir=\${out}/share/glvnd/egl_vendor.d"
];
# TODO: probably not all .la files are completely fixed, but it shouldn't matter;
postInstall = '' postInstall = ''
# Some installs don't have any drivers so this directory is never created. # Some installs don't have any drivers so this directory is never created.
mkdir -p $drivers mkdir -p $drivers
'' + optionalString (galliumDrivers != []) '' '' + optionalString (galliumDrivers != []) ''
mkdir -p $drivers/lib
# move gallium-related stuff to $drivers, so $out doesn't depend on LLVM # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM
mv -t "$drivers/lib/" \ mv -t $drivers/lib \
$out/lib/libXvMC* \
$out/lib/d3d \
$out/lib/vdpau \
$out/lib/bellagio \
$out/lib/libxatracker* \ $out/lib/libxatracker* \
$out/lib/libvulkan_* $out/lib/libvulkan_*
# Move other drivers to a separate output # Move other drivers to a separate output
mv $out/lib/dri/* $drivers/lib/dri # */
rmdir "$out/lib/dri"
mv $out/lib/lib*_mesa* $drivers/lib mv $out/lib/lib*_mesa* $drivers/lib
# move libOSMesa to $osmesa, as it's relatively big # move libOSMesa to $osmesa, as it's relatively big
mkdir -p {$osmesa,$drivers}/lib/ mkdir -p $osmesa/lib
mv -t $osmesa/lib/ $out/lib/libOSMesa* mv -t $osmesa/lib/ $out/lib/libOSMesa*
# now fix references in .la files
sed "/^libdir=/s,$out,$osmesa," -i $osmesa/lib/libOSMesa*.la
# set the default search path for DRI drivers; used e.g. by X server
substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${libglvnd.driverLink}"
# remove GLES libraries; they are provided by libglvnd
rm $out/lib/lib{GLESv1_CM,GLESv2}.*
# remove pkgconfig files for GL/GLES/EGL; they are provided by libGL.
rm $dev/lib/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc
# move vendor files # move vendor files
mv $out/share/ $drivers/ mv $out/share/ $drivers/
@ -202,11 +206,6 @@ stdenv.mkDerivation rec {
for js in $drivers/share/glvnd/egl_vendor.d/*.json; do for js in $drivers/share/glvnd/egl_vendor.d/*.json; do
substituteInPlace "$js" --replace '"libEGL_' '"'"$drivers/lib/libEGL_" substituteInPlace "$js" --replace '"libEGL_' '"'"$drivers/lib/libEGL_"
done done
# Update search path used by pkg-config
for pc in $dev/lib/pkgconfig/{d3d,dri,xatracker}.pc; do
substituteInPlace "$pc" --replace $out $drivers
done
'' + optionalString (vulkanDrivers != []) '' '' + optionalString (vulkanDrivers != []) ''
# Update search path used by Vulkan (it's pointing to $out but # Update search path used by Vulkan (it's pointing to $out but
# drivers are in $drivers) # drivers are in $drivers)
@ -219,6 +218,17 @@ stdenv.mkDerivation rec {
# check $out doesn't depend on llvm: builder failures are ignored # check $out doesn't depend on llvm: builder failures are ignored
# for some reason grep -qv '${llvmPackages.llvm}' -R "$out"; # for some reason grep -qv '${llvmPackages.llvm}' -R "$out";
postFixup = optionalString (galliumDrivers != []) '' postFixup = optionalString (galliumDrivers != []) ''
# set the default search path for DRI drivers; used e.g. by X server
substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace "$drivers" "${libglvnd.driverLink}"
# remove pkgconfig files for GL/EGL; they are provided by libGL.
rm $dev/lib/pkgconfig/{gl,egl}.pc
# Update search path used by pkg-config
for pc in $dev/lib/pkgconfig/{d3d,dri,xatracker}.pc; do
substituteInPlace "$pc" --replace $out $drivers
done
# add RPATH so the drivers can find the moved libgallium and libdricore9 # add RPATH so the drivers can find the moved libgallium and libdricore9
# moved here to avoid problems with stripping patchelfed files # moved here to avoid problems with stripping patchelfed files
for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do
@ -241,4 +251,3 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ vcunat ]; maintainers = with maintainers; [ vcunat ];
}; };
} }

View File

@ -6,29 +6,30 @@ Subject: [PATCH] disk_cache: include dri driver path in cache key
This fixes invalid cache hits on NixOS where all shared library This fixes invalid cache hits on NixOS where all shared library
timestamps in /nix/store are zero. timestamps in /nix/store are zero.
--- ---
src/util/Makefile.am | 3 +++ meson_options.txt | 6 ++++++
src/util/disk_cache.c | 3 +++ src/util/disk_cache.c | 3 +++
2 files changed, 6 insertions(+) src/util/meson.build | 7 ++++++-
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/util/Makefile.am b/src/util/Makefile.am diff --git a/meson_options.txt b/meson_options.txt
index bafb57439a..a22e2e41eb 100644 index a723b5406cf..65a8954291f 100644
--- a/src/util/Makefile.am --- a/meson_options.txt
+++ b/src/util/Makefile.am +++ b/meson_options.txt
@@ -35,6 +35,9 @@ noinst_LTLIBRARIES = \ @@ -330,3 +330,9 @@ option(
libmesautil.la \ value : true,
libxmlconfig.la description : 'Enable direct rendering in GLX and EGL for DRI',
)
+AM_CFLAGS = \ +option(
+ -DDISK_CACHE_KEY=\"$(drivers)\" + 'disk-cache-key',
+ + type : 'string',
AM_CPPFLAGS = \ + value : '',
$(PTHREAD_CFLAGS) \ + description : 'Mesa cache key.'
-I$(top_srcdir)/include +)
diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c
index 368ec41792..071220b2ba 100644 index 0aa2646a9bb..bd784d38e21 100644
--- a/src/util/disk_cache.c --- a/src/util/disk_cache.c
+++ b/src/util/disk_cache.c +++ b/src/util/disk_cache.c
@@ -388,8 +388,10 @@ disk_cache_create(const char *gpu_name, const char *driver_id, @@ -389,8 +389,10 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
/* Create driver id keys */ /* Create driver id keys */
size_t id_size = strlen(driver_id) + 1; size_t id_size = strlen(driver_id) + 1;
@ -39,7 +40,7 @@ index 368ec41792..071220b2ba 100644
cache->driver_keys_blob_size += gpu_name_size; cache->driver_keys_blob_size += gpu_name_size;
/* We sometimes store entire structs that contains a pointers in the cache, /* We sometimes store entire structs that contains a pointers in the cache,
@@ -410,6 +412,7 @@ disk_cache_create(const char *gpu_name, const char *driver_id, @@ -411,6 +413,7 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
uint8_t *drv_key_blob = cache->driver_keys_blob; uint8_t *drv_key_blob = cache->driver_keys_blob;
DRV_KEY_CPY(drv_key_blob, &cache_version, cv_size) DRV_KEY_CPY(drv_key_blob, &cache_version, cv_size)
DRV_KEY_CPY(drv_key_blob, driver_id, id_size) DRV_KEY_CPY(drv_key_blob, driver_id, id_size)
@ -47,6 +48,24 @@ index 368ec41792..071220b2ba 100644
DRV_KEY_CPY(drv_key_blob, gpu_name, gpu_name_size) DRV_KEY_CPY(drv_key_blob, gpu_name, gpu_name_size)
DRV_KEY_CPY(drv_key_blob, &ptr_size, ptr_size_size) DRV_KEY_CPY(drv_key_blob, &ptr_size, ptr_size_size)
DRV_KEY_CPY(drv_key_blob, &driver_flags, driver_flags_size) DRV_KEY_CPY(drv_key_blob, &driver_flags, driver_flags_size)
diff --git a/src/util/meson.build b/src/util/meson.build
index 397c2228129..77013563e5d 100644
--- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -120,7 +120,12 @@ libmesa_util = static_library(
[files_mesa_util, format_srgb],
include_directories : inc_common,
dependencies : [dep_zlib, dep_clock, dep_thread, dep_atomic, dep_m],
- c_args : [c_msvc_compat_args, c_vis_args],
+ c_args : [
+ c_msvc_compat_args, c_vis_args,
+ '-DDISK_CACHE_KEY="@0@"'.format(
+ get_option('disk-cache-key')
+ ),
+ ],
build_by_default : false
)
-- --
2.19.1 2.19.2

View File

@ -0,0 +1,12 @@
diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build
index 317ad8dab4a..5567308caf0 100644
--- a/src/gallium/targets/opencl/meson.build
+++ b/src/gallium/targets/opencl/meson.build
@@ -68,6 +68,6 @@ if with_opencl_icd
input : 'mesa.icd.in',
output : 'mesa.icd',
install : true,
- install_dir : join_paths(get_option('sysconfdir'), 'OpenCL', 'vendors'),
+ install_dir : join_paths(get_option('prefix'), 'etc', 'OpenCL', 'vendors'),
)
endif

View File

@ -1,112 +0,0 @@
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/dri/Makefile.am mesa-12.0.3/src/gallium/targets/dri/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/dri/Makefile.am 2016-09-08 18:57:48.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/dri/Makefile.am 2016-09-22 14:42:19.173575498 +0200
@@ -134,14 +134,13 @@
done;
endif
-# hardlink each megadriver instance, but don't actually have
-# gallium_dri.so in the set of final installed files.
+# symlink each megadriver instance.
install-data-hook:
for i in $(TARGET_DRIVERS); do \
- ln -f $(DESTDIR)$(dridir)/gallium_dri.so \
+ ln -srf $(DESTDIR)$(dridir)/gallium_dri.so \
$(DESTDIR)$(dridir)/$${i}_dri.so; \
done; \
- $(RM) $(DESTDIR)$(dridir)/gallium_dri.*; \
+ $(RM) $(DESTDIR)$(dridir)/gallium_dri.la \
$(RM) -d $(DESTDIR)$(dridir) &>/dev/null || true
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/va/Makefile.am mesa-12.0.3/src/gallium/targets/va/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/va/Makefile.am 2016-09-08 18:57:48.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/va/Makefile.am 2016-09-22 14:45:39.635963339 +0200
@@ -71,10 +71,10 @@
# gallium_drv_video.so in the set of final installed files.
install-data-hook:
for i in $(TARGET_DRIVERS); do \
- ln -f $(DESTDIR)$(vadir)/gallium_drv_video.so \
+ ln -srf $(DESTDIR)$(vadir)/gallium_drv_video.so \
$(DESTDIR)$(vadir)/$${i}_drv_video.so; \
done; \
- $(RM) $(DESTDIR)$(vadir)/gallium_drv_video.*
+ $(RM) $(DESTDIR)$(vadir)/gallium_drv_video.la
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/vdpau/Makefile.am mesa-12.0.3/src/gallium/targets/vdpau/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/vdpau/Makefile.am 2016-05-24 21:19:37.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/vdpau/Makefile.am 2016-09-22 14:42:19.173575498 +0200
@@ -103,15 +103,14 @@
done;
endif
-# hardlink each megadriver instance, but don't actually have
-# libvdpau_gallium.so in the set of final installed files.
+# symlink each megadriver instance.
install-data-hook:
$(AM_V_GEN)dest_dir=$(DESTDIR)/$(vdpaudir); \
for i in $(TARGET_DRIVERS); do \
j=libvdpau_gallium.$(LIB_EXT); \
k=libvdpau_$${i}.$(LIB_EXT); \
l=$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0; \
- ln -f $${dest_dir}/$${j}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0 \
+ ln -srf $${dest_dir}/$${j}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0 \
$${dest_dir}/$${l}; \
ln -sf $${l} \
$${dest_dir}/$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR); \
@@ -120,7 +119,7 @@
ln -sf $${l} \
$${dest_dir}/$${k}; \
done; \
- $(RM) $${dest_dir}/libvdpau_gallium.*; \
+ $(RM) $${dest_dir}/libvdpau_gallium.la \
$(RM) -d $${dest_dir} &>/dev/null || true
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/xvmc/Makefile.am mesa-12.0.3/src/gallium/targets/xvmc/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/xvmc/Makefile.am 2016-05-24 21:19:37.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/xvmc/Makefile.am 2016-09-22 14:54:22.291014543 +0200
@@ -73,7 +73,7 @@
j=libXvMCgallium.$(LIB_EXT); \
k=libXvMC$${i}.$(LIB_EXT); \
l=$${k}.$(XVMC_MAJOR).$(XVMC_MINOR).0; \
- ln -f $${dest_dir}/$${j}.$(XVMC_MAJOR).$(XVMC_MINOR).0 \
+ ln -srf $${dest_dir}/$${j}.$(XVMC_MAJOR).$(XVMC_MINOR).0 \
$${dest_dir}/$${l}; \
ln -sf $${l} \
$${dest_dir}/$${k}.$(XVMC_MAJOR).$(XVMC_MINOR); \
@@ -82,7 +82,7 @@
ln -sf $${l} \
$${dest_dir}/$${k}; \
done; \
- $(RM) $${dest_dir}/libXvMCgallium.*; \
+ $(RM) $${dest_dir}/libXvMCgallium.la \
$(RM) -d $${dest_dir} &>/dev/null || true
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-12.0.3-orig/src/mesa/drivers/dri/Makefile.am mesa-12.0.3/src/mesa/drivers/dri/Makefile.am
--- mesa-12.0.3-orig/src/mesa/drivers/dri/Makefile.am 2016-09-08 18:57:48.000000000 +0200
+++ mesa-12.0.3/src/mesa/drivers/dri/Makefile.am 2016-09-22 14:42:19.173575498 +0200
@@ -94,14 +94,13 @@
done;
endif
-# hardlink each megadriver instance, but don't actually have
-# mesa_dri_drivers.so in the set of final installed files.
+# symink each megadriver instance.
install-data-hook:
for i in $(MEGADRIVERS); do \
- ln -f $(DESTDIR)$(dridir)/mesa_dri_drivers.so \
+ ln -srf $(DESTDIR)$(dridir)/mesa_dri_drivers.so \
$(DESTDIR)$(dridir)/$$i; \
done;
- $(RM) $(DESTDIR)$(dridir)/mesa_dri_drivers.*
+ $(RM) $(DESTDIR)$(dridir)/mesa_dri_drivers.la
uninstall-hook:
for i in $(MEGADRIVERS); do \