diff --git a/vendor/Makefile.in b/vendor/Makefile.in index a61e15435..9a4b3fc03 100644 --- a/vendor/Makefile.in +++ b/vendor/Makefile.in @@ -64,6 +64,9 @@ destroot: $(DESTROOT_TARGETS) destroot-tcl: all-tcl @echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_TCL_SUBDIR@ @umask 0022; $(MAKE) -C @VENDOR_TCL_SUBDIR@ "DESTDIR=${DESTROOT}" @VENDOR_TCL_INSTALL@ + [ "@OS_PLATFORM@" != darwin ] || install_name_tool -change "$(MP_PREFIX)/lib/libtcl@TCL_VERSION@.dylib" \ + "@executable_path/../lib/libtcl@TCL_VERSION@.dylib" \ + "$(DESTROOT)$(MP_PREFIX)/bin/tclsh@TCL_VERSION@" destroot-tclx: all-tclx @echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_TCLX_SUBDIR@ diff --git a/vendor/tclsh.in b/vendor/tclsh.in index a88adfe47..61bddf5fe 100755 --- a/vendor/tclsh.in +++ b/vendor/tclsh.in @@ -4,19 +4,15 @@ DESTROOT="@abs_top_builddir@/vendor/vendor-destroot" MP_PREFIX="@prefix@/libexec/macports" LIB_PATH="${DESTROOT}${MP_PREFIX}/lib:${DESTROOT}${MP_PREFIX}/lib/@SQLITE3_LIBNAME@" -# For macOS -if [ -z "$DYLD_LIBRARY_PATH" ]; then - export DYLD_LIBRARY_PATH="$LIB_PATH" -else - export DYLD_LIBRARY_PATH="$LIB_PATH:$DYLD_LIBRARY_PATH" -fi - # For Linux and *BSD if [ -z "$LD_LIBRARY_PATH" ]; then export LD_LIBRARY_PATH="$LIB_PATH" else export LD_LIBRARY_PATH="$LIB_PATH:$LD_LIBRARY_PATH" fi +# DYLD_LIBRARY_PATH tends to get lost on recent macOS due to basic +# tools like /bin/sh being subject to SIP, so we have to edit the load +# commands instead (see vendor/Makefile.in). export TCLLIBPATH="${DESTROOT}${MP_PREFIX}/lib"