(install): Use full pathnames for linker script. This is to work
[kopensolaris-gnu/glibc.git] / rellns-sh
index f761b6b..890f4ee 100755 (executable)
--- a/rellns-sh
+++ b/rellns-sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 # rellns-sh - Simplified ln program to generate relative symbolic link.
-# Copyright (C) 1996 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
 # Written by Ulrich Drepper <drepper@cygnus.com>, October 1996
 #
 # This program is free software; you can redistribute it and/or modify
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 if test $# -ne 2; then
-  echo "Usage: rellns SOURCE DEST"
+  echo "Usage: rellns SOURCE DEST" >&2
   exit 1
 fi
 
-case $1 in
-/*)
-  # Make both paths absolute.
-  to=`echo $1 | sed 's%^/%%'`
-
-  if test -d $2; then
-    fromname=.
-    from=`echo $2 | sed 's%/$%%' | sed 's%^/%%'`
+# Make both paths absolute.
+if test -d $1; then
+  to=`cd $1 && /bin/pwd`
+else
+  temp=`echo $1 | sed 's%/*[^/]*$%%'`
+  if test -z "$temp"; then
+    to=`/bin/pwd`
   else
-    fromname=`echo $2 | sed 's%.*/\([^/]*\)$%\1%'`
-    from=`echo $2 | sed "s%/*$fromname$%%" | sed 's%^/%%'`
+    to=`cd $temp && /bin/pwd`
   fi
+  to="$to/`echo $1 | sed 's%.*/\([^/][^/]*\)$%\1%'`"
+fi
+to=`echo $to | sed 's%^/%%'`
 
-  case $from in
-  /*) ;;
-  ?*) from=`cd $from && pwd | sed 's%^/%%'` ;;
-  *) from=`pwd | sed 's%^/%%'` ;;
-  esac
+if test -d $2; then
+  from=`echo $2 | sed 's%/*$%%'`
+else
+  from=`echo $2 | sed 's%/*[^/]*$%%'`
+fi
 
-  while test -n "$to" && test -n "$from"; do
-    preto=`echo $to | sed 's%^\([^/]*\)/.*%\1%'`
-    prefrom=`echo $from | sed 's%^\([^/]*\)/.*%\1%'`
+if test -z "$from"; then
+  from=`/bin/pwd | sed 's%^/%%'`
+else
+  from=`cd $from && /bin/pwd | sed 's%^/%%'`
+fi
 
-    test "$preto" != "$prefrom" && break
+while test -n "$to" && test -n "$from"; do
+  preto=`echo $to | sed 's%^\([^/]*\)/.*%\1%'`
+  prefrom=`echo $from | sed 's%^\([^/]*\)/.*%\1%'`
 
-    to=`echo $to | sed 's%^[^/]*/\(.*\)$%\1%'`
-    from=`echo $from | sed 's%^[^/]*/\(.*\)$%\1%'`
-  done
+  test "$preto" != "$prefrom" && break
 
-  while test -n "$from"; do
-    rfrom="../$rfrom"
-    from=`echo $from | sed 's%^[^/]*/*%%'`
-  done
+  to=`echo $to | sed 's%^[^/]*/*\(.*\)$%\1%'`
+  from=`echo $from | sed 's%^[^/]*/*\(.*\)$%\1%'`
+done
 
-  ln -s $rfrom$to $2
-  ;;
-*)
-  # Nothing to do, the path is already relative.
-  ln -s $1 $2
-  ;;
-esac
+while test -n "$from"; do
+  rfrom="../$rfrom"
+  from=`echo $from | sed 's%^[^/]*/*%%'`
+done
 
-exit 0
+ln -s $rfrom$to $2