As noted by Arnout in [1], the logic in mesa3d-headers.mk generates a
bogus dri.pc file, which looks like this:
prefix=/usr
exec_prefix=/usr
libdir=/lib
includedir=/include
dridriverdir=/dri
Indeed, the ${...} are expanded as shell variables when the sed
command is executed, while the intention is that those ${...} should
go in the .pc file. By escaping those using $${...}, we get the
expected .pc file:
prefix=/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib
includedir=${prefix}/include
dridriverdir=${libdir}/dri
This was detected by the not yet committed check-package improvement
from Ricardo that detects bogus ${...} usage to reference make
variables.
[1] http://lists.busybox.net/pipermail/buildroot/2018-July/225402.html
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
# contains -i.
define MESA3D_HEADERS_BUILD_DRI_PC
sed -e 's:@\(exec_\)\?prefix@:/usr:' \
- -e 's:@libdir@:${exec_prefix}/lib:' \
- -e 's:@includedir@:${prefix}/include:' \
- -e 's:@DRI_DRIVER_INSTALL_DIR@:${libdir}/dri:' \
+ -e 's:@libdir@:$${exec_prefix}/lib:' \
+ -e 's:@includedir@:$${prefix}/include:' \
+ -e 's:@DRI_DRIVER_INSTALL_DIR@:$${libdir}/dri:' \
-e 's:@VERSION@:$(MESA3D_HEADERS_VERSION):' \
-e 's:@DRI_PC_REQ_PRIV@::' \
$(@D)/src/mesa/drivers/dri/dri.pc.in \