######################################################################## # # # This software is part of the ast package # # Copyright (c) 1989-2011 AT&T Intellectual Property # # and is licensed under the # # Eclipse Public License, Version 1.0 # # by AT&T Intellectual Property # # # # A copy of the License is available at # # http://www.eclipse.org/org/documents/epl-v10.html # # (with md5 checksum b35adb5213ca9657e911e9befb180842) # # # # Information and Software Systems Research # # AT&T Research # # Florham Park NJ # # # # Glenn Fowler # # # ######################################################################## : convert MAM dependency info to dag input COMMAND=mamdag case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in 0123) ARGV0="-a $COMMAND" USAGE=$' [-? @(#)$Id: mamdag (AT&T Labs Research) 1998-04-01 $ ] '$USAGE_LICENSE$' [+NAME?mamdag - make abstract machine to dag dependency graph conversion filter] [+DESCRIPTION?\bmamdag\b reads MAM (Make Abstract Machine) target and prerequisite file descriptions from the standard input and writes a \bdag\b(1) description of the dependency graph on the standard output. Mamfiles are generated by the \b--mam\b option of \bnmake\b(1) and \bgmake\b(1).] [+?\bdag\b(1) is an obsolete predecessor to \bdot\b(1); new applications should use \bmamdot\b(1) and \bdot\b(1).] [+SEE ALSO?\bdag\b(1), \bdot\b(1), \bmamdot\b(1), \bgmake\b(1), \bnmake\b(1)] ' ;; *) ARGV0="" USAGE="" ;; esac usage() { OPTIND=0 getopts $ARGV0 "$USAGE" OPT '-?' exit 2 } while getopts $ARGV0 "$USAGE" OPT do case $OPT in *) usage ;; esac done integer level=0 line=0 list[0]=all print .GR 7.50 10.0 print draw nodes as Box ';' while read op arg arg2 argx do line=line+1 case $op in [0-9]*) op=$arg arg=$arg2 arg2=$arg3 arg3=$argx argx= ;; esac case $op in make) case " ${list[level]} " in *" \"$arg\" "*) ;; *) list[level]="${list[level]} \"$arg\"" ;; esac level=level+1 list[level]=\"$arg\" ;; prev) case " ${list[level]} " in *" \"$arg\" "*) ;; *) list[level]="${list[level]} \"$arg\"" ;; esac ;; done) case ${list[level]} in *' '*) print ${list[level]} ';' esac if (( level <= 0 )) then print -u2 "$COMMAND: line $line: $op $arg: no matching make op" else level=level-1 fi ;; esac done print .GE