********************************************************************************

			Check the version of doxygen you're using, there is a bug
			with older versions ( < 1.7.4 )

********************************************************************************

USAGE
=======================
To invoke doxygen, 
   cd $(papi_dir)/doc
   make (alternativly doxygen Doxyfile-{html,man1,man3}

This command produces documentation for the PAPI user-exposed api and data-structures. 

There are several different configuration files are present:
Doxyfile-html - generates documentation for everything under src. This will
take a long time to run, and generates north of 600 megs of files. Requires 
the program dot, for dependency graphs. 
Doxyfile-man1 - generates man-pages for the utilities. 
Doxyfile-man3 - generates man-pages for the API, see papi.h


Commenting the Code
=======================
To get doxygen's attention, in general, use a special comment block

/** */
thing_to_be_commented

Doxygen responds to several special commands, denoted by @command 
(if you're feeling texy, \command)

As an artifact of how doxygen started life, we call our api functions 'classes' 
to get doxygen to generate man-pages for the function.

/** @class MY_FUNCTION
    @brief gives a brief overview of what the function does, 
		limited to 1 line or 1 sentence if you need the space.
	@param arg1 describes a parameter to the function

	@return describes the functions return value
	
	@retval allows you to enumerate return values 

	Down here we have more detailed information about the function
	Which can span many lines

	And paragraphs (feeling texy now?)

	@par Examples:
	@code
	This is the way to get examples to format nicely
	code goes here....
	@endcode

	@bug 
	Here you get a section of freeform text to describe bugs you encounter. 
*/

@internal keeps comment blocks marked as such out of the documentation 
(unless the INTERNAL_DOCS flag is set in the config file)


In several places /**< */ appears, this means that the comment
pertains to the previous element.

int foo;	/**< This comment is about foo */


TODO
=======================
Doxygen provides options for [ab]using the preprocessor,
Do we need to look into this? Probably not more than we already do -J

Document the ctests?

See 
http://www.stack.nl/~dimitri/doxygen/docblocks.html
for more detail on doxygen.
