summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2020-06-03 11:03:35 +0100
committerWim Taymans <wim.taymans@gmail.com>2020-06-05 13:40:50 +0000
commite493be38440b6858b188a4467b6578aba87ffdfe (patch)
treefe535f724e4beaaacd533dd81dea3916c21be595 /meson.build
parent96eb6e4df8718e7085589b8521603ed42ae8bf18 (diff)
scripts: Use special ${LIB} token for architecture-independence
On GNU/Linux systems, the literal string '${LIB}' in dynamic linker paths expands to "lib", a biarch libQUAL directory such as "lib64", or a Debian-style multiarch directory such as "lib/x86_64-linux-gnu". If we're installing libraries to such a directory, and we have both word-sizes' compatibility libraries available, then pw-pulse can use LD_LIBRARY_PATH='/usr/${LIB}/pipewire-0.3/pulse' to make both i386 and x86_64 programs load the correct version. Signed-off-by: Simon McVittie <smcv@debian.org>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build15
1 files changed, 15 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index d758f018..1301a3f8 100644
--- a/meson.build
+++ b/meson.build
@@ -35,6 +35,21 @@ pipewire_sysconfdir = join_paths(prefix, get_option('sysconfdir'))
pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire')
modules_install_dir = join_paths(pipewire_libdir, pipewire_name)
+
+if host_machine.system() == 'linux'
+ # glibc ld.so interprets ${LIB} in a library loading path with an
+ # appropriate value for the current architecture, typically something
+ # like lib, lib64 or lib/x86_64-linux-gnu.
+ # This allows the same pw-pulse script to work for both 32- and 64-bit
+ # applications on biarch/multiarch distributions, by setting something
+ # like LD_LIBRARY_PATH='/usr/${LIB}/pipewire-0.3/pulse'.
+ # Note that ${LIB} is a special token expanded by the runtime linker,
+ # not an environment variable, and must be passed through literally.
+ modules_install_dir_dlopen = join_paths(prefix, '${LIB}', pipewire_name)
+else
+ modules_install_dir_dlopen = modules_install_dir
+endif
+
spa_plugindir = join_paths(pipewire_libdir, spa_name)
pipewire_headers_dir = join_paths(pipewire_name, 'pipewire')