# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = config.h src
+INPUT = doc/manual \
+ src \
+ config.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
FILE_PATTERNS = *.h \
- *.c
+ *.c \
+ *.txt
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
man_MANS = openocd.1
EXTRA_DIST = openocd.1
+dist-hook:
+ mkdir $(distdir)/manual
+ cp -p $(srcdir)/manual/*.txt $(distdir)/manual
+
MAINTAINERCLEANFILES = Makefile.in mdate-sh texinfo.tex
--- /dev/null
+/** @page appdocs OpenOCD Application APIs
+
+The top-level APIs in the OpenOCD library allow applications to integrate
+all of the low-level functionality using a set of simple function calls.
+
+These function calls do not exist in a re-usable form, but
+contributions to create and document them will be welcome.
+
+ */
--- /dev/null
+/** @page flashdocs OpenOCD Flash APIs
+
+OpenOCD provides its Flash APIs for developers to support different
+types of flash devices, some of which are built-in to target devices
+while others may be connected via standard memory interface (e.g. CFI,
+FMI, etc.).
+
+The Flash module provides the following APIs:
+
+ - @subpage flashcfi
+ - @subpage flashnand
+ - @subpage flashtarget
+
+This section needs to be expanded.
+
+*/
+
+
+/** @page flashcfi OpenOCD CFI Flash API
+
+This section needs to be expanded to describe OpenOCD's CFI Flash API.
+
+*/
+
+/** @page flashnand OpenOCD NAND Flash API
+
+This section needs to be expanded to describe OpenOCD's NAND Flash API.
+
+*/
+
+/** @page flashtarget OpenOCD Target Flash API
+
+This section needs to be expanded to describe OpenOCD's Target Flash API.
+
+*/
--- /dev/null
+/** @page helperdocs OpenOCD Helper APIs
+
+OpenOCD uses several low-level APIs as the foundation for high-level APIs:
+
+ - @subpage helperporting
+ - @subpage helperjim
+ - @subpage helpercommand
+ - @subpage helperlogging
+ - @subpage helperbuffers
+
+This section needs to be expanded.
+
+ */
+
+/** @page helperporting OpenOCD Types/Portability APIs
+
+This section needs to be expanded to describe OpenOCD's type and
+portability API.
+
+ */
+
+/** @page helperjim OpenOCD Jim API
+
+The Jim API provides access to a small-footprint TCL implementation.
+
+Visit http://jim.berlios.de/ for more information on Jim.
+
+This section needs to be expanded to describe OpenOCD's Jim API.
+
+ */
+
+/** @page helpercommand OpenOCD Command API
+
+This section needs to be expanded to describe OpenOCD's Command API.
+
+ */
+
+/** @page helperlogging OpenOCD Logging API
+
+This section needs to be expanded to describe OpenOCD's Logging API.
+
+ */
+
+/** @page helperbuffers OpenOCD Byte Buffer API
+
+This section needs to be expanded to describe OpenOCD's Byte Buffer API.
+
+ */
--- /dev/null
+/** @page jtagdocs OpenOCD JTAG APIs
+
+This document contains @subpage jtagprimer, which introduces the
+IEEE JTAG interface.
+
+The OpenOCD JTAG library API covers several functional areas:
+
+ - @subpage jtagcable
+ - @subpage jtagtap
+ - @subpage jtagmdriver
+ - @subpage jtagdriver
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagcable OpenOCD JTAG Cable API
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagtap OpenOCD JTAG TAP API
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagmdriver OpenOCD JTAG Interface API
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagdriver OpenOCD JTAG Driver API
+
+This section needs to be expanded.
+
+ */
--- /dev/null
+/** @mainpage OpenOCD Reference Manual
+
+The @ref primer page provides introductory materials for new developers.
+
+The @ref oocd page explains how the code has been organized into layers
+of APIs and gives an overview of how they fit together.
+
+ */
+
+/** @page oocd OpenOCD Architecture
+
+The OpenOCD library consists of several APIs that build together to
+provide the support functionality. The following list shows how these
+modules are stacked in the current implementation (from bottom to top):
+
+- @subpage helperdocs
+ - @ref helperporting
+ - @ref helperjim
+ - @ref helpercommand
+ - @ref helperlogging
+- @subpage jtagdocs
+ - @ref jtagcable
+ - @ref jtagtap
+ - @ref jtagmdriver
+ - @ref jtagdriver
+- @subpage targetdocs
+ - @ref targetarm
+ - @ref targetnotarm
+ - @ref targetregister
+ - @ref targetimage
+ - @ref targettrace
+- @subpage flashdocs
+ - @ref flashcfi
+ - @ref flashnand
+ - @ref flashtarget
+- @subpage serverdocs
+ - @ref servergdb
+ - @ref servertelnet
+ - @ref serverhttp
+- @subpage appdocs
+
+Obviously, there are some nuances to the stack that are not shown by
+this linear list of layers.
+
+ */
--- /dev/null
+/** @page serverdocs OpenOCD Server APIs
+
+OpenOCD provides support for implementing different types of servers.
+Presently, the following servers have APIs that can be used.
+
+ - @subpage servergdb
+ - @subpage servertelnet
+ - @subpage serverhttp
+
+This section needs to be expanded.
+
+ */
+
+/** @page servergdb OpenOCD GDB Server API
+
+This section needs to be expanded.
+
+ */
+
+/** @page servertelnet OpenOCD Telnet Server API
+
+This section needs to be expanded.
+
+ */
+
+/** @page serverhttp OpenOCD HTTP Server API
+
+This section needs to be expanded.
+
+ */
--- /dev/null
+/** @page targetdocs OpenOCD Target APIs
+
+OpenOCD provides its Target APIs to allow developers to provide trace and
+debugging support for specific device targets. These primarily consist of
+ARM cores, but other types have been supported. New targets should be
+developed by following or using these APIs.
+
+The Target Support module contains APIs that cover several functional areas:
+
+ - @subpage targetarm
+ - @subpage targetnotarm
+ - @subpage targetregister
+ - @subpage targetimage
+ - @subpage targettrace
+
+This section needs to be expanded.
+
+*/
+
+/** @page targetarm OpenOCD ARM Targets
+
+This section needs to describe OpenOCD's ARM target support.
+
+ */
+
+/** @page targetnotarm OpenOCD Non-ARM Targets
+
+This section needs to describe OpenOCD's non-ARM target support.
+
+ */
+
+/** @page targetregister OpenOCD Target Register API
+
+This section needs to describe OpenOCD's Target Register API, as
+provided by 'src/target/register.h'.
+
+ */
+
+/** @page targetimage OpenOCD Target Image API
+
+This section needs to describe OpenOCD's Target Image API, as provided
+by 'src/target/image.h'.
+
+ */
+
+/** @page targettrace OpenOCD Target Trace API
+
+This section needs to describe OpenOCD's Target Trace API, as provided
+by 'src/target/trace.h'.
+
+ */