summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/symlink-tree
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/symlink-tree')
-rwxr-xr-xcontrib/gcc/symlink-tree53
1 files changed, 53 insertions, 0 deletions
diff --git a/contrib/gcc/symlink-tree b/contrib/gcc/symlink-tree
new file mode 100755
index 0000000..5b18cab
--- /dev/null
+++ b/contrib/gcc/symlink-tree
@@ -0,0 +1,53 @@
+#!/bin/sh
+# Create a symlink tree.
+#
+# Syntax: symlink-tree srcdir "ignore1 ignore2 ..."
+#
+# where srcdir is the directory to create a symlink tree to,
+# and "ignoreN" is a list of files/directories to ignore.
+
+prog=$0
+srcdir=$1
+ignore="$2"
+
+if test $# -lt 1; then
+ echo "symlink-tree error: Usage: symlink-tree srcdir \"ignore1 ignore2 ...\""
+ exit 1
+fi
+
+ignore_additional=". .. CVS"
+
+# If we were invoked with a relative path name, adjust ${prog} to work
+# in subdirs.
+case ${prog} in
+/* | [A-Za-z]:[\\/]*) ;;
+*) prog=../${prog} ;;
+esac
+
+# Set newsrcdir to something subdirectories can use.
+case ${srcdir} in
+/* | [A-Za-z]:[\\/]*) newsrcdir=${srcdir} ;;
+*) newsrcdir=../${srcdir} ;;
+esac
+
+for f in `ls -a ${srcdir}`; do
+ if [ -d ${srcdir}/$f ]; then
+ found=
+ for i in ${ignore} ${ignore_additional}; do
+ if [ "$f" = "$i" ]; then
+ found=yes
+ fi
+ done
+ if [ -z "${found}" ]; then
+ echo "$f ..working in"
+ if [ -d $f ]; then true; else mkdir $f; fi
+ (cd $f; ${prog} ${newsrcdir}/$f "${ignore}")
+ fi
+ else
+ echo "$f ..linked"
+ rm -f $f
+ ln -s ${srcdir}/$f .
+ fi
+done
+
+exit 0
OpenPOWER on IntegriCloud