summaryrefslogtreecommitdiff
path: root/aux/slibtool.sh
diff options
context:
space:
mode:
Diffstat (limited to 'aux/slibtool.sh')
-rwxr-xr-xaux/slibtool.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/aux/slibtool.sh b/aux/slibtool.sh
new file mode 100755
index 0000000..0bde87d
--- /dev/null
+++ b/aux/slibtool.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+#####################################################################
+## slibtool: a strong libtool implementation, written in C ##
+## Copyright (C) 2016--2024 SysDeer Technologies, LLC ##
+## Released under the Standard MIT License; see COPYING.SLIBTOOL. ##
+#####################################################################
+
+#####################################################################
+## slibtool.sh: a backward compatible slibtool wrapper script ##
+## ---------------------------------------------------------- ##
+## This script only exists to satisfy build-time requirements in ##
+## projects that directly invoke the generated libtool script at ##
+## configure time (bad practice to beging with, should never be ##
+## necessary in the first place). ##
+## ##
+## By default, slibtool.sh is _NOT_ copied to a project's build ##
+## directory. If found by configure, however (either as a symlink ##
+## to the system installed slibtool.sh or as a physical copy of ##
+## the above, configure shall create ``libtool'' as a symlink to ##
+## this script. ##
+#####################################################################
+
+set -eu
+
+mb_escaped_arg=
+mb_escaped_args=
+mb_escaped_space=
+
+for arg ; do
+ mb_escaped_arg=\'$(printf '%s\n' "$arg" | sed -e "s/'/'\\\\''/g")\'
+ mb_escaped_arg="$mb_escaped_space$mb_escaped_arg"
+ mb_escaped_args="$mb_escaped_args$mb_escaped_arg"
+ mb_escaped_space=' '
+done
+
+eval ${SLIBTOOL:-slibtool} "$mb_escaped_args"