## How Condor's Doc++ System Works

Each Imakefile in a directory that has no doc++ comments has one line added. That line is:

    html:

Each Imakefile in a directory with doc++ comments in it has a new target:

    html_target( foo.h bar.h etc.h )

Where the .h files listed contain doc++ stuff.

Good examples of this are currently in condor_dagman and in condor_c++_util.

When you write your own doc+ comments (hint, hint) add the above target to your Imakefile.

If you are in a subdirectory (like condor_dagman) and do a '`make html`', the makefile will run doc++ on the listed .h files, and put the results into a subdirectory named '`html`'. When '`make docs`' is run from the top level, "make html" is done for all subdirectories.

In that src/html directory, there is a perl script that Derek wrote. It looks through all the source to find the html subdirectories made in the previous step. It then creates an htmldocs directory, copies in the html from each seperate module into their own subdirectories, and spits out a web page (index.html) that has links to all the source pages made by doc++.

To run this perl script, do a '`make htmldocs`'

Here is a summary of doc++ related make commands:

- `make html` - you get the html directory built.
- `make` - you get everything, including the html directory.
- `make docs` - you go into all subdirectories and get "make html"
- `make htmldocs` - You get "make docs", then the perl script runs.

For questions about doc++ itself, consult the Doc++ web page.