Blame build/default.pl

Packit 90a5c9
<<
Packit 90a5c9
# Scandoc template file.
Packit 90a5c9
#
Packit 90a5c9
# This is an example set of templates that is designed to create several 
Packit 90a5c9
# different kinds of index files. It generates a "master index" which intended 
Packit 90a5c9
# for use with a frames browser; A "package index" which is the root page of 
Packit 90a5c9
# the index, and then "package files" containing documentation for all of the 
Packit 90a5c9
# classes within a single package.
Packit 90a5c9
Packit 90a5c9
######################################################################
Packit 90a5c9
Packit 90a5c9
## For quick and superficial customization, 
Packit 90a5c9
## simply change these variables
Packit 90a5c9
Packit 90a5c9
$project_name     = '[Apache]';
Packit 90a5c9
$company_logo     = ''; # change this to an image tag.
Packit 90a5c9
$copyright        = '&copy 2000 [Apache Software Foundation]';
Packit 90a5c9
$image_directory  = "../images/";
Packit 90a5c9
$bullet1_image    = $image_directory . "ball1.gif";
Packit 90a5c9
$bullet2_image    = $image_directory . "ball2.gif";
Packit 90a5c9
$bgcolor1         = "#FFFFFF";
Packit 90a5c9
$bgcolor2         = "#FFFFFF";
Packit 90a5c9
Packit 90a5c9
######################################################################
Packit 90a5c9
Packit 90a5c9
## Begin generating frame index file.
Packit 90a5c9
Packit 90a5c9
file "index.html";
Packit 90a5c9
>><html>
Packit 90a5c9
  <head>
Packit 90a5c9
    <meta http-equiv="Content-Type" content="text/html; iso-8859-1">
Packit 90a5c9
    <title>$project_name</title>
Packit 90a5c9
  </head>
Packit 90a5c9
  <frameset cols="190,*">
Packit 90a5c9
    <frame src="master.html"  name="Master Index" noresize>
Packit 90a5c9
    <frame src="packages.html" name="Documentation">
Packit 90a5c9
    <noframes>
Packit 90a5c9
      <body bgcolor="$bgcolor2" stylesrc="index.html">
Packit 90a5c9
        

Some Documentation

Packit 90a5c9
      </body>
Packit 90a5c9
    </noframes>
Packit 90a5c9
  </frameset>
Packit 90a5c9
</html>
Packit 90a5c9
<<
Packit 90a5c9
Packit 90a5c9
######################################################################
Packit 90a5c9
Packit 90a5c9
## Begin generating master index file (left-hand frame).
Packit 90a5c9
Packit 90a5c9
file "master.html";
Packit 90a5c9
>><html>
Packit 90a5c9
  <head>
Packit 90a5c9
    <title>Master Index</title>
Packit 90a5c9
  </head>
Packit 90a5c9
  <body bgcolor="$bgcolor1" text=#0000ff link=#0020ff vlink=#0020ff>
Packit 90a5c9
    <center></center>
Packit 90a5c9
    

Packit 90a5c9
    Master Index
Packit 90a5c9
    

Packit 90a5c9
    

Packit 90a5c9
      <font size="2">
Packit 90a5c9
        <nobr>
