# -*- mode: conf; -*-

# Doxyfile for Doxygen 1.7.1

# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for GNU Octave.
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
#       TAG = value [value, ...]
# For lists items can also be appended using:
#       TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------

# This tag specifies the encoding used for all characters in the
# config file that follow. We don't use anything but ASCII, but
# there's no problem using UTF-8 from now on

DOXYFILE_ENCODING      = UTF-8

# Who we are. :-)

PROJECT_NAME           = "GNU Octave"

PROJECT_BRIEF          =  "A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab"

# The public stable API version (unrelated to the internal API
# version).

PROJECT_NUMBER         = @PACKAGE_VERSION@

# Our logo!

PROJECT_LOGO           = @top_srcdir@/doc/icons/octave-logo.png

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.

OUTPUT_DIRECTORY       = @abs_top_builddir@/doc

# Create 4096 sub-directories (in 2 levels) under the output directory
# of each output format and will distribute the generated files over
# these directories. Enabling this option is useful for us, since
# feeding doxygen a huge amount of source files would put all
# generated files in the same directory would otherwise cause
# performance problems for the file system.

CREATE_SUBDIRS         = YES

# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written.

OUTPUT_LANGUAGE        = English

# Include brief member descriptions after the members that are listed
# in the file and class documentation (similar to JavaDoc). Set to NO
# to disable this.

BRIEF_MEMBER_DESC      = YES

# Prepend the brief description of a member or function before the
# detailed description. Note: if both HIDE_UNDOC_MEMBERS and
# BRIEF_MEMBER_DESC are set to NO, the brief descriptions will be
# completely suppressed.

REPEAT_BRIEF           = YES

# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.

ALWAYS_DETAILED_SEC    = NO

# Show inherited members as if they were part of the current class

INLINE_INHERITED_MEMB  = YES

# Prepend the full path before files name in the file list and in the
# header files.

FULL_PATH_NAMES        = YES

# Remove from the full path names the absolute prefix

STRIP_FROM_PATH        = @top_srcdir@

# Interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description (without needing the @brief
# command).

JAVADOC_AUTOBRIEF      = YES

# Interpret the first line (until the first dot) of a Qt-style comment
# as the brief descriptio (without needing the \brief command).

QT_AUTOBRIEF           = NO

# Undocumented member inherits the documentation from any documented
# member that it re-implements.

INHERIT_DOCS           = YES

# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
# a new page for each member. If set to NO, the documentation of a member will
# be part of the file/class/namespace that contains it.

SEPARATE_MEMBER_PAGES  = NO

# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
# We shouldn't have any tabs in the source code to begin with, however.

TAB_SIZE               = 2

# Figure out C++ stdlib classes without needing to parse those files.

BUILTIN_STL_SUPPORT    = YES

#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------

# Assume all entities in documentation are documented, even if no
# documentation was available.

EXTRACT_ALL            = YES

# Include all private members of a class.

EXTRACT_PRIVATE        = YES

# Include  all static members of a file.

EXTRACT_STATIC         = YES

# Include classes (and structs) defined locally in source files in the
# documentation.

EXTRACT_LOCAL_CLASSES  = YES

# We have very few namespaces, so show the ones we have

SHOW_NAMESPACES        = YES

# We don't use namespaces, but if we did, this would extract the
# anonymous one.

EXTRACT_ANON_NSPACES   = YES

# Hide internal docs, those with the \internal command.

INTERNAL_DOCS          = NO

# Case-sensitive filenames

CASE_SENSE_NAMES       = YES

# List include files with double quotes in the documentation rather
# than with sharp brackets.

FORCE_LOCAL_INCLUDES   = YES

# Show members alphabetically

SORT_MEMBER_DOCS       = YES

# Also sort the brief descriptions

SORT_BRIEF_DOCS        = YES

# Put ctors first.

SORT_MEMBERS_CTORS_1ST = YES

#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------

# On by default, but let's be explicit

ENABLE_PREPROCESSING   = YES

# Expand all macros

MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO

# So that features that are behind #ifdef HAVE_FOO macros get processed by Doxygen

PREDEFINED = HAVE_ARPACK=1          \
             HAVE_CHOLMOD=1         \
             HAVE_CCOLAMD=1         \
             HAVE_CURL=1            \
             HAVE_CXSPARSE=1        \
             HAVE_FFTW=1            \
             HAVE_FFTW3=1           \
             HAVE_FFTW3F=1          \
             HAVE_FFTW3F_THREADS=1  \
             HAVE_FFTW3_THREADS=1   \
             HAVE_FREETYPE=1        \
             HAVE_GLPK=1            \
             HAVE_HDF5=1            \
             HAVE_LLVM=1            \
             HAVE_MAGICK=1          \
             HAVE_OPENMP=1          \
             HAVE_PCRE_H=1          \
             HAVE_PCRE_COMPILE=1    \
             HAVE_QHULL=1           \
             HAVE_QRUPDATE=1        \
             HAVE_QRUPDATE_LUU=1    \
             HAVE_QT=1              \
             HAVE_UMFPACK=1         \
             HAVE_X_WINDOWS=1       \
             HAVE_ZLIB=1

#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------

# Which directories contain Octave source code

INPUT                  = @top_srcdir@/src/ @top_srcdir@/liboctave/
INPUT                 += @top_srcdir@/libinterp @top_srcdir@/libgui

# Search subdirectories for input.

RECURSIVE              = YES

# Our examples.

EXAMPLE_PATH           = @top_srcdir@/examples/

# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.

EXAMPLE_PATTERNS       =

# There are no extra C++ files in the examples subdir

EXAMPLE_RECURSIVE      = NO

#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------

# Generate a list of source files will be generated.

SOURCE_BROWSER         = YES

# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.

INLINE_SOURCES         = NO

# Don't hide the special Doxygen comment blocks

STRIP_CODE_COMMENTS    = NO

# For each documented function, list all documented functions
# referencing it.

REFERENCED_BY_RELATION = YES

# For each documented function all documented entities called/used by
# that function will be listed.

REFERENCES_RELATION    = YES

# References link to documentation, not source code.

REFERENCES_LINK_SOURCE = NO

#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------

# Generate HTML

GENERATE_HTML          = YES

# i.e. @abs_top_builddir@/doc/doxyhtml

HTML_OUTPUT            = doxyhtml

#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------

# No LaTeX

GENERATE_LATEX         = NO

#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------

# Show undocumented relations

HIDE_UNDOC_RELATIONS   = NO

# Use dot from graphviz to generate class diagrams.

HAVE_DOT               = YES

# Remove intermediate dot files.

DOT_CLEANUP            = YES

# Some of our dependency graphs are really huge...

DOT_GRAPH_MAX_NODES    = 100