#! /bin/sh
# Install modified versions of certain ANSI-incompatible
# native System V Release 4 system include files.
-# Copyright (C) 1994, 1996 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
# Contributed by Ron Guilmette (rfg@monkeys.com).
#
# This file is part of GNU CC.
echo 'Making directories:'
cd ${INPUT}
if $LINKS; then
- files=`ls -LR | sed -n s/:$//p`
+ files=`find . -follow -type d -print 2>/dev/null | sed '/^.$/d'`
else
files=`find . -type d -print | sed '/^.$/d'`
fi
# In case $dest is relative, get to $file's dir first.
cd ${INPUT}
cd `echo ./$file | sed -n 's&[^/]*$&&p'`
+ rwd=`pwd`
# Check that the target directory exists.
# Redirections changed to avoid bug in sh on Ultrix.
(cd $dest) > /dev/null 2>&1
x=`pwd`
# If link leads back into ${INPUT},
# make a similar link here.
- if expr $x : "${INPUT}/.*" > /dev/null; then
+ if expr "$dest" : '[^/][^/]*' >/dev/null && [ ! -h $dest ]; then
+ echo $file '->' $dest': Making link'
+ rm -fr ${LIB}/$file > /dev/null 2>&1
+ ln -s $dest ${LIB}/$file > /dev/null 2>&1
+ elif expr $x : "${INPUT}/.*" > /dev/null; then
# Y gets the actual target dir name, relative to ${INPUT}.
y=`echo $x | sed -n "s&${INPUT}/&&p"`
# DOTS is the relative path from ${LIB}/$file's dir back to ${LIB}.
echo $file '->' $dots$y ': Making link'
rm -fr ${LIB}/$file > /dev/null 2>&1
ln -s $dots$y ${LIB}/$file > /dev/null 2>&1
+ elif expr $x : "${rwd}/.*" > /dev/null; then
+ # Y gets the actual target dir name, relative to the directory where the link is.
+ y=`echo $x | sed -n "s&${rwd}/&&p"`
+ # DOTS is the relative path from ${LIB}/$file's dir back to ${LIB}.
+ dots=`echo "$file" |
+ sed -e 's@^./@@' -e 's@/./@/@g' -e 's@[^/][^/]*@..@g' -e 's@..$@@'`
+ echo $file '->' $dots$y ': Making link'
+ rm -fr ${LIB}/$file > /dev/null 2>&1
+ ln -s $dots$y ${LIB}/$file > /dev/null 2>&1
else
# If the link is to outside ${INPUT},
# treat this directory as if it actually contained the files.
for file in $files; do
dest=`ls -ld $file | sed -n 's/.*-> //p'`
if expr "$dest" : '[^/].*' > /dev/null; then
- target=${LIB}/`echo file | sed "s|[^/]*\$|$dest|"`
+ target=${LIB}/`echo $file | sed "s|[^/]*\$|$dest|"`
if [ -f $target ]; then
ln -s $dest ${LIB}/$file >/dev/null 2>&1
fi