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