From 8fe552070945561a0cd4dc24d3fcb22ed377f1a0 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Mon, 19 Apr 2021 22:25:51 -0400 Subject: meson: make our symlinking script more portable We do not need the --relative case as it is dead code (we only ever link a filename without directory components). For the rest, GNU-specific ln -T does two things: - if the link name is an existing directory, ln fails instead of creating a surprising link inside the directory - if the link name is a symlink to a directory, ln treats it as a file, and due to -f, unlinks it The second case can be portably solved by ln -n, and both cases can be solved by doing what the original autotools Makefile did: rm -f && ln -s If the file exists, it will be removed. If it cannot be removed, it must be an ordinary directory, and the script aborts with an error. Signed-off-by: Eli Schwartz Signed-off-by: Allan McRae --- build-aux/meson-make-symlink.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/build-aux/meson-make-symlink.sh b/build-aux/meson-make-symlink.sh index 501cd43d..3e3aa7ba 100644 --- a/build-aux/meson-make-symlink.sh +++ b/build-aux/meson-make-symlink.sh @@ -5,8 +5,6 @@ set -eu # and we need to create the target directory... mkdir -vp "$(dirname "${DESTDIR:-}$2")" -if [ "$(dirname $1)" = . ]; then - ln -vfs -T "$1" "${DESTDIR:-}$2" -else - ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2" -fi + +rm -f "${DESTDIR:-}$2" +ln -vs "$1" "${DESTDIR:-}$2" -- cgit v1.2.3-54-g00ecf