Getting Started Documentation Glish Learn More Programming Contact Us
Version 1.9 Build 1556
News FAQ
Search Home


next up previous contents index
Next: rac Up: Code management Previous: doover

Subsections



mktree

Create an AIPS++ directory hierarchy with RCS symlinks.

Synopsis

mktree [-d] [-l] [-r] [-s]

Description

mktree is an interactive utility used by AIPS++ programmers to create a local workspace. It works incrementally in that it won't recreate directories or symbolic links which already exist, but may create new ones which have appeared since it was first run.

mktree creates a directory tree which shadows the $AIPSCODE subdirectory tree (see §1.1). In each directory it creates an RCS symbolic link to the corresponding RCS directory under $AIPSRCS, thereby creating a window into the local AIPS++ code repository.

The main function of the RCS symlinks is to provide an access route for gmake (p[*]) to the AIPS++ makefiles (p[*]). Although code checkin and checkout must be done using ai (p[*]) and ao (p[*]) which do not use the RCS symlinks, the symlinks do allow other RCS utilities such as rlog and rscdiff to be used as though the AIPS++ RCS repositories existed in the user's own workspace. ao also allows ao RCS/*,v to check out everything in a directory.

mktree also creates the $CODEINCD directory and symbolic links therein. These allow include files to be specified in the form #include <aips/Class.h> for example (see §1.1.1).

mktree can be used to create or update a limited portion of the directory hierarchy. If the current working directory is a subdirectory of */code, then only that portion of the tree will be created (see the example below).

mktree checks for defunct directories and will delete them and the files therein after seeking confirmation (unless the -s option was specified).

Options

-d
Delete any pre-existing symbolic links. This can be used to force symlinks to be recreated in the uncommon situation where a pre-existing programmer tree must be updated for a changed AIPSROOT, and where the old AIPSROOT still remains. (Note that if the old AIPSROOT did not still remain then the symlinks would be recreated without needing to use this option.)

-l
RCS symbolic links are normally created only if $AIPSRCS is being shadowed (see the -r option below), or if the $AIPSCODE/rcs symlink exists. This option forces them to be created regardless.

-r
Shadow the $AIPSRCS tree rather than $AIPSCODE. This is used by inhale (p[*]) to construct or update the $AIPSCODE tree at consortium sites.

-s
Don't ask for confirmation of the parent directory, or when deleting defunct directories and the files therein. Use with caution!

A -master option which creates RCS symlinks directly into $AIPSMSTR is also recognized but is only intended for use by exhale (p[*]) when building a new public release.

Notes

Diagnostics

Status return values
0: success
1: initialization error

Examples

To construct an AIPS++ workspace from scratch or update an existing one

   mkdir $HOME/aips++
   cd $HOME/aips++
   mktree

This is equivalent to

   mkdir $HOME/aips++/code
   cd $HOME/aips++/code
   mktree

To just create or update the aips package (see §1.1.1)

   cd $HOME/aips++/code/aips
   mktree

See also

The manual page for rlog(1).
The manual page for rcsdiff(1).
AIPS++ variable names (§1.2).
ai (p[*]), AIPS++ code checkin utility.
alog (p[*]), AIPS++ change log reporting utility.
amv (p[*]), AIPS++ code rename utility.
ao (p[*]), AIPS++ code checkout utility.
au (p[*]), AIPS++ code update utility.
ax (p[*]), AIPS++ code deletion utility.

Author

Original: 1992/03/07 by Peter Teuben, BIMA.


next up previous contents index
Next: rac Up: Code management Previous: doover   Contents   Index
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc., Washington, D.C.

Return to AIPS++ Home Page
2006-10-15