/*{{{  Name*/
NAME :     mkref      a utility for making references for origamis refer
/*}}}  */

/*{{{  Synopsis*/
SYNOPSIS : mkref [-a] [-d] [-f] [-g] [-h] [-n] [-m] [-o filename]
                 [-p] [-q] [-r [depth]] [-s] [-t] [-v] [-w] [-?]
                 [filename | directory]
/*}}}  */

/*{{{  Version*/
VERSION : 1.0 January 1992    (c) Thomas Hadig
/*}}}  */

/*{{{  Description*/
DESCRIPTION :

Mkref generates an reference for a file (if filename is specified) or
a whole directory (if directory is specified) or the current directory
(is neither filename nor directory is specified).

The reference will be written to the file t:mkref.ref (if no other filename
is specified with the -o option).

The constructions, that will be referenced, can be selected by command line
options (see Options).

The references will have the following format :
keyword            lines file @@position
where   keyword : is the reference name --- e.g. the typedef name.
        lines   : is the length of the reference in lines
        file    : is the name of the file
        position: is the starting position of reference in bytes
                  (0 is the beginning of the file)

Three different types are currently available :

/*{{{  manual pages*/
1. manual pages :
If the manual page mode is active (which will be, if you didn't use the
-n option), mkref will look for lines of the following format :
aaaaaa/bbbbbb         aaaaaa/bbbbbb
If mkref finds a line with this format, it will generate a reference
with the keyword bbbbbb.

The reference end will be the line with the next manual page reference
or the end of the file.
/*}}}  */
/*{{{  files*/
2. files : mkref will generate references for filenames of the scaned
files. The startposition will be 0 and the number of lines referenced
will be the number of lines in the file.
/*}}}  */
/*{{{  c-sources*/
3. c-sources : mkref will generate references for some c-constructions ---
like defines, typedefs, structures, prototypes, pragmas, modules (functions
and procedures) and global variables !
/*}}}  */

The pragma option work with pragmas used with SAS-C Compiler :
#pragma libcall Library Function ....
The Function will be referenced !
/*}}}  */

/*{{{  Options*/
OPTIONS :
/*{{{  a*/
-a : all; the same as -d -f -g -m -p -s -t -w
/*}}}  */
/*{{{  d*/
-d : defines; will enable the reference of defines
/*}}}  */
/*{{{  f*/
-f : files; will enable the reference of files
/*}}}  */
/*{{{  g*/
-g : pragmas; will enable the reference of pragmas
/*}}}  */
/*{{{  n*/
-n : noref; will disable the reference of manual pages
/*}}}  */
/*{{{  m*/
-m : modules; will enable the reference of modules (functions, procedures)
/*}}}  */
/*{{{  o*/
-o filename : will write to the file filename instead of T:mkref.ref
/*}}}  */
/*{{{  p*/
-p : prototypes; will enable the reference of prototypes
/*}}}  */
/*{{{  q*/
-q : quiet; will print no header, no warings and no error messages
/*}}}  */
/*{{{  r*/
-r [depth] : recursiv, will handle all sub-directories (to the specified
depth)
/*}}}  */
/*{{{  s*/
-s : structures; will enable the reference of structures
/*}}}  */
/*{{{  t*/
-t : typedefs; will enable the reference of typedefs
/*}}}  */
/*{{{  v*/
-v : verbose; will generate messages for every action refer will do
/*}}}  */
/*{{{  w*/
-v : variables; will enable the reference of variables
/*}}}  */
/*{{{  h,?*/
-h, -? : usage, will show the command line options
/*}}}  */
/*}}}  */

/*{{{  Known Bugs*/
KNOWN BUGS :

/*{{{  long lines*/
* if mkref finds a line longer than 256 characters, mkref will divide
the line into parts (and count at least two lines)
/*}}}  */
/*{{{  c-source*/
* if mkref is in c-source mode, it will handle a file like a small
c-compiler. If there is a syntax error in the structure, mkref will
get in trouble and the following references may contain nonsense.
Maybe, some constructions are unknown to mkref, so that mkref will
get in trouble. If you find one of these constructions, please contact
me !
/*}}}  */
/*{{{  defines and structures within modules*/
* if there is a define within a module, mkref will not reference that !
Also every other constructions --- like typedefs, structures and
variables --- will not be referenced !
/*}}}  */
/*{{{  structures within typedefs*/
* if you define a structure within a typedef, it will only be referenced,
if the typedef option is choosen !
/*}}}  */
/*}}}  */

/*{{{  See also*/
SEE ALSO : origami-docs and amiga-docs
/*}}}  */
