# Copyright (C) 2014 Free Software Foundation, Inc.

# Base doxyfile for GDB.
# This file is part of GDB.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# The definitions in this file are shared by several different
# renditions of GDB documentation, and should reflect common
# GDB practices and assumptions.

# (Note that we are not following a common doxygen practice, which is
# to include the entirety of doxygen's large default Doxyfile, and
# edit it slightly for the project.  Instead, these Doxyfile fragments
# include only parameter settings that differ from the default.)

PROJECT_NAME = "GDB"

# Start out with an everything-is-documented assumption.  (Later
# on we may want to limit to only specific areas.)

EXTRACT_ALL = YES

# These are intended for GDB developers, so include anything flagged
# "internal".

INTERNAL_DOCS = YES

# Always dig through subdirectories.

RECURSIVE = YES

INCLUDE_PATH = @srcdir@/../ @srcdir@/../common @srcdir@/../../include/

# Exclude testsuite and other subdirectories that do not have any code
# that goes into GDB or GDBserver.

EXCLUDE = @srcdir@/../gdbserver/ \
                   ../gdbserver/ \
          @srcdir@/../gnulib/ \
		   ../build-gnulib/ \
          @srcdir@/../testsuite/ \
		   ../testsuite/ \
          @srcdir@/../stubs/

# Scrub out any stuff that might be a problem for Doxygen.

INPUT_FILTER =  @srcdir@/filter-for-doxygen

# Comment this out (or set to YES) to see lots of finicky complaints.

WARN_IF_DOC_ERROR = NO

# By default, HTML will be generated.

# We are missing javascript to make this work?
#HTML_DYNAMIC_SECTIONS = YES

# In 1.8 only?
#HTML_INDEX_NUM_ENTRIES = 10

# We never have a use for a LaTex version of this.

GENERATE_LATEX = NO

# We always want to get to sources easily.

SOURCE_BROWSER = YES

FORCE_LOCAL_INCLUDES = YES

# We would like to have full macro expansion, but it's very slow.

ENABLE_PREPROCESSING = YES
#MACRO_EXPANSION = YES
#EXPAND_ONLY_PREDEF = YES
#PREDEFINED = __attribute__(x)= __extension__=

# Suppress the huge volume of chatter.

QUIET = YES
