Home | History | Annotate | Download | only in binutils-2.27
      1 #!/bin/sh
      2 # Create a symlink tree.
      3 #
      4 # Copyright (C) 1995, 2000, 2003  Free Software Foundation, Inc.
      5 #
      6 # This file is free software; you can redistribute it and/or modify
      7 # it under the terms of the GNU General Public License as published by
      8 # the Free Software Foundation; either version 2 of the License, or
      9 # (at your option) any later version.
     10 #
     11 # This program is distributed in the hope that it will be useful,
     12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 # GNU General Public License for more details.
     15 #
     16 # You should have received a copy of the GNU General Public License
     17 # along with this program; if not, write to the Free Software
     18 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
     19 # Boston, MA 02110-1301, USA.
     20 #
     21 # As a special exception to the GNU General Public License, if you
     22 # distribute this file as part of a program that contains a
     23 # configuration script generated by Autoconf, you may include it under
     24 # the same distribution terms that you use for the rest of that program.
     25 #
     26 # Please report bugs to <gcc-bugs (at] gnu.org>
     27 # and send patches to <gcc-patches (at] gnu.org>.
     28 
     29 # Syntax: symlink-tree srcdir "ignore1 ignore2 ..."
     30 #
     31 # where srcdir is the directory to create a symlink tree to,
     32 # and "ignoreN" is a list of files/directories to ignore.
     33 
     34 prog=$0
     35 srcdir=$1
     36 ignore="$2"
     37 
     38 if test $# -lt 1; then
     39   echo "symlink-tree error:  Usage: symlink-tree srcdir \"ignore1 ignore2 ...\""
     40   exit 1
     41 fi
     42 
     43 ignore_additional=". .. CVS"
     44 
     45 # If we were invoked with a relative path name, adjust ${prog} to work
     46 # in subdirs.
     47 case ${prog} in
     48 /* | [A-Za-z]:[\\/]*) ;;
     49 *) prog=../${prog} ;;
     50 esac
     51 
     52 # Set newsrcdir to something subdirectories can use.
     53 case ${srcdir} in
     54 /* | [A-Za-z]:[\\/]*) newsrcdir=${srcdir} ;;
     55 *) newsrcdir=../${srcdir} ;;
     56 esac
     57 
     58 for f in `ls -a ${srcdir}`; do
     59   if [ -d ${srcdir}/$f ]; then
     60     found=
     61     for i in ${ignore} ${ignore_additional}; do
     62       if [ "$f" = "$i" ]; then
     63 	found=yes
     64       fi
     65     done
     66     if [ -z "${found}" ]; then
     67       echo "$f		..working in"
     68       if [ -d $f ]; then true; else mkdir $f; fi
     69       (cd $f; ${prog} ${newsrcdir}/$f "${ignore}")
     70     fi
     71   else
     72     echo "$f		..linked"
     73     rm -f $f
     74     ln -s ${srcdir}/$f .
     75   fi
     76 done
     77 
     78 exit 0
     79