The student already got into contact with me and it looks like he is motivated (he is already subscribed to several FreeBSD mailinglists, which is not a requirement we have in our GSoC docs).
I committed my patch for tools/kerneldoc/subsys. Except for not generating the PDF part, this is now the same config which I use to generate the online version. While writing the commit log I noticed that I did more changes than I thought…
So anyone who wants to generate the Doxygen docs of some FreeBSD kernel subsystems on his own, can do it now. Adding more subsystems is easy, just make a copy of one the the existing Doxyfile-* files – keep the same naming scheme – and change the contents. Everything else is handled automatically.
I managed to get some time to setup an automated generation of the doxygen docs for kernel subsystems of FreeBSD on my webserver.
Every night/morning (German timezone) the sources will be updated, and the docs get regenerated (this takes some time). Currently this depends upon some patches to the makefile and doxygen config files in tools/kerneldoc/subsys. Everything is generated directly in the place where the webserver will look for to deliver the pages, so if you browse this in the middle of the generation, the content may not be consistent (yet).
Please be nice to the webserver and do not mirror this. You can generate this yourself very easy. Assuming you have the FreeBSD source on a local hard disk, you just need to download the patch from http://www.Leidinger.net/FreeBSD/current-patches/ (if you do not find dox.diff, update your FreeBSD sources and everything will be OK), apply the patch, cd into tools/kerneldoc/subsys and run “make all” (or “make vm” or whatever you are interested in). You need doxygen installed, off course.
If you want to setup something like this yourself, just download the script which is doing all the work, change some variables in the beginning, and create your own local version of the complete docs.
In case this is using significant traffic, I will ask core/admins if there is the possibility to host it on FreeBSD.org resources.
I committed the kernel subsystem API documentation generation framework. It allows to generate the API documentation of a subsystem (with doxygen) just by adding a short config file (around 22 lines with comments and blank lines, maybe 14 lines without comments and blank lines). Here’s an example of such a config:
PROJECT_NAME = “FreeBSD kernel sound device code”
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_sound/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
INPUT = $(DOXYGEN_SRC_PATH)/dev/sound/
GENERATE_TAGFILE = dev_sound/dev_sound.tag
TAGFILES = dev_pci/dev_pci.tag=../../dev_pci/html \
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile
The framework is configured to not only generate the HTML version, but also a PDF version.
Subsystems for which docs are generated currently (configs for other subsystems are welcome):