Packit 90a5c9
<<
Packit 90a5c9
Packit 90a5c9
## For each package, generate an index entry.
Packit 90a5c9
Packit 90a5c9
foreach $p (packages()) {
Packit 90a5c9
  $_ = $p->url;
Packit 90a5c9
  s/\s/%20/g;
Packit 90a5c9
  >>$(p.name)
Packit 90a5c9
    <dir>
Packit 90a5c9
  <<
Packit 90a5c9
  foreach $e ($p->classes()) {
Packit 90a5c9
    $_ = $e->url;
Packit 90a5c9
    s/\s/%20/g;
Packit 90a5c9
    >>
  • $(e.fullname)
  • Packit 90a5c9
        <<
    Packit 90a5c9
      }
    Packit 90a5c9
      foreach $e ($p->globals()) {
    Packit 90a5c9
        $_ = $e->url;
    Packit 90a5c9
        s/\s/%20/g;
    Packit 90a5c9
        >>
  • $(e.fullname)
  • Packit 90a5c9
        <<
    Packit 90a5c9
      }
    Packit 90a5c9
      >></dir><<
    Packit 90a5c9
    }
    Packit 90a5c9
    Packit 90a5c9
    >>
    Packit 90a5c9
              To-Do List
    Packit 90a5c9
            </nobr>
    Packit 90a5c9
          </font>
    Packit 90a5c9
        

    Packit 90a5c9
      </body>
    Packit 90a5c9
    </html>
    Packit 90a5c9
    <<
    Packit 90a5c9
    Packit 90a5c9
    ######################################################################
    Packit 90a5c9
    Packit 90a5c9
    ## Begin generating package index file
    Packit 90a5c9
    Packit 90a5c9
    file "packages.html";
    Packit 90a5c9
    >><html>
    Packit 90a5c9
      <head>
    Packit 90a5c9
        <title>$project_name -- Packages</title>
    Packit 90a5c9
      </head>
    Packit 90a5c9
      <body bgcolor="$bgcolor2">
    Packit 90a5c9
    Packit 90a5c9
        <center>$company_logo
    Packit 90a5c9
        

    Documentation for $project_name

    Packit 90a5c9
        </center>
    Packit 90a5c9
        

    Package List

    Packit 90a5c9
    <<
    Packit 90a5c9
    Packit 90a5c9
    ## For each package, generate an index entry.
    Packit 90a5c9
    Packit 90a5c9
    foreach $p (packages()) {
    Packit 90a5c9
      $_ = $p->url;
    Packit 90a5c9
      s/\s/%20/g;
    Packit 90a5c9
      >>$(p.name)
    Packit 90a5c9
      <<
    Packit 90a5c9
    }
    Packit 90a5c9
    Packit 90a5c9
    >>
    Packit 90a5c9
        

    Packit 90a5c9
        
    Packit 90a5c9
        $copyright
    Packit 90a5c9
        Generated by ScanDoc $majorVersion.$minorVersion
    Packit 90a5c9
        Last Updated: $date
    Packit 90a5c9
      </body>
    Packit 90a5c9
    </html>
    Packit 90a5c9
    Packit 90a5c9
    <<
    Packit 90a5c9
    Packit 90a5c9
    ######################################################################
    Packit 90a5c9
    Packit 90a5c9
    ## Generate "To-do list"
    Packit 90a5c9
    Packit 90a5c9
    file "to-do.html";
    Packit 90a5c9
    >><html>
    Packit 90a5c9
      <head>
    Packit 90a5c9
        <title>$project_name -- To-Do list</title>
    Packit 90a5c9
      </head>
    Packit 90a5c9
      <body bgcolor="$bgcolor2">
    Packit 90a5c9
    Packit 90a5c9
        $company_logo
    Packit 90a5c9
    Packit 90a5c9
        

    To-do list for $project_name

    Packit 90a5c9
    <<
    Packit 90a5c9
    Packit 90a5c9
    if (&todolistFiles()) {
    Packit 90a5c9
      >>

    Packit 90a5c9
      <<
    Packit 90a5c9
      foreach $f (&todolistFiles()) {
    Packit 90a5c9
        my @m = &todolistEntries( $f );
    Packit 90a5c9
        if ($f =~ /([^\/]+)$/) { $f = $1; }
    Packit 90a5c9
        >>$f:
      Packit 90a5c9
          <<
      Packit 90a5c9
          foreach $text (@m) {
      Packit 90a5c9
            if ($text) {
      Packit 90a5c9
              print "
    • ", &processDescription( $text ), "\n";
    • Packit 90a5c9
            }
      Packit 90a5c9
          }
      Packit 90a5c9
          >>
      Packit 90a5c9
          <<
      Packit 90a5c9
        }
      Packit 90a5c9
      }
      Packit 90a5c9
      Packit 90a5c9
      >>
      Packit 90a5c9
          
      Packit 90a5c9
          $copyright
      Packit 90a5c9
          Generated by ScanDoc $majorVersion.$minorVersion
      Packit 90a5c9
          Last Updated: $date
      Packit 90a5c9
        </body>
      Packit 90a5c9
      </html>
      Packit 90a5c9
      <<
      Packit 90a5c9
      Packit 90a5c9
      ######################################################################
      Packit 90a5c9
      Packit 90a5c9
      ## Generate individual files for each package.
      Packit 90a5c9
      Packit 90a5c9
      my $p;
      Packit 90a5c9
      foreach $p (packages()) {
      Packit 90a5c9
        file $p->name() . ".html";
      Packit 90a5c9
        >><html>
      Packit 90a5c9
        <head>
      Packit 90a5c9
          <title>$project_name -- $(p.name)</title>
      Packit 90a5c9
        </head>
      Packit 90a5c9
        <body bgcolor="$bgcolor2">
      Packit 90a5c9
          <center>
      Packit 90a5c9
            <font size=6>$project_name</font>
      Packit 90a5c9
            

      Packit 90a5c9
          </center>
      Packit 90a5c9
      Packit 90a5c9
          

      Package Name: $(p.name)

      Packit 90a5c9
          
      Packit 90a5c9
      <<
      Packit 90a5c9
      Packit 90a5c9
      ## Generate class and member index at the top of the file.
      Packit 90a5c9
      Packit 90a5c9
      foreach $c ($p->classes()) {
      Packit 90a5c9
        >>

      Packit 90a5c9
          $(c.fullname)
      Packit 90a5c9
          
        Packit 90a5c9
          <<
        Packit 90a5c9
          foreach $m ($c->members()) {
        Packit 90a5c9
            >>
      • $(m.longname)
      • Packit 90a5c9
            <<
        Packit 90a5c9
          }
        Packit 90a5c9
          >>
        Packit 90a5c9
          <<
        Packit 90a5c9
        }
        Packit 90a5c9
        Packit 90a5c9
        >>
        Packit 90a5c9
        Packit 90a5c9
        <<
        Packit 90a5c9
        Packit 90a5c9
        ## Generate detailed class documentation
        Packit 90a5c9
        foreach $c ($p->classes()) {
        Packit 90a5c9
         ## Output searchable keyword list
        Packit 90a5c9
         if ($c->keywords()) {
        Packit 90a5c9
           print "\n";
        Packit 90a5c9
         }
        Packit 90a5c9
        Packit 90a5c9
         >>
        Packit 90a5c9
           
        Packit 90a5c9
           

        $(c.fullname)

        Packit 90a5c9
           
        Packit 90a5c9
             
        Packit 90a5c9
               
        Packit 90a5c9
               
        Packit 90a5c9
             
        Packit 90a5c9
          <<
        Packit 90a5c9
          
        Packit 90a5c9
          # Output author tag
        Packit 90a5c9
          if ($c->author()) {
        Packit 90a5c9
            >>Author:<<
        Packit 90a5c9
            >>$(c.author)<<
        Packit 90a5c9
          }
        Packit 90a5c9
        Packit 90a5c9
          # Output package version
        Packit 90a5c9
          if ($c->version()) {
        Packit 90a5c9
            >>Version:<<
        Packit 90a5c9
            >>$(c.version)<<
        Packit 90a5c9
          }
        Packit 90a5c9
        Packit 90a5c9
          # Output Source file
        Packit 90a5c9
          if ($c->sourcefile()) {
        Packit 90a5c9
            >>Source:<<
        Packit 90a5c9
            >>$(c.sourcefile)<<
        Packit 90a5c9
          }
        Packit 90a5c9
        Packit 90a5c9
          # Output base class list
        Packit 90a5c9
          if ($c->baseclasses()) {
        Packit 90a5c9
            >>Base classes:
        Packit 90a5c9
            <<
        Packit 90a5c9
            my @t = ();
        Packit 90a5c9
            foreach $b ($c->baseclasses()) {
        Packit 90a5c9
              my $name = $b->name();
        Packit 90a5c9
              if ($url = $b->url()) {
        Packit 90a5c9
                push @t, "$name";
        Packit 90a5c9
              }
        Packit 90a5c9
              else { push @t, $name; }
        Packit 90a5c9
            }
        Packit 90a5c9
            print join( ', ', @t );
        Packit 90a5c9
            >>
        Packit 90a5c9
            <<
        Packit 90a5c9
          }	
        Packit 90a5c9
        Packit 90a5c9
          # Output subclasses list
        Packit 90a5c9
          if ($c->subclasses()) {
        Packit 90a5c9
            >>Subclasses:
        Packit 90a5c9
              <<
        Packit 90a5c9
            my @t = ();
        Packit 90a5c9
            foreach $s ($c->subclasses()) {
        Packit 90a5c9
              my $name = $s->name();
        Packit 90a5c9
              if ($url = $s->url()) {
        Packit 90a5c9
                push @t, "$name";
        Packit 90a5c9
              }
        Packit 90a5c9
              else { push @t, $name; }
        Packit 90a5c9
            }
        Packit 90a5c9
            print join( ', ', @t );
        Packit 90a5c9
            >><<
        Packit 90a5c9
          }
        Packit 90a5c9
        Packit 90a5c9
          # Output main class description
        Packit 90a5c9
          >>
        Packit 90a5c9
          
        Packit 90a5c9
          

        Packit 90a5c9
          <<
        Packit 90a5c9
          print &processDescription( $c->description() );
        Packit 90a5c9
        	
        Packit 90a5c9
          # Output "see also" information
        Packit 90a5c9
          if ($c->seealso()) {
        Packit 90a5c9
            >>

        See Also
        Packit 90a5c9
            <<
        Packit 90a5c9
            my @r = ();
        Packit 90a5c9
            foreach $a ($c->seealso()) {
        Packit 90a5c9
              my $name = $a->name();
        Packit 90a5c9
              if ($url = $a->url()) {
        Packit 90a5c9
                push @r, "$name";
        Packit 90a5c9
              }
        Packit 90a5c9
              else { push @r, $name; }
        Packit 90a5c9
            }
        Packit 90a5c9
            print join( ',', @r );
        Packit 90a5c9
            >>

        Packit 90a5c9
            <<
        Packit 90a5c9
          }
        Packit 90a5c9
        Packit 90a5c9
          # Output class member index
        Packit 90a5c9
          if ($c->members()) {
        Packit 90a5c9
            print "

        Member Index

        \n";
        Packit 90a5c9
            print "
          ";
        Packit 90a5c9
            foreach $m ($c->members()) {
        Packit 90a5c9
              >>
      • $(m.fullname)
      • Packit 90a5c9
        	<<
        Packit 90a5c9
            }
        Packit 90a5c9
            >><<
        Packit 90a5c9
          }
        Packit 90a5c9
         
        Packit 90a5c9
          # Output class member variable documentation
        Packit 90a5c9
          if ($c->membervars()) {
        Packit 90a5c9
            print "

        Class Variables

        \n";
        Packit 90a5c9
            print "
        \n";
        Packit 90a5c9
            foreach $m ($c->membervars()) { &variable( $m ); }
        Packit 90a5c9
            print "\n";
        Packit 90a5c9
          }
        Packit 90a5c9
        Packit 90a5c9
          # Output class member function documentation
        Packit 90a5c9
          if ($c->memberfuncs()) {
        Packit 90a5c9
            print "

        Class Methods

        \n";
        Packit 90a5c9
            print "
        \n";
        Packit 90a5c9
            foreach $m ($c->memberfuncs()) { &function( $m ); }
        Packit 90a5c9
            print "\n";
        Packit 90a5c9
          }
        Packit 90a5c9
        }
        Packit 90a5c9
        Packit 90a5c9
        # Output global variables
        Packit 90a5c9
        if ($p->globalvars()) {
        Packit 90a5c9
          >>

        Global Variables

        Packit 90a5c9
            
        Packit 90a5c9
          <<
        Packit 90a5c9
          foreach $m ($p->globalvars()) { &variable( $m ); }
        Packit 90a5c9
          print "\n";
        Packit 90a5c9
        }
        Packit 90a5c9
        Packit 90a5c9
        # Output global functions
        Packit 90a5c9
        if ($p->globalfuncs()) {
        Packit 90a5c9
          >>

        Global Functions

        Packit 90a5c9
            
        Packit 90a5c9
          <<
        Packit 90a5c9
          foreach $m ($p->globalfuncs()) { &function( $m ); }
        Packit 90a5c9
          print "\n";
        Packit 90a5c9
        }
        Packit 90a5c9
        Packit 90a5c9
        >>
        Packit 90a5c9
            
        Packit 90a5c9
            $copyright
        Packit 90a5c9
            Generated by ScanDoc $majorVersion.$minorVersion
        Packit 90a5c9
            Last Updated: $date
        Packit 90a5c9
          </body>
        Packit 90a5c9
        </html>
        Packit 90a5c9
        <<
        Packit 90a5c9
        } # end of foreach (packages) loop
        Packit 90a5c9
        Packit 90a5c9
        ######################################################################
        Packit 90a5c9
        Packit 90a5c9
        ## Subroutine to generate documentation for a member function or global function
        Packit 90a5c9
        Packit 90a5c9
        sub function {
        Packit 90a5c9
          local ($f) = @_;
        Packit 90a5c9
          
        Packit 90a5c9
          if ($f->keywords()) {
        Packit 90a5c9
            >>
        Packit 90a5c9
              <<
        Packit 90a5c9
          }
        Packit 90a5c9
          >>
        Packit 90a5c9
          
        Packit 90a5c9
          
        Packit 90a5c9
            
        Packit 90a5c9
             $(f.fullname);
        Packit 90a5c9
            
        Packit 90a5c9
          <<
        Packit 90a5c9
          print &processDescription( $f->description() );
        Packit 90a5c9
          >>
        Packit 90a5c9
          

        Packit 90a5c9
          <<
        Packit 90a5c9
          if ($f->params()) {
        Packit 90a5c9
            >>
        Packit 90a5c9
              
        Parameters
        Packit 90a5c9
        	
        Packit 90a5c9
            <<
        Packit 90a5c9
            foreach $a ($f->params()) {
        Packit 90a5c9
              >>
        Packit 90a5c9
        	$(a.name)<<
        Packit 90a5c9
              print &processDescription( $a->description() );
        Packit 90a5c9
              >>
        Packit 90a5c9
              <<
        Packit 90a5c9
            }
        Packit 90a5c9
            >>
        Packit 90a5c9
              <<
        Packit 90a5c9
          }
        Packit 90a5c9
        	
        Packit 90a5c9
          if ($f->returnValue()) {
        Packit 90a5c9
            >>
        Return Value
        Packit 90a5c9
              
        <<
        Packit 90a5c9
            print &processDescription( $f->returnValue() );
        Packit 90a5c9
            >>

        <<

        Packit 90a5c9
          }
        Packit 90a5c9
          
        Packit 90a5c9
          if ($f->exceptions()) {
        Packit 90a5c9
            >>
        Exceptions
        Packit 90a5c9
              

        Packit 90a5c9
            <<
        Packit 90a5c9
            foreach $a ($f->exceptions()) {
        Packit 90a5c9
              >>
        Packit 90a5c9
        	$(a.name)<<
        Packit 90a5c9
        	  print &processDescription( $a->description() );
        Packit 90a5c9
              >>
        Packit 90a5c9
              <<
        Packit 90a5c9
            }
        Packit 90a5c9
            >>
        Packit 90a5c9
            <<
        Packit 90a5c9
          }
        Packit 90a5c9
        	
        Packit 90a5c9
          if ($f->seealso()) {
        Packit 90a5c9
            >>
        See Also
        Packit 90a5c9
              <<
        Packit 90a5c9
            my @r = ();
        Packit 90a5c9
            foreach $a ($f->seealso()) {
        Packit 90a5c9
              my $name = $a->name();
        Packit 90a5c9
              if ($url = $a->url()) {
        Packit 90a5c9
        	push @r, "$name";
        Packit 90a5c9
              }
        Packit 90a5c9
              else { push @r, $name; }
        Packit 90a5c9
            }
        Packit 90a5c9
            print join( ',', @r );
        Packit 90a5c9
            >>

        <<

        Packit 90a5c9
          }
        Packit 90a5c9
          >>
        Packit 90a5c9
          <<
        Packit 90a5c9
        }
        Packit 90a5c9
        Packit 90a5c9
        ######################################################################
        Packit 90a5c9
        Packit 90a5c9
        ## Subroutine to generate documentation for a member variable or global variable.
        Packit 90a5c9
        Packit 90a5c9
        sub variable {
        Packit 90a5c9
          local ($v) = @_;
        Packit 90a5c9
          
        Packit 90a5c9
          if ($v->keywords()) {
        Packit 90a5c9
            print "";
        Packit 90a5c9
          }
        Packit 90a5c9
        Packit 90a5c9
          >>
        Packit 90a5c9
            
        Packit 90a5c9
              
        Packit 90a5c9
        	$(v.fullname);
        Packit 90a5c9
          
        Packit 90a5c9
          <<print &processDescription( $v->description() );>>
        Packit 90a5c9
          

        Packit 90a5c9
          <<
        Packit 90a5c9
          if ($v->seealso()) {
        Packit 90a5c9
            >>
        See Also
        Packit 90a5c9
              <<
        Packit 90a5c9
        	$comma = 0;
        Packit 90a5c9
            foreach $a ($v->seealso()) {
        Packit 90a5c9
              if ($comma) { print ","; }
        Packit 90a5c9
              $comma = 1;
        Packit 90a5c9
              >>$(a.name)
        Packit 90a5c9
        	<<
        Packit 90a5c9
            }
        Packit 90a5c9
            >>

        Packit 90a5c9
            <<
        Packit 90a5c9
          }
        Packit 90a5c9
          >>
        Packit 90a5c9
          <<
        Packit 90a5c9
        }
        Packit 90a5c9
        Packit 90a5c9
        ######################################################################
        Packit 90a5c9
        Packit 90a5c9
        sub processDescription {
        Packit 90a5c9
          local ($_) = @_;
        Packit 90a5c9
          
        Packit 90a5c9
          s/^\s+//;				# Remove whitespace from beginning
        Packit 90a5c9
          s/\s+$/\n/;				# Remove whitespace from end
        Packit 90a5c9
          s/\n\n/

        \n/g; # Replace multiple CR's with paragraph markers

        Packit 90a5c9
          s:\@heading(.*)\n:

        $1

        :; # Handle heading text
        Packit 90a5c9
          
        Packit 90a5c9
          # Handle embedded image tags
        Packit 90a5c9
          s:\@caution:

        :;

        Packit 90a5c9
          s:\@warning:

        :;

        Packit 90a5c9
          s:\@bug:

        :;

        Packit 90a5c9
          s:\@tip:

        :;

        Packit 90a5c9
        Packit 90a5c9
          return $_;
        Packit 90a5c9
        }