This is the kernel subsystem API documentation generation framework.

It uses doxygen to generate the API documentation. For each subsystem
a very small (about 20 lines with comments) subsystem specific Doxyfile
has to be written (have a look at the README for more). All common doxygen
options are specified in a separate file.

The framework is configured to not only generate the HTML version, but also
a PDF version (the paper size is hardcoded to DIN A4 currently and depending
on the subsystem you have to increase some limits in the latex configuration
of your system, the README tells more about this).

It also allows cross-references between the subsystems (it generates doxygen
tag files).

Currently the docs are generated in OBJDIR, but this may change after
coordination with doc@. The makefile is prepared to generate/move various
parts of the generated docs to different destinations.

TARGET_ARCH is respected and some env-vars are set for architecture specific
handling of the source (the README tells more).

Subsystems for which docs are generated:
 - cam                  - crypto                - dev_pci
 - dev_sound            - dev_usb               - geom
 - i4b                  - kern                  - libkern
 - linux                - net80211              - netgraph
 - netinet              - netinet6              - netipsec
 - opencrypto           - vm

Requested by:	gnn
This commit is contained in:
netchild 2006-05-26 18:06:07 +00:00
parent 18c5cc5ccc
commit db26138707
42 changed files with 1578 additions and 0 deletions

View File

@ -0,0 +1,22 @@
#
# $FreeBSD$
#
# makefile dependencies for doxygen tag files
#
$(.OBJDIR)/dev_sound/dev_sound.tag: $(.OBJDIR)/dev_pci/dev_pci.tag \
$(.OBJDIR)/dev_usb/dev_usb.tag \
$(.OBJDIR)/ac97_if.h \
$(.OBJDIR)/channel_if.h \
$(.OBJDIR)/feeder_if.h \
$(.OBJDIR)/mixer_if.h
$(.OBJDIR)/dev_usb/dev_usb.tag: $(.OBJDIR)/dev_pci/dev_pci.tag \
$(.OBJDIR)/usb_if.h
$(.OBJDIR)/dev_pci/dev_pci.tag: $(.OBJDIR)/pci_if.h \
$(.OBJDIR)/pcib_if.h \
$(.OBJDIR)/bus_if.h
$(.OBJDIR)/i4b/i4b.tag: $(.OBJDIR)/dev_pci/dev_pci.tag

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel CAM code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/cam/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/cam/
GENERATE_TAGFILE = cam/cam.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel crypto code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/crypto/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/crypto/
GENERATE_TAGFILE = crypto/crypto.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,21 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel $(DOXYGEN_TARGET_ARCH) PCI device code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_pci/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/dev/pci/ \
$(DOXYGEN_SRC_PATH)/$(DOXYGEN_TARGET_ARCH)/pci/
GENERATE_TAGFILE = dev_pci/dev_pci.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,22 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel sound device code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_sound/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/dev/sound/
GENERATE_TAGFILE = dev_sound/dev_sound.tag
TAGFILES = dev_pci/dev_pci.tag=../../dev_pci/html \
dev_usb/dev_usb.tag=../../dev_usb/html
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,21 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel usb device Code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_usb/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/dev/usb/
GENERATE_TAGFILE = dev_usb/dev_usb.tag
TAGFILES = dev_pci/dev_pci.tag=../../dev_pci/html
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel GEOM code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/geom/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/geom/
GENERATE_TAGFILE = geom/geom.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,21 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel ISDN code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/i4b/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/i4b/
GENERATE_TAGFILE = i4b/i4b.tag
TAGFILES = dev_pci/dev_pci.tag=../../dev_pci/html
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel kern code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/kern/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/kern/
GENERATE_TAGFILE = kern/kern.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel libkern code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/libkern/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/libkern/
GENERATE_TAGFILE = libkern/libkern.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel $(DOXYGEN_TARGET_ARCH) linuxolator code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/linux/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/compat/linux $(DOXYGEN_LINUX_PATH)
GENERATE_TAGFILE = linux/linux.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel WLAN code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/net80211/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/net80211/
GENERATE_TAGFILE = net80211/net80211.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel netgraph code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netgraph/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netgraph/
GENERATE_TAGFILE = netgraph/netgraph.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel IPv4 code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netinet/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netinet/
GENERATE_TAGFILE = netinet/netinet.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel IPv6 code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netinet6/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netinet6/
GENERATE_TAGFILE = netinet6/netinet6.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel IPsec code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netipsec/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netipsec/
GENERATE_TAGFILE = netipsec/netipsec.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel opencrypto code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/opencrypto/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/opencrypto/
GENERATE_TAGFILE = opencrypto/opencrypto.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD virtual memory subsystem code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/vm/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/vm/
GENERATE_TAGFILE = vm/vm.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

