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

# Doxygen file for a GDBserver cross-reference.
# 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/>.

@INCLUDE = Doxyfile-base

PROJECT_NAME = "GDBserver"

# Override the general include path.

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

# Include just the directories that go into GDBserver.

INPUT = @srcdir@/../gdbserver @srcdir@/../common @srcdir@/../nat

# Override the generic exclude list.
# gdbreplay is its own program, avoid duplicate symbols.

EXCLUDE = @srcdir@/../gdbserver/gdbreplay.c

HTML_OUTPUT = ./doxy/gdbserver

# Build a full cross-reference.

REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = NO

EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
