#! /bin/csh -f

#  C-shell script: getsrcx
#  usage: getsrcx <subprogram> ...
#  abstract: retrieves source for NMS subprograms whose name(s)
#            are listed on the command line, including all additional
#            subprograms which are required to run them.  The
#            requested items are written to standard output.
#  by: Ron Boisvert

set userdir = $cwd
set tmpdir = /tmp/getsrcx.$$

onintr cleanup

mkdir $tmpdir
cd $tmpdir

# -------------------------------------------------------
# generate fortran program which calls requested routines
# -------------------------------------------------------

foreach name ($argv)
   echo "      call $name" >> prog.f
end
echo "      end" >> prog.f

# -----------------------------------------------
# compile this program and capture the loader map
# -----------------------------------------------

/itl/links/spro/bin/f77 -M prog.f /local/ftp/pub/repository/nms/libnms.a >& prog.M

# ------------------------------------------------
# massage loader map into sequence of getsrc calls
# ------------------------------------------------

sed -e '1,/^\/local\/ftp\/pub\/repository\/nms\/libnms\.a/d' -e '/^\//,$d' -e 's/\.o//' -e 's/\	//' \
    -e 's/^/cat \/local\/ftp\/pub\/repository\/nms\/src\//' \
    -e 's/$/.f/' prog.M | csh -f -s

cleanup:
         cd $userdir
         rm -r -f $tmpdir

exit