124
sys/doc/subsys/Makefile Normal file
View File

@ -0,0 +1,124 @@
#
# $FreeBSD$
#
_ALL!= cd ${.CURDIR} && ls Doxyfile-*
ALL= ${_ALL:C/Doxyfile-//g}
PDF_ALL=${_ALL:C/Doxyfile/pdf/g}
TARGET_ARCH?= ${MACHINE_ARCH}
S?=/usr/src/sys
MFILES+=contrib/dev/ath/freebsd/ah_if.m
MFILES+=dev/acpica/acpi_if.m
MFILES+=dev/eisa/eisa_if.m
MFILES+=dev/iicbus/iicbb_if.m
MFILES+=dev/iicbus/iicbus_if.m
MFILES+=dev/mii/miibus_if.m
MFILES+=dev/ofw/ofw_bus_if.m
MFILES+=dev/pccard/card_if.m
MFILES+=dev/pccard/power_if.m
MFILES+=dev/pci/pci_if.m
MFILES+=dev/pci/pcib_if.m
MFILES+=dev/ppbus/ppbus_if.m
MFILES+=dev/smbus/smbus_if.m
MFILES+=dev/sound/pcm/ac97_if.m
MFILES+=dev/sound/pcm/channel_if.m
MFILES+=dev/sound/pcm/feeder_if.m
MFILES+=dev/sound/pcm/mixer_if.m
MFILES+=dev/uart/uart_if.m
MFILES+=dev/usb/usb_if.m
MFILES+=isa/isa_if.m
MFILES+=kern/bus_if.m
MFILES+=kern/clock_if.m
MFILES+=kern/cpufreq_if.m
MFILES+=kern/device_if.m
MFILES+=kern/linker_if.m
MFILES+=libkern/iconv_converter_if.m
MFILES+=opencrypto/crypto_if.m
MFILES+=pc98/pc98/canbus_if.m
MFILES+=pci/agp_if.m
MFILES+=powerpc/powerpc/pic_if.m
MFILES+=sparc64/pci/ofw_pci_if.m
.if exists{${S}/${TARGET_ARCH}/${TARGET_ARCH}/clock_if.m}
MFILES+=${TARGET_ARCH}/${TARGET_ARCH}/clock_if.m
.endif
HFILES= ${MFILES:T:S/.m$/.h/}
AWK?= awk
.MAIN: usage
usage:
@echo "Possible targets are:"
.for entry in ${ALL}
@echo " ${entry}"
@echo " pdf-${entry}"
@echo " clean-${entry}"
.endfor
@echo
@echo " all"
@echo " pdf-all"
@echo " clean"
all: ${ALL}
pdf-all:${PDF_ALL}
mfiles: ${HFILES:S/^/${.OBJDIR}\//}
DOXYGEN_DEST_PATH= ${.OBJDIR}
DOXYGEN_LATEX_DEST_PATH=${.OBJDIR}
DOXYGEN_PDF_DEST_PATH= ${.OBJDIR}
.if exists{${S}/${TARGET_ARCH}/linux}
DOXYGEN_LINUX_PATH= ${S}/${TARGET_ARCH}/linux
.endif
.if exists{${S}/${TARGET_ARCH}/linux32}
DOXYGEN_LINUX_PATH+= ${S}/${TARGET_ARCH}/linux32
.endif
#
# generate the necessary targets
#
.for target in ${ALL}
${target}: mfiles ${.OBJDIR}/${target}/${target}.tag
${.OBJDIR}/${target}/${target}.tag:
@cd ${.OBJDIR} && \
env DOXYGEN_INCLUDE_PATH=${.CURDIR} \
DOXYGEN_SRC_PATH=${S} \
DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \
DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include" \
DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \
DOXYGEN_LINUX_PATH=${DOXYGEN_LINUX_PATH} \
doxygen ${.CURDIR}/Doxyfile-${target}
@echo "API docs for ${target} are now available in ${.OBJDIR}/${target}/." | /usr/bin/fmt
pdf-${target}: ${.OBJDIR}/${target}/${target}.tag
@cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
@echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt
CLEANDIRS+= ${DOXYGEN_DEST_PATH}/${target}
CLEANDIRS+= ${.OBJDIR}/${target}/
CLEANFILES+= ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
clean-${target}:
rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target}
.endfor
.for file in ${MFILES}
CLEANDIRS+= ${.OBJDIR}/${file:T:S/.m$/.h/}
${.OBJDIR}/${file:T:S/.m$/.h/}: ${S}/${file}
cd ${.OBJDIR}; ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h
.endfor
#
# update target for the config files {config syntax change}
#
update-doxys:
.for config_file in ${_ALL}
@doxygen -u ${config_file}
.endfor
.include "Dependencies"
.include <bsd.obj.mk>

32
sys/doc/subsys/README Normal file
View File

@ -0,0 +1,32 @@
The kernel subsystem API documentation generation framework.
--------------------------------------------------------------
For every Doxyfile-(.*) the Makefile adds the public targets $1, pdf-$1 and
clean-$1. For e.g. Doxyfile-dev_pci this translates to the targets dev_pci,
pdf-dev_pci and clean-dev_pci.
Additionally, the targets 'all', 'pdf-all' and 'clean' to generate or remove
the documentation for all targets are available.
The file 'Dependencies' contains dependencies for the .tag files.
To add another part to the documentation just copy a Doxyfile and add
the necessary dependencies to the file 'Dependencies'.
The following environment variables can be used in the Doxyfile:
- DOXYGEN_SRC_PATH (/usr/src/sys)
- DOXYGEN_DEST_PATH (where the docs are generated)
- DOXYGEN_TARGET_ARCH (${TARGET_ARCH} if set, else ${MACHINE_ARCH})
For the PDF generation you may have to change some limits in the latex
configuration (the build may fail and an error about e.g. "pool size" is
shown), for print/teTeX this is done in
/usr/local/share/texmf/web2c/texmf.cnf
Programs needed to generate the API docs:
- devel/doxygen
- print/teTeX
- graphics/graphviz
--
$FreeBSD$

View File

@ -0,0 +1,266 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NUMBER =
CREATE_SUBDIRS = YES
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.dox \
*.C \
*.CC \
*.C++ \
*.II \
*.I++ \
*.H \
*.HH \
*.H++ \
*.CS \
*.PHP \
*.PHP3 \
*.M \
*.MM
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */.\#*
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = YES
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH = $(DOXYGEN_SRC_INCLUDE_PATH) .
INCLUDE_FILE_PATTERNS = *.h
PREDEFINED = "_KERNEL" \
"__FreeBSD__=7" \
"__${TARGET_ARCH}__=1" \
"__${TARGET_ARCH}=1"
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

View File

@ -0,0 +1,22 @@
#
# $FreeBSD$
#
# makefile dependencies for doxygen tag files
#
$(.OBJDIR)/dev_sound/dev_sound.tag: $(.OBJDIR)/dev_pci/dev_pci.tag \
$(.OBJDIR)/dev_usb/dev_usb.tag \
$(.OBJDIR)/ac97_if.h \
$(.OBJDIR)/channel_if.h \
$(.OBJDIR)/feeder_if.h \
$(.OBJDIR)/mixer_if.h
$(.OBJDIR)/dev_usb/dev_usb.tag: $(.OBJDIR)/dev_pci/dev_pci.tag \
$(.OBJDIR)/usb_if.h
$(.OBJDIR)/dev_pci/dev_pci.tag: $(.OBJDIR)/pci_if.h \
$(.OBJDIR)/pcib_if.h \
$(.OBJDIR)/bus_if.h
$(.OBJDIR)/i4b/i4b.tag: $(.OBJDIR)/dev_pci/dev_pci.tag

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel CAM code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/cam/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/cam/
GENERATE_TAGFILE = cam/cam.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel crypto code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/crypto/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/crypto/
GENERATE_TAGFILE = crypto/crypto.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,21 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel $(DOXYGEN_TARGET_ARCH) PCI device code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_pci/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/dev/pci/ \
$(DOXYGEN_SRC_PATH)/$(DOXYGEN_TARGET_ARCH)/pci/
GENERATE_TAGFILE = dev_pci/dev_pci.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,22 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel sound device code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_sound/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/dev/sound/
GENERATE_TAGFILE = dev_sound/dev_sound.tag
TAGFILES = dev_pci/dev_pci.tag=../../dev_pci/html \
dev_usb/dev_usb.tag=../../dev_usb/html
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,21 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel usb device Code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_usb/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/dev/usb/
GENERATE_TAGFILE = dev_usb/dev_usb.tag
TAGFILES = dev_pci/dev_pci.tag=../../dev_pci/html
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel GEOM code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/geom/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/geom/
GENERATE_TAGFILE = geom/geom.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,21 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel ISDN code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/i4b/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/i4b/
GENERATE_TAGFILE = i4b/i4b.tag
TAGFILES = dev_pci/dev_pci.tag=../../dev_pci/html
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel kern code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/kern/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/kern/
GENERATE_TAGFILE = kern/kern.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel libkern code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/libkern/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/libkern/
GENERATE_TAGFILE = libkern/libkern.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel $(DOXYGEN_TARGET_ARCH) linuxolator code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/linux/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/compat/linux $(DOXYGEN_LINUX_PATH)
GENERATE_TAGFILE = linux/linux.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel WLAN code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/net80211/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/net80211/
GENERATE_TAGFILE = net80211/net80211.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel netgraph code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netgraph/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netgraph/
GENERATE_TAGFILE = netgraph/netgraph.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel IPv4 code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netinet/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netinet/
GENERATE_TAGFILE = netinet/netinet.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel IPv6 code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netinet6/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netinet6/
GENERATE_TAGFILE = netinet6/netinet6.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel IPsec code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/netipsec/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/netipsec/
GENERATE_TAGFILE = netipsec/netipsec.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD kernel opencrypto code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/opencrypto/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#--------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/opencrypto/
GENERATE_TAGFILE = opencrypto/opencrypto.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,20 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "FreeBSD virtual memory subsystem code"
OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/vm/
EXTRACT_ALL = YES # for undocumented src, no warnings enabled
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(DOXYGEN_SRC_PATH)/vm/
GENERATE_TAGFILE = vm/vm.tag
@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
@INCLUDE = common-Doxyfile

View File

@ -0,0 +1,124 @@
#
# $FreeBSD$
#
_ALL!= cd ${.CURDIR} && ls Doxyfile-*
ALL= ${_ALL:C/Doxyfile-//g}
PDF_ALL=${_ALL:C/Doxyfile/pdf/g}
TARGET_ARCH?= ${MACHINE_ARCH}
S?=/usr/src/sys
MFILES+=contrib/dev/ath/freebsd/ah_if.m
MFILES+=dev/acpica/acpi_if.m
MFILES+=dev/eisa/eisa_if.m
MFILES+=dev/iicbus/iicbb_if.m
MFILES+=dev/iicbus/iicbus_if.m
MFILES+=dev/mii/miibus_if.m
MFILES+=dev/ofw/ofw_bus_if.m
MFILES+=dev/pccard/card_if.m
MFILES+=dev/pccard/power_if.m
MFILES+=dev/pci/pci_if.m
MFILES+=dev/pci/pcib_if.m
MFILES+=dev/ppbus/ppbus_if.m
MFILES+=dev/smbus/smbus_if.m
MFILES+=dev/sound/pcm/ac97_if.m
MFILES+=dev/sound/pcm/channel_if.m
MFILES+=dev/sound/pcm/feeder_if.m
MFILES+=dev/sound/pcm/mixer_if.m
MFILES+=dev/uart/uart_if.m
MFILES+=dev/usb/usb_if.m
MFILES+=isa/isa_if.m
MFILES+=kern/bus_if.m
MFILES+=kern/clock_if.m
MFILES+=kern/cpufreq_if.m
MFILES+=kern/device_if.m
MFILES+=kern/linker_if.m
MFILES+=libkern/iconv_converter_if.m
MFILES+=opencrypto/crypto_if.m
MFILES+=pc98/pc98/canbus_if.m
MFILES+=pci/agp_if.m
MFILES+=powerpc/powerpc/pic_if.m
MFILES+=sparc64/pci/ofw_pci_if.m
.if exists{${S}/${TARGET_ARCH}/${TARGET_ARCH}/clock_if.m}
MFILES+=${TARGET_ARCH}/${TARGET_ARCH}/clock_if.m
.endif
HFILES= ${MFILES:T:S/.m$/.h/}
AWK?= awk
.MAIN: usage
usage:
@echo "Possible targets are:"
.for entry in ${ALL}
@echo " ${entry}"
@echo " pdf-${entry}"
@echo " clean-${entry}"
.endfor
@echo
@echo " all"
@echo " pdf-all"
@echo " clean"
all: ${ALL}
pdf-all:${PDF_ALL}
mfiles: ${HFILES:S/^/${.OBJDIR}\//}
DOXYGEN_DEST_PATH= ${.OBJDIR}
DOXYGEN_LATEX_DEST_PATH=${.OBJDIR}
DOXYGEN_PDF_DEST_PATH= ${.OBJDIR}
.if exists{${S}/${TARGET_ARCH}/linux}
DOXYGEN_LINUX_PATH= ${S}/${TARGET_ARCH}/linux
.endif
.if exists{${S}/${TARGET_ARCH}/linux32}
DOXYGEN_LINUX_PATH+= ${S}/${TARGET_ARCH}/linux32
.endif
#
# generate the necessary targets
#
.for target in ${ALL}
${target}: mfiles ${.OBJDIR}/${target}/${target}.tag
${.OBJDIR}/${target}/${target}.tag:
@cd ${.OBJDIR} && \
env DOXYGEN_INCLUDE_PATH=${.CURDIR} \
DOXYGEN_SRC_PATH=${S} \
DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \
DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include" \
DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \
DOXYGEN_LINUX_PATH=${DOXYGEN_LINUX_PATH} \
doxygen ${.CURDIR}/Doxyfile-${target}
@echo "API docs for ${target} are now available in ${.OBJDIR}/${target}/." | /usr/bin/fmt
pdf-${target}: ${.OBJDIR}/${target}/${target}.tag
@cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
@echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt
CLEANDIRS+= ${DOXYGEN_DEST_PATH}/${target}
CLEANDIRS+= ${.OBJDIR}/${target}/
CLEANFILES+= ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
clean-${target}:
rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target}
.endfor
.for file in ${MFILES}
CLEANDIRS+= ${.OBJDIR}/${file:T:S/.m$/.h/}
${.OBJDIR}/${file:T:S/.m$/.h/}: ${S}/${file}
cd ${.OBJDIR}; ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h
.endfor
#
# update target for the config files {config syntax change}
#
update-doxys:
.for config_file in ${_ALL}
@doxygen -u ${config_file}
.endfor
.include "Dependencies"
.include <bsd.obj.mk>

View File

@ -0,0 +1,32 @@
The kernel subsystem API documentation generation framework.
--------------------------------------------------------------
For every Doxyfile-(.*) the Makefile adds the public targets $1, pdf-$1 and
clean-$1. For e.g. Doxyfile-dev_pci this translates to the targets dev_pci,
pdf-dev_pci and clean-dev_pci.
Additionally, the targets 'all', 'pdf-all' and 'clean' to generate or remove
the documentation for all targets are available.
The file 'Dependencies' contains dependencies for the .tag files.
To add another part to the documentation just copy a Doxyfile and add
the necessary dependencies to the file 'Dependencies'.
The following environment variables can be used in the Doxyfile:
- DOXYGEN_SRC_PATH (/usr/src/sys)
- DOXYGEN_DEST_PATH (where the docs are generated)
- DOXYGEN_TARGET_ARCH (${TARGET_ARCH} if set, else ${MACHINE_ARCH})
For the PDF generation you may have to change some limits in the latex
configuration (the build may fail and an error about e.g. "pool size" is
shown), for print/teTeX this is done in
/usr/local/share/texmf/web2c/texmf.cnf
Programs needed to generate the API docs:
- devel/doxygen
- print/teTeX
- graphics/graphviz
--
$FreeBSD$

View File

@ -0,0 +1,266 @@
# Doxyfile 1.4.1
# $FreeBSD$
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NUMBER =
CREATE_SUBDIRS = YES
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.dox \
*.C \
*.CC \
*.C++ \
*.II \
*.I++ \
*.H \
*.HH \
*.H++ \
*.CS \
*.PHP \
*.PHP3 \
*.M \
*.MM
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */.\#*
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = YES
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH = $(DOXYGEN_SRC_INCLUDE_PATH) .
INCLUDE_FILE_PATTERNS = *.h
PREDEFINED = "_KERNEL" \
"__FreeBSD__=7" \
"__${TARGET_ARCH}__=1" \
"__${TARGET_ARCH}=1"
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO