diff options
Diffstat (limited to 'lang/sml-nj-devel/scripts/get-cm')
-rw-r--r-- | lang/sml-nj-devel/scripts/get-cm | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/lang/sml-nj-devel/scripts/get-cm b/lang/sml-nj-devel/scripts/get-cm deleted file mode 100644 index 88992a05219f..000000000000 --- a/lang/sml-nj-devel/scripts/get-cm +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -# -# usage: get-cm work_dir -# -# Find all .cm Group and Library descriptions that are referenced -# from the top level alias files in $SML_BASE/lib/ - -# temp file -tmpfile="${TMP:-/tmp}/chomp$$" - -# attempt to change directory to work dir -cd $1 || exit 1 -work_dir=`pwd` # get the canonical name for the current directory - -trap "rm -f $tmpfile" 0 1 2 3 15 - -# hack to remove SML comments '(* ... *)' - -strip_comments() -{ - # caveat: the following assumes gcc is present ... - gcc -x c -E -P -ansi -DOPSYS_UNIX $1 | awk '{ - line = $0 - if (match(line, "\\(\\*")) { - while (match($0, "\\(\\*")) { - if (RSTART > 1) { - print substr($0, 0, RSTART-1); - } - sub("^.*\\(\\*", ""); - while (!match($0, "\\*\\)")) { - getline - } - $0 = substr($0, RSTART+RLENGTH); - } - } - print - }' -} - -# return canonical name for a path with embedded ..'s - -canonical() -{ - echo $(cd `dirname $1` && pwd)/`basename $1` -} - -# initial list of CM description files -global_cm_list="$(cat ./lib/*.cm | awk '{ print $2 }')" - -set -- $global_cm_list - -touch $tmpfile - -# process the global list -while [ $# -ge 1 ]; do - - cm_file="$1"; shift - global_cm_list="$*" - - echo $cm_file >> $tmpfile - - cm_dir=`dirname $cm_file` - cm_new=$(strip_comments $cm_file | grep '\.cm' | \ - awk '{ print $1 }') - - # append new CM files to current global list - for i in $cm_new; do - new_cm_file=$(canonical $cm_dir/$i) - if [ -r $new_cm_file ]; then - if ! grep "^$new_cm_file" $tmpfile > /dev/null; then - global_cm_list="$new_cm_file $global_cm_list" - echo $new_cm_file >> $tmpfile - fi - fi - done - - set -- $global_cm_list -done - -# output to stdout -sort -u < $tmpfile | sed -e "s,^$work_dir/,," |