summaryrefslogtreecommitdiff
path: root/mk/fix_install_names.sh
diff options
context:
space:
mode:
authorwolfgang <unknown>2005-01-23 18:18:05 +0000
committerwolfgang <unknown>2005-01-23 18:18:05 +0000
commit3463d1d3725bd4ec70acb2656ff20571b9b59294 (patch)
treec28c5dd99915d0aa9bae7f9050509d3356a51613 /mk/fix_install_names.sh
parentfa8246c79fa10ff6785888b95acdf1b3cfb59d9b (diff)
downloadhaskell-3463d1d3725bd4ec70acb2656ff20571b9b59294.tar.gz
[project @ 2005-01-23 18:18:05 by wolfgang]
Darwin / Mac OS X: For builds with dynamic libraries, fix up dynamic library paths ("install names") for binaries. Otherwise, a dynamically-linked stage2 ghc would contain the path names of the build directories.
Diffstat (limited to 'mk/fix_install_names.sh')
-rw-r--r--mk/fix_install_names.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/mk/fix_install_names.sh b/mk/fix_install_names.sh
new file mode 100644
index 0000000000..7e51f23390
--- /dev/null
+++ b/mk/fix_install_names.sh
@@ -0,0 +1,21 @@
+# Darwin / Mac OS X only
+# sh fix_install_names.sh directory binary
+#
+# Changes 'binary' to assume that all libHS*_dyn.dylib libraries
+# are to be found in 'directory'.
+
+prefix=$1
+file=$2
+
+if `test x${prefix%/} != x"" `
+then
+ prefix=${prefix%/}/
+fi
+
+for i in `otool -L $file \
+ | grep 'libHS.*_dyn.dylib' \
+ | sed 's/.\(.*libHS.*_dyn.dylib\).*/\1/'`
+do
+ install_name_tool -change $i $prefix`basename $i` $file
+done
+