change os x installer to allow multiple installed versions
[ghc-hetmet.git] / distrib / MacOS / installer-scripts / create-links
index 4453a9d..55a356c 100644 (file)
@@ -5,27 +5,34 @@
 # * Add link to the man page into the standard man/man1/ directory
 # * Add link to the HTML docs into the standard share/doc/ directory
 
+# The binary links are careful not to use Current, because that will be
+# rebound to the current version on every reinstall.
+
+# It probably won't ever happen, but this should work correctly if the install
+# destination has a space on it.
+
+# See apple "Install Operations" documentation for how this script is called.
+
 INSTALL_DEST=$2
 INSTALL_BASE=$3
 
-if [ ${INSTALL_BASE} = / ]; then
+if [ "$INSTALL_BASE" = / ]; then
   INSTALL_BASE=/usr
 fi
 
-INSTALL_BIN=${INSTALL_BASE}/bin
-mkdir -p ${INSTALL_BIN}
-if [ -d ${INSTALL_DEST}/GHC.framework/Versions/Current/usr/bin ]; then
-  ln -sf ${INSTALL_DEST}/GHC.framework/Versions/Current/usr/bin/*\
-        ${INSTALL_BIN}/
+ProjectVersionInt=$(readlink "$INSTALL_DEST/GHC.framework/Versions/Current")
+GHC_BASE=$INSTALL_DEST/GHC.framework/Versions/$ProjectVersionInt
+
+INSTALL_BIN=$INSTALL_BASE/bin
+mkdir -p "$INSTALL_BIN"
+if [ -d "$GHC_BASE/usr/bin" ]; then
+  ln -sf "$GHC_BASE"/usr/bin/* "$INSTALL_BIN/"
 fi
 
-INSTALL_MAN1=${INSTALL_BASE}/share/man/man1
-INSTALL_HTML=${INSTALL_BASE}/share/doc
-mkdir -p ${INSTALL_MAN1}
-if [ -d ${INSTALL_DEST}/GHC.framework/Versions/Current/usr/share/man/man1 ]; 
-then
-  ln -sf ${INSTALL_DEST}/GHC.framework/Versions/Current/usr/share/man/man1/*\
-        ${INSTALL_MAN1}/
-  ln -sf ${INSTALL_DEST}/GHC.framework/Versions/Current/usr/share/doc/ghc\
-        ${INSTALL_HTML}/
+INSTALL_MAN1="$INSTALL_BASE"/share/man/man1
+INSTALL_HTML="$INSTALL_BASE"/share/doc
+mkdir -p "$INSTALL_MAN1"
+if [ -d "$GHC_BASE"/usr/share/man/man1 ]; then
+  ln -sf "$GHC_BASE"/usr/share/man/man1/* "$INSTALL_MAN1/"
+  ln -sf "$GHC_BASE"/usr/share/doc/ghc.$ProjectVersionInt "$INSTALL_HTML/"
 fi