# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
# 1999, 2000, 2001, 2002 Free Software Foundation, Inc.

# 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 2 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

prefix = @prefix@
exec_prefix = @exec_prefix@

host_alias = @host_alias@
target_alias = @target_alias@
program_transform_name = @program_transform_name@
bindir = @bindir@
libdir = @libdir@
tooldir = $(libdir)/$(target_alias)

datadir = @datadir@
mandir = @mandir@
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
infodir = @infodir@
htmldir = $(prefix)/html
includedir = @includedir@

# This can be referenced by `INTLDEPS' as computed by CY_GNU_GETTEXT.
top_builddir = .

SHELL = @SHELL@
EXEEXT = @EXEEXT@

AWK = @AWK@
LN_S = @LN_S@

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@

AR = @AR@
AR_FLAGS = qv
RANLIB = @RANLIB@
DLLTOOL = @DLLTOOL@
WINDRES = @WINDRES@
MIG = @MIG@

# Flags that describe where you can find the termcap library.
# This can be overridden in the host Makefile fragment file.
TERMCAP = @TERM_LIB@

# If you are compiling with GCC, make sure that either 1) You have the
# fixed include files where GCC can reach them, or 2) You use the
# -traditional flag.  Otherwise the ioctl calls in inflow.c
# will be incorrectly compiled.  The "fixincludes" script in the gcc
# distribution will fix your include files up.
CC=@CC@

# Directory containing source files.
srcdir = @srcdir@
VPATH = @srcdir@

YACC=@YACC@

YLWRAP = $(srcdir)/../ylwrap

# where to find makeinfo, preferably one designed for texinfo-2
MAKEINFO=makeinfo

MAKEHTML = texi2html

MAKEHTMLFLAGS = -glossary -menu -split_chapter

# Set this up with gcc if you have gnu ld and the loader will print out
# line numbers for undefined references.
#CC_LD=gcc -static
CC_LD=$(CC)

# Where is our "include" directory?  Typically $(srcdir)/../include.
# This is essentially the header file directory for the library
# routines in libiberty.
INCLUDE_DIR =  $(srcdir)/../include
INCLUDE_CFLAGS = -I$(INCLUDE_DIR)

# Where is the "-liberty" library?  Typically in ../libiberty.
LIBIBERTY = ../libiberty/libiberty.a

# Configured by the --with-mmalloc option to configure.
MMALLOC = @MMALLOC@
MMALLOC_CFLAGS = @MMALLOC_CFLAGS@

# Configured by the --with-uiout option to configure.
UIOUT_CFLAGS = @UIOUT_CFLAGS@

# Where is the BFD library?  Typically in ../bfd.
BFD_DIR = ../bfd
BFD = $(BFD_DIR)/libbfd.a
BFD_SRC = $(srcdir)/$(BFD_DIR)
BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC)

# Where is the READLINE library?  Typically in ../readline.
READLINE_DIR = ../readline
READLINE = $(READLINE_DIR)/libreadline.a
READLINE_SRC = $(srcdir)/$(READLINE_DIR)
READLINE_CFLAGS = -I$(READLINE_SRC)/..

WARN_CFLAGS = @WARN_CFLAGS@
WERROR_CFLAGS = @WERROR_CFLAGS@
GDB_WARN_CFLAGS = $(WARN_CFLAGS)
GDB_WERROR_CFLAGS = $(WERROR_CFLAGS)

# Where is the INTL library?  Typically in ../intl.
INTL_DIR = ../intl
INTL = @INTLLIBS@
INTL_DEPS = @INTLDEPS@
INTL_SRC = $(srcdir)/$(INTL_DIR)
INTL_CFLAGS = -I$(INTL_DIR) -I$(INTL_SRC)

#
# CLI sub directory definitons
#
SUBDIR_CLI_OBS = \
	cli-decode.o cli-script.o cli-cmds.o cli-setshow.o cli-utils.o
SUBDIR_CLI_SRCS = \
	cli/cli-decode.c cli/cli-script.c cli/cli-cmds.c cli/cli-setshow.c \
	cli/cli-utils.c
SUBDIR_CLI_DEPS =
SUBDIR_CLI_INITS = \
	$(SUBDIR_CLI_SRCS)
SUBDIR_CLI_LDFLAGS=
SUBDIR_CLI_CFLAGS=
SUBDIR_CLI_ALL=
SUBDIR_CLI_CLEAN=
SUBDIR_CLI_INSTALL=
SUBDIR_CLI_UNINSTALL=

#
# MI sub directory definitons
#
SUBDIR_MI_OBS = \
	mi-out.o mi-console.o \
	mi-cmds.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o \
	mi-cmd-disas.o \
	mi-main.o mi-parse.o mi-getopt.o
SUBDIR_MI_SRCS = \
	mi/mi-out.c mi/mi-console.c \
	mi/mi-cmds.c \
	mi/mi-cmd-var.c mi/mi-cmd-break.c mi/mi-cmd-stack.c \
	mi/mi-cmd-disas.c \
	mi/mi-main.c mi/mi-parse.c mi/mi-getopt.c
SUBDIR_MI_DEPS =
SUBDIR_MI_INITS = \
	$(SUBDIR_MI_SRCS)
SUBDIR_MI_LDFLAGS=
SUBDIR_MI_CFLAGS= \
	-DMI_OUT=1
SUBDIR_MI_ALL=
SUBDIR_MI_CLEAN=
SUBDIR_MI_INSTALL=
SUBDIR_MI_UNINSTALL=

#
# TUI sub directory definitions
#
SUBDIR_TUI_OBS = \
	tui-file.o tui.o tuiData.o tuiSource.o tuiStack.o tuiIO.o \
	tuiGeneralWin.o tuiLayout.o tuiWin.o tuiCommand.o \
	tuiDisassem.o tuiSourceWin.o tuiRegs.o tuiDataWin.o \
	tui-out.o tui-hooks.o
SUBDIR_TUI_SRCS = \
	tui/tui-file.c tui/tui.c tui/tuiData.c tui/tuiSource.c \
	tui/tuiStack.c tui/tuiIO.c \
	tui/tuiGeneralWin.c tui/tuiLayout.c \
	tui/tuiWin.c tui/tuiCommand.c \
	tui/tuiDisassem.c tui/tuiSourceWin.c \
	tui/tuiRegs.c tui/tuiDataWin.c tui/tui-out.c tui/tui-hooks.c
SUBDIR_TUI_DEPS =
SUBDIR_TUI_INITS = \
	$(SUBDIR_TUI_SRCS)
SUBDIR_TUI_LDFLAGS=
SUBDIR_TUI_CFLAGS= \
	-DTUI=1 -I${srcdir}/tui
SUBDIR_TUI_ALL=
SUBDIR_TUI_CLEAN=
SUBDIR_TUI_INSTALL=
SUBDIR_TUI_UNINSTALL=



# Opcodes currently live in one of two places.  Either they are in the
# opcode library, typically ../opcodes, or they are in a header file
# in INCLUDE_DIR.
# Where is the "-lopcodes" library, with (some of) the opcode tables and
# disassemblers?
OPCODES = ../opcodes/libopcodes.a
# Where are the other opcode tables which only have header file
# versions?
OP_INCLUDE = $(INCLUDE_DIR)/opcode
OPCODES_CFLAGS = -I$(OP_INCLUDE)

# The simulator is usually nonexistent; targets that include one
# should set this to list all the .o or .a files to be linked in.
SIM =

WIN32LIBS = @WIN32LIBS@

# Where is the TCL library?  Typically in ../tcl.
LIB_INSTALL_DIR = $(libdir)
# This variable is needed when doing dynamic linking.
LIB_RUNTIME_DIR = $(libdir)
TCL = @TCL_LD_SEARCH_FLAGS@ @TCL_BUILD_LIB_SPEC@
TCL_CFLAGS = @TCLHDIR@
TCL_DEPS = @TCL_DEPS@
GDBTKLIBS = @GDBTKLIBS@
# Extra flags that the GDBTK files need:
GDBTK_CFLAGS = @GDBTK_CFLAGS@

# Where is the TK library?  Typically in ../tk.
TK = @TK_BUILD_LIB_SPEC@
TK_CFLAGS = @TKHDIR@ @TK_BUILD_INCLUDES@
TK_DEPS = @TK_DEPS@

# Where is Itcl?  Typically in ../itcl/itcl.
ITCL_CFLAGS = @ITCLHDIR@
ITCL = @ITCLLIB@
ITCL_DEPS = @ITCL_DEPS@ 

# Where is Itk?  Typically in ../itcl/itk.
ITK_CFLAGS = @ITKHDIR@
ITK = @ITKLIB@
ITK_DEPS = @ITK_DEPS@ 

# Where is Tix?  Typically in ../tix.
TIX_CFLAGS = @TIXHDIR@
TIX = @TIXLIB@
TIX_DEPS = @TIX_DEPS@

X11_CFLAGS = @TK_XINCLUDES@
X11_LDFLAGS =
X11_LIBS =

WIN32LDAPP = @WIN32LDAPP@

LIBGUI = @LIBGUI@
GUI_CFLAGS_X = @GUI_CFLAGS_X@
IDE_CFLAGS=$(GUI_CFLAGS_X) $(IDE_CFLAGS_X)

# The version of gdbtk we're building. This should be kept
# in sync with GDBTK_VERSION and friends in gdbtk.h.
GDBTK_VERSION = 1.0
GDBTK_LIBRARY = $(datadir)/insight$(GDBTK_VERSION)

# Gdbtk requires an absolute path to the source directory or
# the testsuite won't run properly.
GDBTK_SRC_DIR = @GDBTK_SRC_DIR@

SUBDIR_GDBTK_OBS = \
	gdbtk.o gdbtk-bp.o gdbtk-cmds.o gdbtk-hooks.o \
	gdbtk-register.o gdbtk-stack.o gdbtk-varobj.o gdbtk-wrapper.o
SUBDIR_GDBTK_SRCS = \
	gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-bp.c \
	gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c \
	gdbtk/generic/gdbtk-register.c gdbtk/generic/gdbtk-stack.c \
	gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c
SUBDIR_GDBTK_DEPS = \
	$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)
SUBDIR_GDBTK_INITS = gdbtk/generic/gdbtk.c
SUBDIR_GDBTK_LDFLAGS=
SUBDIR_GDBTK_CFLAGS= -DGDBTK
SUBDIR_GDBTK_ALL=
SUBDIR_GDBTK_CLEAN=
SUBDIR_GDBTK_INSTALL= install-gdbtk
SUBDIR_GDBTK_UNINSTALL= 

CONFIG_OBS= @CONFIG_OBS@
CONFIG_LIB_OBS= @CONFIG_LIB_OBS@
CONFIG_SRCS= @CONFIG_SRCS@
CONFIG_DEPS= @CONFIG_DEPS@
CONFIG_INITS= @CONFIG_INITS@
CONFIG_LDFLAGS = @CONFIG_LDFLAGS@
ENABLE_CFLAGS= @ENABLE_CFLAGS@
CONFIG_ALL= @CONFIG_ALL@
CONFIG_CLEAN= @CONFIG_CLEAN@
CONFIG_CLEAN= @CONFIG_CLEAN@
CONFIG_INSTALL = @CONFIG_INSTALL@
CONFIG_UNINSTALL = @CONFIG_UNINSTALL@

# -I. for config files.
# -I$(srcdir) for gdb internal headers.
# -I$(srcdir)/config for more generic config files.

# It is also possible that you will need to add -I/usr/include/sys if
# your system doesn't have fcntl.h in /usr/include (which is where it
# should be according to Posix).
DEFS = @DEFS@
GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config $(DEFS)

# M{H,T}_CFLAGS, if defined, have host- and target-dependent CFLAGS
# from the config directory.
GLOBAL_CFLAGS = $(MT_CFLAGS) $(MH_CFLAGS)
#PROFILE_CFLAGS = -pg

# CFLAGS is specifically reserved for setting from the command line
# when running make.  I.E.  "make CFLAGS=-Wmissing-prototypes".
CFLAGS = @CFLAGS@

# Need to pass this to testsuite for "make check".  Probably should be
# consistent with top-level Makefile.in and gdb/testsuite/Makefile.in
# so "make check" has the same result no matter where it is run.
CXXFLAGS = -g -O

# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
INTERNAL_WARN_CFLAGS = \
	$(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \
	$(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \
	$(BFD_CFLAGS) $(MMALLOC_CFLAGS) $(INCLUDE_CFLAGS) \
	$(INTL_CFLAGS) $(ENABLE_CFLAGS) $(UIOUT_CFLAGS) \
	$(GDB_WARN_CFLAGS)
INTERNAL_CFLAGS = $(INTERNAL_WARN_CFLAGS) $(GDB_WERROR_CFLAGS)

# LDFLAGS is specifically reserved for setting from the command line
# when running make.

# Profiling options need to go here to work.
# I think it's perfectly reasonable for a user to set -pg in CFLAGS
# and have it work; that's why CFLAGS is here.
INTERNAL_LDFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) $(MH_LDFLAGS) $(LDFLAGS) $(CONFIG_LDFLAGS) @HLDFLAGS@
HLDENV = @HLDENV@

# If your system is missing alloca(), or, more likely, it's there but
# it doesn't work, then refer to libiberty.

# Libraries and corresponding dependencies for compiling gdb.
# {X,T}M_CLIBS, defined in *config files, have host- and target-dependent libs.
# TERMCAP comes after readline, since readline depends on it.
# MMALLOC comes after anything else that might want an allocation function.
# LIBIBERTY appears twice on purpose.
# If you have the Cygnus libraries installed,
# you can use 'CLIBS=$(INSTALLED_LIBS)' 'CDEPS='
INSTALLED_LIBS=-lbfd -lreadline -lopcodes -liberty \
	$(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \
	-lmmalloc -lintl -liberty
CLIBS = $(SIM) $(BFD) $(READLINE) $(OPCODES) $(INTL) $(LIBIBERTY) \
	$(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \
	$(MMALLOC) $(LIBIBERTY) $(WIN32LIBS)
CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \
	$(OPCODES) $(MMALLOC) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS)

ADD_FILES = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
ADD_DEPS = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)

DIST=gdb

LINT=/usr/5bin/lint
LINTFLAGS= $(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \
	$(BFD_CFLAGS) $(MMALLOC_CFLAGS) $(INCLUDE_CFLAGS) \
	$(INTL_CFLAGS)

RUNTEST = `if [ -f $${rootsrc}/../dejagnu/runtest ] ; then \
		echo $${rootsrc}/../dejagnu/runtest ; else echo runtest; \
	   fi`

RUNTESTFLAGS=

# This is ser-unix.o for any system which supports a v7/BSD/SYSV/POSIX
# interface to the serial port.  Hopefully if get ported to OS/2, VMS,
# etc., then there will be (as part of the C library or perhaps as
# part of libiberty) a POSIX interface.  But at least for now the
# host-dependent makefile fragment might need to use something else
# besides ser-unix.o
SER_HARDWIRE = @SER_HARDWIRE@

# The `remote' debugging target is supported for most architectures,
# but not all (e.g. 960)
REMOTE_OBS = remote.o dcache.o remote-utils.o tracepoint.o ax-general.o ax-gdb.o

# This is remote-sim.o if a simulator is to be linked in.
SIM_OBS =

ANNOTATE_OBS = annotate.o

# Host and target-dependent makefile fragments come in here.
@host_makefile_frag@
@target_makefile_frag@
# End of host and target-dependent makefile fragments

# Possibly ignore the simulator.  If the simulator is being ignored, 
# these expand into SIM= and SIM_OBJ=, overriding the entries from 
# target_makefile_frag
#
@IGNORE_SIM@
@IGNORE_SIM_OBS@

FLAGS_TO_PASS = \
	"prefix=$(prefix)" \
	"exec_prefix=$(exec_prefix)" \
	"infodir=$(infodir)" \
	"against=$(against)" \
	"AR=$(AR)" \
	"AR_FLAGS=$(AR_FLAGS)" \
	"CC=$(CC)" \
	"CFLAGS=$(CFLAGS)" \
	"CHILLFLAGS=$(CHILLFLAGS)" \
	"CHILL=$(CHILL)" \
	"CHILL_LIB=$(CHILL_LIB)" \
	"CXX=$(CXX)" \
	"CXXFLAGS=$(CXXFLAGS)" \
	"DLLTOOL=$(DLLTOOL)" \
	"RANLIB=$(RANLIB)" \
	"MAKEINFO=$(MAKEINFO)" \
	"MAKEHTML=$(MAKEHTML)" \
	"MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"RUNTEST=$(RUNTEST)" \
	"RUNTESTFLAGS=$(RUNTESTFLAGS)"

# Flags that we pass when building the testsuite.

# empty for native, $(target_alias)/ for cross
target_subdir = @target_subdir@

CC_FOR_TARGET = ` \
  if [ -f $${rootme}/../gcc/xgcc ] ; then \
    if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \
      echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \
    else \
      echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/; \
    fi; \
  else \
    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
      echo $(CC); \
    else \
      t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
    fi; \
  fi`

CXX = gcc
CXX_FOR_TARGET = ` \
  if [ -f $${rootme}/../gcc/xgcc ] ; then \
    if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \
      echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \
    else \
      echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/; \
    fi; \
  else \
    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
      echo $(CXX); \
    else \
      t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
    fi; \
  fi`

CHILLFLAGS = $(CFLAGS)
CHILL = gcc
CHILL_FOR_TARGET = ` \
  if [ -f $${rootme}/../gcc/Makefile ] ; then \
    echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -L$${rootme}/../gcc/ch/runtime/; \
  else \
    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
      echo $(CC); \
    else \
      t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
    fi; \
  fi`
CHILL_LIB = ` \
  if [ -f $${rootme}/../gcc/ch/runtime/libchill.a ] ; then \
    echo $${rootme}/../gcc/ch/runtime/chillrt0.o \
      $${rootme}/../gcc/ch/runtime/libchill.a; \
  else \
      echo -lchill; \
  fi`

# The use of $$(x_FOR_TARGET) reduces the command line length by not
# duplicating the lengthy definition.
TARGET_FLAGS_TO_PASS = \
	"prefix=$(prefix)" \
	"exec_prefix=$(exec_prefix)" \
	"against=$(against)" \
	'CC=$$(CC_FOR_TARGET)' \
	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
	"CFLAGS=$(CFLAGS)" \
	"CHILLFLAGS=$(CHILLFLAGS)" \
	'CHILL=$$(CHILL_FOR_TARGET)' \
	"CHILL_FOR_TARGET=$(CHILL_FOR_TARGET)" \
	"CHILL_LIB=$(CHILL_LIB)" \
	'CXX=$$(CXX_FOR_TARGET)' \
	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
	"CXXFLAGS=$(CXXFLAGS)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"MAKEINFO=$(MAKEINFO)" \
	"MAKEHTML=$(MAKEHTML)" \
	"RUNTEST=$(RUNTEST)" \
	"RUNTESTFLAGS=$(RUNTESTFLAGS)"

# All source files that go into linking GDB.
# Links made at configuration time should not be specified here, since
# SFILES is used in building the distribution archive.

SFILES = ax-general.c ax-gdb.c bcache.c blockframe.c breakpoint.c \
	buildsym.c c-exp.y c-lang.c c-typeprint.c c-valprint.c \
	ch-exp.c ch-lang.c ch-typeprint.c ch-valprint.c coffread.c \
	complaints.c completer.c corefile.c cp-valprint.c dbxread.c \
	demangle.c dwarfread.c dwarf2read.c elfread.c environ.c eval.c \
	event-loop.c event-top.c \
	expprint.c f-exp.y f-lang.c f-typeprint.c f-valprint.c \
	findvar.c regcache.c gdbarch.c arch-utils.c gdbtypes.c \
	inf-loop.c infcmd.c inflow.c infrun.c language.c \
	kod.c kod-cisco.c \
	ui-out.c cli-out.c \
	varobj.c wrapper.c \
	jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \
	m2-exp.y m2-lang.c m2-typeprint.c m2-valprint.c main.c maint.c \
	memattr.c mem-break.c minsyms.c mipsread.c nlmread.c objfiles.c \
	p-exp.y p-lang.c p-typeprint.c p-valprint.c parse.c \
	printcmd.c remote.c remote-nrom.c scm-exp.c scm-lang.c \
	scm-valprint.c signals.c source.c stabsread.c stack.c symfile.c \
	symmisc.c symtab.c linespec.c target.c thread.c top.c tracepoint.c \
	typeprint.c utils.c valarith.c valops.c valprint.c values.c \
	serial.c ser-unix.c mdebugread.c os9kread.c \
	tui/tui.c tui/tui.h tui/tuiCommand.c tui/tuiCommand.h \
	tui/tuiData.c tui/tuiData.h tui/tuiDataWin.c tui/tuiDataWin.h \
	tui/tuiDisassem.c tui/tuiDisassem.h tui/tuiGeneralWin.c \
	tui/tuiGeneralWin.h tui/tuiIO.c tui/tuiIO.h tui/tuiLayout.c \
	tui/tuiLayout.h tui/tuiRegs.c tui/tuiRegs.h tui/tuiSource.c \
	tui/tuiSource.h tui/tuiSourceWin.c tui/tuiSourceWin.h \
	tui/tuiStack.c tui/tuiStack.h tui/tuiWin.c tui/tuiWin.h \
	tui/tui-file.h tui/tui-file.c tui/tui-out.c tui/tui-hooks.c \
	ui-file.h ui-file.c \
	frame.c doublest.c \
	gnu-v2-abi.c gnu-v3-abi.c hpacc-abi.c cp-abi.c

LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c

# "system" headers.  Using these in dependencies is a rather personal
# choice. (-rich, summer 1993)
# (Why would we not want to depend on them?  If one of these changes in a 
# non-binary-compatible way, it is a real pain to remake the right stuff
# without these dependencies -kingdon, 13 Mar 1994)
getopt_h =	$(INCLUDE_DIR)/getopt.h
floatformat_h =	$(INCLUDE_DIR)/floatformat.h
bfd_h =		$(BFD_DIR)/bfd.h
dis_asm_h =	$(INCLUDE_DIR)/dis-asm.h 
remote-sim_h =	$(INCLUDE_DIR)/remote-sim.h
demangle_h =    $(INCLUDE_DIR)/demangle.h
obstack_h =     $(INCLUDE_DIR)/obstack.h

readline_headers = \
	$(READLINE_SRC)/chardefs.h \
	$(READLINE_SRC)/history.h \
	$(READLINE_SRC)/keymaps.h \
	$(READLINE_SRC)/readline.h

udiheaders = \
	$(srcdir)/29k-share/udi/udiproc.h \
	$(srcdir)/29k-share/udi/udiphcfg.h \
	$(srcdir)/29k-share/udi/udiphunix.h \
	$(srcdir)/29k-share/udi/udiptcfg.h \
	$(srcdir)/29k-share/udi/udipt29k.h \
	$(srcdir)/29k-share/udi/udisoc.h

xm_h =		@xm_h@
tm_h =		@tm_h@
nm_h =		@nm_h@

annotate_h =	annotate.h $(symtab_h) $(gdbtypes_h)
arch_utils_h =	arch-utils.h
ax_h = 		ax.h $(doublest_h)
bcache_h =	bcache.h
breakpoint_h =	breakpoint.h $(frame_h) $(value_h)
buildsym_h =	buildsym.h
c_lang_h =	c-lang.h $(value_h)
call_cmds_h =	call-cmds.h
cli_cmds_h =	$(srcdir)/cli/cli-cmds.h
cli_decode_h =	$(srcdir)/cli/cli-decode.h
cli_out_h =	cli-out.h
cli_script_h =	$(srcdir)/cli/cli-script.h
cli_setshow_h =	$(srcdir)/cli/cli-setshow.h
cli_utils_h =	$(srcdir)/cli/cli-utils.h
command_h =	command.h
complaints_h =	complaints.h
completer_h =	completer.h
cp_abi_h =	cp-abi.h
dcache_h =	dcache.h
defs_h =	defs.h $(xm_h) $(tm_h) $(nm_h) config.status config.h \
		gdbarch.h ui-file.h
doublest_h =	doublest.h $(floatformat_h)
dwarf2cfi_h =	dwarf2cfi.h
event_loop_h =  event-loop.h
event_top_h = 	event-top.h
expression_h =	expression.h $(doublest_h) $(symtab_h)
frame_h =	frame.h
gdb_h =		gdb.h
gdb_events_h =	gdb-events.h
gdb_stabs_h =	gdb-stabs.h
gdb_string_h =  gdb_string.h
gdbcmd_h =	gdbcmd.h $(command_h) $(ui_out_h)
gdbcore_h =	gdbcore.h $(bfd_h)
gdbthread_h =	gdbthread.h $(breakpoint_h)
gdbtypes_h =	gdbtypes.h
inf_loop_h =  	inf-loop.h
inferior_h =	inferior.h $(breakpoint_h)
language_h =	language.h
linespec_h =	linespec.h
memattr_h =     memattr.h
monitor_h =	monitor.h
objfiles_h =	objfiles.h
parser_defs_h =	parser-defs.h $(doublest_h)
regcache_h =	regcache.h
remote_h =	remote.h
remote_utils_h =  remote-utils.h $(target_h)
ser_unix_h =	ser-unix.h
serial_h =	serial.h
solist_h =	solist.h
source_h =	source.h
stabsread_h =	stabsread.h
symfile_h =	symfile.h
symtab_h =	symtab.h $(bcache_h)
target_h =      target.h $(bfd_h) $(symtab_h) $(dcache_h) $(memattr_h)
terminal_h =	terminal.h
top_h =		top.h
tracepoint_h =	tracepoint.h
typeprint_h =	typeprint.h
ui_out_h =      ui-out.h
valprint_h =	valprint.h
value_h =	value.h $(symtab_h) $(gdbtypes_h) $(expression_h) $(doublest_h)
varobj_h =      varobj.h $(symtab_h) $(gdbtypes_h)
version_h = 	version.h
wrapper_h =	wrapper.h
xcoffsolib_h =	xcoffsolib.h

# Header files that need to have srcdir added.  Note that in the cases
# where we use a macro like $(gdbcmd_h), things are carefully arranged
# so that each .h file is listed exactly once (M-x tags-search works
# wrong if TAGS has files twice).  Because this is tricky to get
# right, it is probably easiest just to list .h files here directly.

HFILES_NO_SRCDIR = bcache.h buildsym.h call-cmds.h coff-solib.h defs.h \
	dst.h environ.h $(gdbcmd_h) gdb.h gdbcore.h \
	gdb-stabs.h $(inferior_h) language.h minimon.h monitor.h \
	objfiles.h parser-defs.h serial.h solib.h \
	symfile.h stabsread.h target.h terminal.h typeprint.h xcoffsolib.h \
	c-lang.h ch-lang.h f-lang.h \
	jv-lang.h \
	m2-lang.h  p-lang.h \
	complaints.h valprint.h \
	29k-share/udi/udiids.h 29k-share/udi_soc nindy-share/b.out.h \
	nindy-share/block_io.h nindy-share/coff.h \
	nindy-share/env.h nindy-share/stop.h \
	vx-share/dbgRpcLib.h vx-share/ptrace.h vx-share/vxTypes.h \
	vx-share/vxWorks.h vx-share/wait.h vx-share/xdr_ld.h \
	vx-share/xdr_ptrace.h vx-share/xdr_rdb.h gdbthread.h \
	dcache.h remote-utils.h top.h somsolib.h

# Header files that already have srcdir in them, or which are in objdir.

HFILES_WITH_SRCDIR = $(udiheaders) ../bfd/bfd.h


# GDB "info" files, which should be included in their entirety
INFOFILES = gdb.info*

REMOTE_EXAMPLES = m68k-stub.c i386-stub.c sparc-stub.c rem-multi.shar

# {X,T,NAT}DEPFILES are something of a pain in that it's hard to
# default their values the way we do for SER_HARDWIRE; in the future
# maybe much of the stuff now in {X,T,NAT}DEPFILES will go into other
# variables analogous to SER_HARDWIRE which get defaulted in this
# Makefile.in

DEPFILES = $(TDEPFILES) $(SER_HARDWIRE) $(NATDEPFILES) \
	   $(REMOTE_OBS) $(SIM_OBS) $(CONFIG_LIB_OBS)

SOURCES = $(SFILES) $(ALLDEPFILES) $(YYFILES) $(CONFIG_SRCS)
# Don't include YYFILES (*.tab.c) because we already include *.y in SFILES,
# and it's more useful to see it in the .y file.
TAGFILES_NO_SRCDIR = $(SFILES) $(HFILES_NO_SRCDIR) $(ALLDEPFILES) \
	$(SUBDIR_CLI_SRCS)
TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR)

COMMON_OBS = version.o blockframe.o breakpoint.o findvar.o regcache.o \
	source.o values.o eval.o valops.o valarith.o valprint.o printcmd.o \
	symtab.o symfile.o symmisc.o linespec.o infcmd.o infrun.o \
	expprint.o environ.o stack.o thread.o \
	event-loop.o event-top.o inf-loop.o completer.o \
	gdbarch.o arch-utils.o gdbtypes.o copying.o $(DEPFILES) \
	memattr.o mem-break.o target.o parse.o language.o $(YYOBJ) buildsym.o \
	signals.o \
	kod.o kod-cisco.o \
	gdb-events.o \
	exec.o bcache.o objfiles.o minsyms.o maint.o demangle.o \
	dbxread.o coffread.o elfread.o \
	dwarfread.o dwarf2read.o mipsread.o stabsread.o corefile.o \
	c-lang.o ch-exp.o ch-lang.o f-lang.o \
	ui-out.o cli-out.o \
	varobj.o wrapper.o \
	jv-lang.o jv-valprint.o jv-typeprint.o \
	m2-lang.o p-lang.o p-typeprint.o p-valprint.o \
	scm-exp.o scm-lang.o scm-valprint.o complaints.o typeprint.o \
	c-typeprint.o ch-typeprint.o f-typeprint.o m2-typeprint.o \
	c-valprint.o cp-valprint.o ch-valprint.o f-valprint.o m2-valprint.o \
	nlmread.o serial.o mdebugread.o os9kread.o top.o utils.o \
	ui-file.o \
	frame.o doublest.o \
	gnu-v2-abi.o gnu-v3-abi.o hpacc-abi.o cp-abi.o

OBS = $(COMMON_OBS) $(ANNOTATE_OBS)

TSOBS = inflow.o

SUBDIRS = @SUBDIRS@

# For now, shortcut the "configure GDB for fewer languages" stuff.
YYFILES = c-exp.tab.c \
	jv-exp.tab.c \
	f-exp.tab.c m2-exp.tab.c p-exp.tab.c
YYOBJ = c-exp.tab.o \
	jv-exp.tab.o \
	f-exp.tab.o m2-exp.tab.o p-exp.tab.o

# Things which need to be built when making a distribution.

DISTSTUFF = $(YYFILES)

# Prevent Sun make from putting in the machine type.  Setting
# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1.
.c.o:
	$(CC) -c $(INTERNAL_CFLAGS) $<

all: gdb$(EXEEXT) $(CONFIG_ALL)
	@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do

installcheck:

# The check target can not use subdir_do, because subdir_do does not
# use TARGET_FLAGS_TO_PASS.
check: force
	@if [ -f testsuite/Makefile ]; then \
	  rootme=`pwd`; export rootme; \
	  rootsrc=`cd $(srcdir); pwd`; export rootsrc; \
	  cd testsuite; \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS) check; \
	else true; fi

info dvi install-info clean-info html install-html: force
	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do

gdb.z:gdb.1
	nroff -man $(srcdir)/gdb.1 | col -b > gdb.t 
	pack gdb.t ; rm -f gdb.t
	mv gdb.t.z gdb.z

# Traditionally "install" depends on "all".  But it may be useful
# not to; for example, if the user has made some trivial change to a 
# source file and doesn't care about rebuilding or just wants to save the
# time it takes for make to check that all is up to date.
# install-only is intended to address that need.
install: all install-only
install-only: $(CONFIG_INSTALL)
	transformed_name=`t='$(program_transform_name)'; \
			  echo gdb | sed -e $$t` ; \
		if test "x$$transformed_name" = x; then \
		  transformed_name=gdb ; \
		else \
		  true ; \
		fi ; \
		$(srcdir)/../mkinstalldirs $(bindir) ; \
		$(INSTALL_PROGRAM) gdb$(EXEEXT) $(bindir)/$$transformed_name$(EXEEXT) ; \
		$(srcdir)/../mkinstalldirs $(man1dir) ; \
		$(INSTALL_DATA) $(srcdir)/gdb.1 $(man1dir)/$$transformed_name.1
	@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do 

uninstall: force $(CONFIG_UNINSTALL)
	transformed_name=`t='$(program_transform_name)'; \
			  echo gdb | sed -e $$t` ; \
		if test "x$$transformed_name" = x; then \
		  transformed_name=gdb ; \
		else \
		  true ; \
		fi ; \
		rm -f $(bindir)/$$transformed_name$(EXEEXT) $(man1dir)/$$transformed_name.1
	rm -rf $(GDBTK_LIBRARY)
	@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do 

# We do this by grepping through sources.  If that turns out to be too slow,
# maybe we could just require every .o file to have an initialization routine
# of a given name (top.o -> _initialize_top, etc.).
#
# Formatting conventions:  The name of the _initialize_* routines must start
# in column zero, and must not be inside #if.
#
# Note that the set of files with init functions might change, or the names
# of the functions might change, so this files needs to depend on all the
# object files that will be linked into gdb.
#
# FIXME: There are 2 problems with this approach. First, if the INIT_FILES
# list includes a file twice (because of some mistake somewhere else) 
# the _initialize_* function will be included twice in init.c. Second, 
# init.c may force unnecessary files to be linked in.
#

INIT_FILES = $(OBS) $(TSOBS) $(CONFIG_OBS) $(CONFIG_INITS)
init.c: $(INIT_FILES)
	@echo Making init.c
	@rm -f init.c-tmp init.l-tmp
	@-echo $(INIT_FILES) | \
	tr ' ' '\012' | \
	sed -e '/^Onindy.o/d' \
	    -e '/^init.o/d' \
	    -e '/^nindy.o/d' \
	    -e '/ttyflush.o/d' \
	    -e '/xdr_ld.o/d' \
	    -e '/xdr_ptrace.o/d' \
	    -e '/xdr_rdb.o/d' \
	    -e '/udr.o/d' \
	    -e '/udip2soc.o/d' \
	    -e '/udi2go32.o/d' \
	    -e '/version.o/d' \
	    -e '/^[a-z0-9A-Z_]*_[SU].o/d' \
	    -e '/[a-z0-9A-Z_]*-exp.tab.o/d' \
	    -e 's/\.o/.c/' \
	    -e 's|\([^  ][^     ]*\)|$(srcdir)/\1|g' | \
	while read f; do grep '^_initialize_[a-z_0-9A-Z]* *(' $$f 2>/dev/null; done | \
	sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/\1/' > init.l-tmp
	@echo '/* Do not modify this file.  */' >>init.c-tmp
	@echo '/* It is created automatically by the Makefile.  */'>>init.c-tmp
	@echo '#include "defs.h"' >>init.c-tmp
	@echo '#include "call-cmds.h"' >>init.c-tmp
	@sed -e 's/\(.*\)/extern initialize_file_ftype \1;/' <init.l-tmp >>init.c-tmp
	@echo 'void' >>init.c-tmp
	@echo 'initialize_all_files (void)' >>init.c-tmp
	@echo '{' >>init.c-tmp
	@sed -e 's/\(.*\)/  \1 ();/' <init.l-tmp >>init.c-tmp
	@echo '}' >>init.c-tmp
	@rm init.l-tmp
	@mv init.c-tmp init.c

.PRECIOUS: init.c

init.o: init.c $(defs_h) $(call_cmds_h)

# Removing the old gdb first works better if it is running, at least on SunOS.
gdb$(EXEEXT): main.o libgdb.a $(CONFIG_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
	rm -f gdb$(EXEEXT)
	$(HLDENV) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) -o gdb$(EXEEXT) \
	main.o libgdb.a $(CONFIG_OBS) $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS)\
	$(LOADLIBES)

nlm:	force
	rootme=`pwd`; export rootme; $(MAKE) $(TARGET_FLAGS_TO_PASS) DO=all DODIRS=nlm subdir_do

# Create a library of the gdb object files and build GDB by linking
# against that.
#
# init.o is very important.  It pulls in the rest of GDB.
LIBGDB_OBS= $(OBS) $(TSOBS) $(ADD_FILES) init.o
libgdb.a: $(LIBGDB_OBS)
	-rm -f libgdb.a
	$(AR) q libgdb.a $(LIBGDB_OBS)
	$(RANLIB) libgdb.a

saber_gdb: $(SFILES) $(DEPFILES) copying.c version.c
	#setopt load_flags $(CFLAGS) $(BFD_CFLAGS) -DHOST_SYS=SUN4_SYS
	#load ./init.c $(SFILES)
	#unload $(srcdir)/c-exp.y
	#unload $(srcdir)/jv-exp.y
	#unload $(srcdir)/m2-exp.y
	#unload $(srcdir)/p-exp.y
	#unload vx-share/*.h
	#unload nindy-share/[A-Z]*
	#load c-exp.tab.c
	#load jv-exp.tab.c
	#load m2-exp.tab.c
	#load p-exp.tab.c
	#load copying.c version.c
	#load ../opcodes/libopcodes.a
	#load ../libiberty/libiberty.a
	#load ../bfd/libbfd.a
	#load ../readline/libreadline.a
	#load ../mmalloc/libmmalloc.a
	#load ../intl/libintl.a
	#load -ltermcap 
	#load `echo " "$(DEPFILES) | sed -e 's/\.o/.c/g' -e 's, , ../,g'`
	echo "Load .c corresponding to:" $(DEPFILES)


# A Mach 3.0 program to force gdb back to command level

stop-gdb: stop-gdb.o
	${CC_LD} $(GLOBAL_CFLAGS) $(LDFLAGS) -o stop-gdb \
	stop-gdb.o $(CLIBS) $(LOADLIBES)

# This is useful when debugging GDB, because some Unix's don't let you run GDB
# on itself without copying the executable.  So "make gdb1" will make
# gdb and put a copy in gdb1, and you can run it with "gdb gdb1".
# Removing gdb1 before the copy is the right thing if gdb1 is open
# in another process.
gdb1$(EXEEXT): gdb$(EXEEXT)
	rm -f gdb1$(EXEEXT)
	cp gdb$(EXEEXT) gdb1$(EXEEXT)

# FIXME. These are not generated by "make depend" because they only are there
# for some machines.
# But these rules don't do what we want; we want to hack the foo.o: tm.h
# dependency to do the right thing.
tm-sun3.h tm-hp300bsd.h tm-altos.h: tm-m68k.h
tm-hp300hpux.h tm-sun2.h tm-3b1.h: tm-m68k.h
xm-i386-sv32.h: xm-i386.h
tm-i386gas.h: tm-i386.h
tm-sun4os4.h: tm-sparc.h
xm-vaxult.h: xm-vax.h
xm-vaxbsd.h: xm-vax.h

# Put the proper machine-specific files first, so M-. on a machine
# specific routine gets the one for the correct machine.  (FIXME: those
# files go in twice; we should be removing them from the main list).

# TAGS depends on all the files that go into it so you can rebuild TAGS
# with `make TAGS' and not have to say `rm TAGS' first.

TAGS: $(TAGFILES_NO_SRCDIR) $(TAGFILES_WITH_SRCDIR)
	@echo Making TAGS
	@etags $(srcdir)/$(TM_FILE) \
	  $(srcdir)/$(XM_FILE) \
	  $(srcdir)/$(NAT_FILE) \
	`(for i in $(DEPFILES) $(TAGFILES_NO_SRCDIR); do \
		echo $(srcdir)/$$i ; \
	done ; for i in $(TAGFILES_WITH_SRCDIR); do \
		echo $$i ; \
	done) | sed -e 's/\.o$$/\.c/'` \
	`find $(srcdir)/config -name '*.h' -print`

tags: TAGS

clean mostlyclean: $(CONFIG_CLEAN)
	@$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(SUBDIRS)" subdir_do 
	rm -f *.o *.a $(ADD_FILES) *~ init.c-tmp init.l-tmp version.c-tmp
	rm -f init.c version.c
	rm -f gdb$(EXEEXT) core make.log
	rm -f gdb[0-9]$(EXEEXT)

# This used to depend on c-exp.tab.c m2-exp.tab.c TAGS
# I believe this is wrong; the makefile standards for distclean just
# describe removing files; the only sort of "re-create a distribution"
# functionality described is if the distributed files are unmodified.
# NB: While GDBSERVER might be configured on native systems, it isn't
# always included in SUBDIRS.  Remove the gdbserver files explictly.
distclean: clean
	@$(MAKE) $(FLAGS_TO_PASS) DO=distclean "DODIRS=$(SUBDIRS)" subdir_do 
	rm -f gdbserver/config.status gdbserver/config.log
	rm -f gdbserver/tm.h gdbserver/xm.h gdbserver/nm.h
	rm -f gdbserver/Makefile gdbserver/config.cache
	rm -f nm.h tm.h xm.h config.status config.h stamp-h .gdbinit
	rm -f y.output yacc.acts yacc.tmp y.tab.h
	rm -f config.log config.cache
	rm -f Makefile

maintainer-clean: local-maintainer-clean do-maintainer-clean distclean
realclean: maintainer-clean

local-maintainer-clean:
	@echo "This command is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."
	rm -f c-exp.tab.c \
		jv-exp.tab \
		f-exp.tab.c m2-exp.tab.c p-exp.tab.c
	rm -f TAGS $(INFOFILES)
	rm -f $(YYFILES)
	rm -f nm.h tm.h xm.h config.status

do-maintainer-clean:
	@$(MAKE) $(FLAGS_TO_PASS) DO=maintainer-clean "DODIRS=$(SUBDIRS)" \
		subdir_do

diststuff: $(DISTSTUFF)
	cd doc; $(MAKE) $(MFLAGS) diststuff

subdir_do: force
	@for i in $(DODIRS); do \
		if [ -f ./$$i/Makefile ] ; then \
			if (cd ./$$i; \
				$(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
			else exit 1 ; fi ; \
		else true ; fi ; \
	done

Makefile: Makefile.in config.status @frags@
	$(SHELL) config.status

config.h: stamp-h ; @true
stamp-h: config.in config.status
	CONFIG_HEADERS=config.h:config.in $(SHELL) config.status

config.status: configure
	$(SHELL) config.status --recheck

force:

# Documentation!
# GDB QUICK REFERENCE (TeX dvi file, CM fonts)
doc/refcard.dvi:
	cd doc; $(MAKE) refcard.dvi $(FLAGS_TO_PASS)

# GDB QUICK REFERENCE (PostScript output, common PS fonts)
doc/refcard.ps:
	cd doc; $(MAKE) refcard.ps $(FLAGS_TO_PASS)

# GDB MANUAL: TeX dvi file
doc/gdb.dvi:
	cd doc; $(MAKE) gdb.dvi $(FLAGS_TO_PASS)

# GDB MANUAL: info file
doc/gdb.info:
	cd doc; $(MAKE) gdb.info $(FLAGS_TO_PASS)

# Make copying.c from COPYING
$(srcdir)/copying.c: @MAINTAINER_MODE_TRUE@ \
		$(srcdir)/COPYING $(srcdir)/copying.awk
	awk -f $(srcdir)/copying.awk \
		< $(srcdir)/COPYING > $(srcdir)/copying.tmp
	mv $(srcdir)/copying.tmp $(srcdir)/copying.c

version.c: Makefile version.in
	rm -f version.c-tmp version.c
	echo '#include "version.h"' >> version.c-tmp
	echo 'const char version[] = "'"`sed q ${srcdir}/version.in`"'";' >> version.c-tmp
	echo 'const char host_name[] = "$(host_alias)";' >> version.c-tmp
	echo 'const char target_name[] = "$(target_alias)";' >> version.c-tmp
	mv version.c-tmp version.c
version.o: version.c $(version_h)

# c-exp.tab.c is generated in objdir from c-exp.y if it doesn't exist
# in srcdir, then compiled in objdir to c-exp.tab.o.

# If we said c-exp.tab.c rather than ./c-exp.tab.c some makes
# would sometimes re-write it into $(srcdir)/c-exp.tab.c.

# Remove bogus decls for malloc/realloc/free which conflict with everything
# else.  Strictly speaking c-exp.tab.c should therefore depend on
# Makefile.in, but that was a pretty big annoyance.
c-exp.tab.c: c-exp.y
	$(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/c-exp.y  y.tab.c c-exp.tmp -- $(YFLAGS) 
	-sed -e '/extern.*malloc/d' \
	     -e '/extern.*realloc/d' \
	     -e '/extern.*free/d' \
	     -e '/include.*malloc.h/d' \
	     -e 's/malloc/xmalloc/g' \
	     -e 's/realloc/xrealloc/g' \
	     -e '/^#line.*y.tab.c/d' \
	  < c-exp.tmp > c-exp.new
	-rm c-exp.tmp
	mv c-exp.new ./c-exp.tab.c

jv-exp.tab.o: jv-exp.tab.c
jv-exp.tab.c: jv-exp.y
	$(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/jv-exp.y  y.tab.c jv-exp.tmp -- $(YFLAGS) 
	-sed -e '/extern.*malloc/d' \
	     -e '/extern.*realloc/d' \
	     -e '/extern.*free/d' \
	     -e '/include.*malloc.h/d' \
	     -e 's/malloc/xmalloc/g' \
	     -e 's/realloc/xrealloc/g' \
	     -e '/^#line.*y.tab.c/d' \
	  < jv-exp.tmp > jv-exp.new
	-rm jv-exp.tmp
	mv jv-exp.new ./jv-exp.tab.c

f-exp.tab.o: f-exp.tab.c
f-exp.tab.c: f-exp.y c-exp.tab.c
	$(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/f-exp.y  y.tab.c f-exp.tmp -- $(YFLAGS) 
	-sed -e '/extern.*malloc/d' \
	     -e '/extern.*realloc/d' \
	     -e '/extern.*free/d' \
	     -e '/include.*malloc.h/d' \
	     -e 's/malloc/xmalloc/g' \
	     -e 's/realloc/xrealloc/g' \
	     -e '/^#line.*y.tab.c/d' \
	  < f-exp.tmp > f-exp.new
	-rm f-exp.tmp
	mv f-exp.new ./f-exp.tab.c

# m2-exp.tab.c is generated in objdir from m2-exp.y if it doesn't exist
# in srcdir, then compiled in objdir to m2-exp.tab.o.
# Remove bogus decls for malloc/realloc/free which conflict with everything
# else.
m2-exp.tab.o: m2-exp.tab.c
m2-exp.tab.c: m2-exp.y
	$(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/m2-exp.y  y.tab.c m2-exp.tmp -- $(YFLAGS) 
	-sed -e '/extern.*malloc/d' \
	     -e '/extern.*realloc/d' \
	     -e '/extern.*free/d' \
	     -e '/include.*malloc.h/d' \
	     -e 's/malloc/xmalloc/g' \
	     -e 's/realloc/xrealloc/g' \
	     -e '/^#line.*y.tab.c/d' \
	  < m2-exp.tmp > m2-exp.new
	-rm m2-exp.tmp
	mv m2-exp.new ./m2-exp.tab.c

# p-exp.tab.c is generated in objdir from p-exp.y if it doesn't exist
# in srcdir, then compiled in objdir to p-exp.tab.o.
# Remove bogus decls for malloc/realloc/free which conflict with everything
# else.
p-exp.tab.o: p-exp.tab.c
p-exp.tab.c: p-exp.y
	$(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/p-exp.y  y.tab.c p-exp.tmp -- $(YFLAGS)
	-sed -e '/extern.*malloc/d' \
	     -e '/extern.*realloc/d' \
	     -e '/extern.*free/d' \
	     -e '/include.*malloc.h/d' \
	     -e 's/malloc/xmalloc/g' \
	     -e 's/realloc/xrealloc/g' \
	     -e '/^#line.*y.tab.c/d' \
	  < p-exp.tmp > p-exp.new
	-rm p-exp.tmp
	mv p-exp.new ./p-exp.tab.c

# These files are updated atomically, so make never has to remove them
.PRECIOUS: m2-exp.tab.c f-exp.tab.c c-exp.tab.c
.PRECIOUS: jv-exp.tab.c p-exp.tab.c

lint: $(LINTFILES)
	$(LINT) $(INCLUDE_CFLAGS) $(LINTFLAGS) $(LINTFILES) \
	   `echo $(DEPFILES) | sed 's/\.o /\.c /g'`

gdb.cxref: $(SFILES)
	cxref -I. $(SFILES) >gdb.cxref

force_update:

# GNU Make has an annoying habit of putting *all* the Makefile variables
# into the environment, unless you include this target as a circumvention.
# Rumor is that this will be fixed (and this target can be removed)
# in GNU Make 4.0.
.NOEXPORT:

# GNU Make 3.63 has a different problem: it keeps tacking command line
# overrides onto the definition of $(MAKE).  This variable setting
# will remove them.
MAKEOVERRIDES=

## This is ugly, but I don't want GNU make to put these variables in
## the environment.  Older makes will see this as a set of targets
## with no dependencies and no actions.
unexport CHILLFLAGS CHILL_LIB CHILL_FOR_TARGET :

ALLDEPFILES = 29k-share/udi/udip2soc.c 29k-share/udi/udr.c \
	29k-share/udi/udi2go32.c \
	a29k-tdep.c a68v-nat.c alpha-nat.c alpha-tdep.c \
	arm-linux-nat.c arm-linux-tdep.c arm-tdep.c armnbsd-nat.c \
	armnbsd-tdep.c \
	coff-solib.c \
	core-sol2.c core-regset.c core-aout.c corelow.c \
	dcache.c delta68-nat.c dpx2-nat.c dstread.c exec.c fork-child.c \
	go32-nat.c h8300-tdep.c h8500-tdep.c \
	hp300ux-nat.c hppa-tdep.c hppab-nat.c hppah-nat.c hpread.c \
	i386-tdep.c i386b-nat.c i386mach-nat.c i386v-nat.c i386-linux-nat.c \
	i386aix-nat.c i386m3-nat.c i386v4-nat.c i386ly-tdep.c \
	i386bsd-nat.c i386bsd-tdep.c i386fbsd-nat.c \
	i387-tdep.c i387-nat.c \
	i386-linux-tdep.c i386-nat.c \
	i960-tdep.c \
	ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c \
	infptrace.c inftarg.c irix4-nat.c irix5-nat.c \
	lynx-nat.c m3-nat.c \
	m68hc11-tdep.c \
	m68k-tdep.c \
	m88k-nat.c m88k-tdep.c mac-nat.c \
	mcore-tdep.c \
	mips-linux-nat.c mips-linux-tdep.c \
	mips-nat.c \
	mips-tdep.c mipsm3-nat.c mipsv4-nat.c \
	nindy-share/Onindy.c nindy-share/nindy.c \
	nindy-share/ttyflush.c nindy-tdep.c \
	ns32k-tdep.c solib-osf.c \
	somread.c somsolib.c $(HPREAD_SOURCE) \
	ppc-linux-nat.c ppc-linux-tdep.c \
	procfs.c \
	remote-adapt.c remote-array.c remote-bug.c remote-e7000.c remote-eb.c \
	remote-es.c remote-hms.c remote-mips.c \
	remote-mm.c remote-nindy.c remote-os9k.c remote-rdp.c remote-sim.c \
	remote-st.c remote-utils.c dcache.c \
	remote-udi.c remote-vx.c remote-vx29k.c \
	rs6000-nat.c rs6000-tdep.c \
	s390-tdep.c s390-nat.c \
	ser-go32.c ser-pipe.c ser-tcp.c \
	sh-tdep.c solib.c solib-svr4.c solib-sunos.c sparc-linux-nat.c \
	sparc-nat.c \
	sparc-tdep.c sparcl-tdep.c sun3-nat.c \
	symm-tdep.c symm-nat.c \
	vax-tdep.c \
	vx-share/xdr_ld.c vx-share/xdr_ptrace.c vx-share/xdr_rdb.c \
	win32-nat.c \
	xcoffread.c xcoffsolib.c \
	xstormy16-tdep.c \
	z8k-tdep.c

udip2soc.o: $(srcdir)/29k-share/udi/udip2soc.c $(udiheaders)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/29k-share/udi/udip2soc.c

udi2go32.o: $(srcdir)/29k-share/udi/udi2go32.c $(udiheaders)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/29k-share/udi/udi2go32.c

udr.o: $(srcdir)/29k-share/udi/udr.c $(udiheaders) 
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/29k-share/udi/udr.c

# OBSOLETE a29k-tdep.o: a29k-tdep.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \
# OBSOLETE 	$(regcache_h)

a68v-nat.o: a68v-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(regcache_h)

alpha-nat.o: alpha-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(target_h) \
	$(regcache_h)

alpha-tdep.o: alpha-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(symtab_h) $(dis_asm_h) $(gdb_string_h) $(linespec_h) \
	$(regcache_h) $(doublest_h)

annotate.o: annotate.c $(defs_h) $(annotate_h) $(value_h) $(target_h) $(gdbtypes_h)

arm-linux-nat.o: arm-linux-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) \
	$(gdb_string_h) $(regcache_h) arm-tdep.h

arm-linux-tdep.o: arm-linux-tdep.c $(defs_h) $(target_h) $(value_h) \
	$(gdbtypes_h) $(floatformat_h) $(regcache_h) $(doublest_h) arm-tdep.h

arm-tdep.o: arm-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(gdbcmd_h) \
	$(gdbcore_h) $(gdb_string_h) $(dis_asm_h) $(regcache_h) $(doublest_h) \
	$(value_h) $(arch_utils_h) $(solib_svr4_h) arm-tdep.h \
	$(BFD_SRC)/elf-bfd.h $(INCLUDE_DIR)/coff/internal.h \
	$(INCLUDE_DIR)/elf/arm.h 

armnbsd-nat.o: armnbsd-nat.c $(defs_h) arm-tdep.h $(inferior_h) $(regcache_h) \
	$(gdbcore_h)

armnbsd-tdep.o: armnbsd-tdep.c $(defs_h) arm-tdep.h

bcache.o: bcache.c $(bcache_h) $(defs_h)

blockframe.o: blockframe.c $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(objfiles_h) $(symfile_h) $(target_h) $(regcache_h)

breakpoint.o: breakpoint.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(language_h) $(target_h) $(gdbthread_h) \
	$(gdb_string_h) $(gdb_events_h) $(linespec_h) $(ui_out_h) \
	$(completer_h) $(gdb_h)

buildsym.o: buildsym.c $(bfd_h) $(buildsym_h) $(complaints_h) $(defs_h) \
	$(objfiles_h) $(symfile_h) $(symtab_h) $(gdb_string_h)

c-lang.o: c-lang.c $(c_lang_h) $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(parser_defs_h) $(symtab_h)

c-typeprint.o: c-typeprint.c $(c_lang_h) $(defs_h) $(expression_h) \
	$(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) $(language_h) $(symtab_h) \
	$(target_h) $(typeprint_h) $(value_h) $(gdb_string_h) $(cp_abi_h)

c-valprint.o: c-valprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(symtab_h) $(valprint_h) $(value_h) $(cp_abi_h)

doublest.o: doublest.c $(defs_h) $(doublest_h) $(floatformat_h) $(gdbtypes_h) \
	gdb_assert.h gdb_string.h

f-lang.o: f-lang.c f-lang.h $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(parser_defs_h) $(symtab_h) $(gdb_string_h)

f-typeprint.o: f-typeprint.c f-lang.h $(defs_h) $(expression_h) \
	$(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) $(language_h) $(symtab_h) \
	$(target_h) $(typeprint_h) $(value_h) $(gdb_string_h)

f-valprint.o: f-valprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(symtab_h) $(valprint_h) $(value_h) $(gdb_string_h)

ch-exp.o: ch-exp.c ch-lang.h $(defs_h) $(language_h) $(parser_defs_h) \
	$(bfd_h) $(symfile_h) $(objfiles_h) $(value_h)

ch-lang.o: ch-lang.c ch-lang.h $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(parser_defs_h) $(symtab_h)

ch-typeprint.o: ch-typeprint.c ch-lang.h $(defs_h) $(expression_h) \
	$(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) $(language_h) $(symtab_h) \
	$(target_h) $(value_h) $(typeprint_h) $(gdb_string_h)

ch-valprint.o: ch-valprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(symtab_h) $(valprint_h) $(value_h) $(c_lang_h)

coff-solib.o: coff-solib.c $(defs_h)

coffread.o: coffread.c $(bfd_h) $(breakpoint_h) $(buildsym_h) \
	$(complaints_h) $(defs_h) $(expression_h) $(gdbtypes_h) $(objfiles_h) \
	$(symfile_h) $(symtab_h) $(gdb_stabs_h) $(stabsread_h) $(target_h) \
	$(gdb_string_h)

complaints.o: complaints.c $(complaints_h) $(defs_h) $(gdbcmd_h)

# Provide explicit rule/dependency - works for more makes.
copying.o: $(srcdir)/copying.c $(defs_h) $(gdbcmd_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/copying.c

core-aout.o: core-aout.c $(defs_h) $(gdbcore_h) $(value_h) $(inferior_h) \
	$(regcache_h)

core-sol2.o: core-sol2.c $(command_h) $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(target_h) $(gdb_string_h) $(regcache_h)

core-regset.o: core-regset.c $(command_h) $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(target_h) $(gdb_string_h)

corefile.o: corefile.c $(dis_asm_h) $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(target_h) $(language_h) $(gdb_string_h) \
	$(completer_h) $(symfile_h)

corelow.o: corelow.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(target_h) $(gdbthread_h) $(gdb_string_h) $(regcache_h)

gcore.o: gcore.c $(defs_h) $(command_h) $(inferior_h) $(gdbcore_h) \
	$(BFD_SRC)/elf-bfd.h $(symfile_h) $(objfiles_h) 

linux-proc.o: linux-proc.c $(defs_h) $(inferior_h) $(gregset_h) \
	$(gdbcore_h) $(gdbthread_h) $(regcache_h) $(BFD_SRC)/elf-bfd.h 

cp-abi.o: cp-abi.c $(defs_h) $(value_h) $(cp_abi_h)

cp-valprint.o: cp-valprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
	$(gdbtypes_h) $(symtab_h) $(value_h) $(gdb_string_h) $(cp_abi_h)

dcache.o: dcache.c $(dcache_h) $(defs_h) $(gdbcmd_h) $(gdb_string_h) \
	$(gdbcore_h) $(target_h)

dbxread.o: dbxread.c $(breakpoint_h) $(buildsym_h) $(command_h) \
	$(complaints_h) $(defs_h) $(expression_h) $(gdb_stabs_h) $(gdbcore_h) \
	$(gdbtypes_h) $(language_h) $(objfiles_h) \
	$(stabsread_h) $(symfile_h) $(symtab_h) $(target_h) $(gdb_string_h) \
	$(cp_abi_h)

delta68-nat.o: delta68-nat.c $(defs_h)

demangle.o: demangle.c $(defs_h) $(gdbcmd_h) $(gdb_string_h)

dink32-rom.o: dink32-rom.c $(monitor_h) $(bfd_h) gdb_wait.h $(defs_h) \
	$(gdbcmd_h) $(inferior_h) $(target_h) $(serial_h) $(terminal_h) \
	$(symfile_h) $(regcache_h)

dpx2-nat.o: dpx2-nat.c $(defs_h) $(gdbcore_h) $(gdb_string_h)

dstread.o: dstread.c $(gdb_string_h)

dwarf2cfi.o: dwarf2cfi.c $(defs_h) $(symtab_h) $(symfile_h) $(objfiles_h) \
	$(target_h) $(inferior_h) $(regcache_h) $(dwarf2cfi_h)

dwarfread.o: dwarfread.c $(bfd_h) $(buildsym_h) $(complaints_h) $(defs_h) \
	$(expression_h) $(gdbtypes_h) $(language_h) $(objfiles_h) \
	$(symfile_h) $(symtab_h) $(gdb_string_h)

dwarf2read.o: dwarf2read.c $(bfd_h) $(buildsym_h) $(defs_h) \
	$(expression_h) $(gdbtypes_h) $(language_h) $(objfiles_h) \
	$(symfile_h) $(symtab_h) $(gdb_string_h)

elfread.o: elfread.c $(bfd_h) $(buildsym_h) $(complaints_h) $(defs_h) \
	$(gdb_stabs_h) $(objfiles_h) $(symfile_h) $(symtab_h) $(gdb_string_h) \
	$(BFD_SRC)/elf-bfd.h $(INCLUDE_DIR)/elf/mips.h

environ.o: environ.c $(defs_h) environ.h $(gdbcore_h) $(gdb_string_h)

eval.o: eval.c $(bfd_h) $(defs_h) $(expression_h) $(frame_h) \
	$(gdbtypes_h) $(language_h) $(symtab_h) $(target_h) $(value_h) \
	$(gdb_string_h) $(cp_abi_h)

event-loop.o: event-loop.c $(defs_h) $(top_h) $(event_loop_h) $(event_top_h)

event-top.o: event-top.c $(top_h) $(readline_headers) \
      $(defs_h) $(inferior_h) $(event_loop_h) $(event_top_h) $(terminal_h) \
	$(gdbcmd_h) $(target_h)

inf-loop.o: inf-loop.c $(defs_h) $(inferior_h) $(inf_loop_h) $(event_loop_h) \
	 $(event_top_h)

exec.o: exec.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \
	$(target_h) $(language_h) $(gdb_string_h) $(completer_h) $(value_h)

expprint.o: expprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(parser_defs_h) $(symtab_h) $(value_h)

findvar.o: findvar.c $(defs_h) $(gdbcore_h) $(inferior_h) $(target_h) \
	$(gdb_string_h) $(regcache_h)

frame.o: frame.c $(defs_h) $(frame_h) $(target_h) $(value_h) $(inferior_h) \
	$(regcache_h)

regcache.o: regcache.c $(defs_h) $(inferior_h) $(target_h) $(regcache_h)

fork-child.o: fork-child.c gdb_wait.h $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(target_h) $(terminal_h) $(gdbthread_h) $(gdb_string_h)

install-gdbtk:
	$(SHELL) $(srcdir)/../mkinstalldirs $(GDBTK_LIBRARY) ; \
	$(SHELL) $(srcdir)/../mkinstalldirs \
		$(GDBTK_LIBRARY)/images \
		$(GDBTK_LIBRARY)/images2 ; \
	$(SHELL) $(srcdir)/../mkinstalldirs $(GDBTK_LIBRARY)/help \
		$(GDBTK_LIBRARY)/help/images \
		$(GDBTK_LIBRARY)/help/trace ; \
	cd $(srcdir)/gdbtk/library ; \
	for i in *.tcl *.itcl *.ith *.itb images/*.gif images2/*.gif images/icons.txt images2/icons.txt tclIndex help/*.html  help/trace/*.html help/trace/index.toc help/images/*.gif; \
	  do \
		$(INSTALL_DATA) $$i $(GDBTK_LIBRARY)/$$i ; \
	  done ;

gdbres.o: $(srcdir)/gdbtk/gdb.rc $(srcdir)/gdbtk/gdbtool.ico
	$(WINDRES) --include $(srcdir)/gdbtk $(srcdir)/gdbtk/gdb.rc gdbres.o

gdbtk.o: $(srcdir)/gdbtk/generic/gdbtk.c \
	$(srcdir)/gdbtk/generic/gdbtk.h $(defs_h) \
	$(symtab_h) $(inferior_h) $(command_h) \
	$(bfd_h) $(symfile_h) $(objfiles_h) $(target_h) $(gdb_string_h) \
	$(tracepoint_h) $(top_h) 
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
        $(ITK_CFLAGS) $(TIX_CFLAGS) \
	$(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
		$(srcdir)/gdbtk/generic/gdbtk.c \
		-DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\" -DSRC_DIR=\"$(GDBTK_SRC_DIR)\"

gdbtk-bp.o: $(srcdir)/gdbtk/generic/gdbtk-bp.c \
	$(srcdir)/gdbtk/generic/gdbtk.h $(srcdir)/gdbtk/generic/gdbtk-cmds.h \
	$(defs_h) $(breakpoint_h) $(tracepoint_h) $(symfile_h) $(symtab_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
	$(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
	$(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-bp.c \
	-DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"

gdbtk-cmds.o: $(srcdir)/gdbtk/generic/gdbtk-cmds.c \
	$(srcdir)/gdbtk/generic/gdbtk.h $(srcdir)/gdbtk/generic/gdbtk-cmds.h \
	$(defs_h) $(symtab_h) $(inferior_h)	\
	$(command_h) $(bfd_h) $(top_h) $(symfile_h) $(objfiles_h) $(target_h) \
	$(gdb_string_h) $(tracepoint_h) $(source_h) $(regcache_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS)	\
	$(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)		\
	$(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-cmds.c		\
	-DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"

gdbtk-hooks.o: $(srcdir)/gdbtk/generic/gdbtk-hooks.c \
	$(srcdir)/gdbtk/generic/gdbtk.h $(defs_h) \
	$(symtab_h) $(inferior_h) $(command_h) \
	$(bfd_h) $(symfile_h) $(objfiles_h) $(target_h) $(gdb_string_h) \
	$(tracepoint_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) $(TIX_CFLAGS) \
	$(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
		$(srcdir)/gdbtk/generic/gdbtk-hooks.c -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"

gdbtk-register.o: $(srcdir)/gdbtk/generic/gdbtk-register.c \
	$(srcdir)/gdbtk/generic/gdbtk.h $(srcdir)/gdbtk/generic/gdbtk-cmds.h \
	$(defs_h) $(frame_h) $(value_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
	$(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
	$(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-register.c \
	-DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"

gdbtk-stack.o: $(srcdir)/gdbtk/generic/gdbtk-stack.c \
	$(srcdir)/gdbtk/generic/gdbtk.h $(srcdir)/gdbtk/generic/gdbtk-cmds.h \
	$(srcdir)/gdbtk/generic/gdbtk-wrapper.h \
	$(defs_h) $(frame_h) $(value_h) $(target_h) $(breakpoint_h) \
	$(linespec_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
	$(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
	$(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-stack.c \
	-DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"

gdbtk-varobj.o: $(srcdir)/gdbtk/generic/gdbtk-varobj.c \
	$(srcdir)/gdbtk/generic/gdbtk.h \
	$(defs_h) $(value_h) $(varobj_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) $(TIX_CFLAGS) \
	$(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
		$(srcdir)/gdbtk/generic/gdbtk-varobj.c

gdbtk-wrapper.o: $(srcdir)/gdbtk/generic/gdbtk-wrapper.c \
	$(srcdir)/gdbtk/generic/gdbtk-wrapper.h
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(GDBTK_CFLAGS)\
		$(srcdir)/gdbtk/generic/gdbtk-wrapper.c

v850ice.o: v850ice.c $(defs_h) $(symtab_h) $(inferior_h) $(command_h) \
	$(frame_h) $(breakpoint_h) $(gdbcore_h) $(value_h) $(symfile_h) \
	$(gdb_string_h) $(target_h) $(objfiles_h) $(regcache_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) $(TIX_CFLAGS) \
	$(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
		$(srcdir)/v850ice.c

v850-tdep.o: v850-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(obstack_h) \
	$(target_h) $(value_h) $(bfd_h) $(gdb_string_h) $(gdbcore_h) \
	$(symfile_h) $(arch_utils_h) $(regcache_h)

tracepoint.o: tracepoint.c $(defs_h) $(symtab_h) $(frame_h) $(tracepoint_h) \
	$(gdbtypes_h) $(expression_h) $(gdbcmd_h) $(value_h) $(target_h) \
	$(language_h) $(gdb_string_h) $(readline_headers) $(remote_h) \
	$(linespec_h) $(regcache_h) $(completer_h)

gdbarch.o: gdbarch.c $(defs_h) $(bfd_h) $(gdbcmd_h)

arch-utils.o: arch-utils.c $(defs_h) $(bfd_h) $(gdbcmd_h) \
	$(arch_utils_h) gdb_assert.h

gdbtypes.o: gdbtypes.c $(bfd_h) $(complaints_h) $(defs_h) $(expression_h) \
	$(gdbtypes_h) $(language_h) $(objfiles_h) $(symfile_h) $(symtab_h) \
	$(target_h) $(value_h) $(gdb_string_h) $(wrapper_h) $(cp_abi_h)

go32-nat.o: go32-nat.c $(defs_h) $(inferior_h) gdb_wait.h $(gdbcore_h) \
	$(command_h) $(floatformat_h) $(target_h) i387-nat.h $(regcache_h)

gnu-nat.o: process_reply_S.h exc_request_S.h notify_S.h msg_reply_S.h \
	exc_request_U.h msg_U.h gnu-nat.h

gnu-v2-abi.o: gnu-v2-abi.c $(defs_h) $(gdb_string_h) $(symtab_h) \
	$(gdbtypes_h) $(value_h) $(demangle_h) $(cp_abi_h) 

gnu-v3-abi.o: gnu-v2-abi.c $(defs_h) $(value_h) $(cp_abi_h) $(demangle_h)
 
h8300-tdep.o: h8300-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(regcache_h)

h8500-tdep.o: h8500-tdep.c $(bfd_h) $(dis_asm_h) $(defs_h) \
	$(expression_h) $(frame_h) $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) \
	$(value_h) $(regcache_h)

hp300ux-nat.o: hp300ux-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(regcache_h)

hpacc-abi.o: hpacc-abi.c $(defs_h) $(cp_abi_h) $(gdb_string_h) $(gdbtypes_h) \
	$(value_h) $(gdbcore_h)

hppa-tdep.o: hppa-tdep.c gdb_wait.h $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(objfiles_h) $(symfile_h) $(target_h) $(regcache_h) \
	$(completer_h)

hppab-nat.o: hppab-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(target_h) \
	$(regcache_h)

hppah-nat.o: hppah-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(target_h) \
	$(regcache_h)

i386gnu-nat.o: gnu-nat.h

i386-tdep.o: i386-tdep.c $(defs_h) $(gdb_string_h) $(frame_h)	\
	$(inferior_h) $(gdbcore_h) $(target_h) $(floatformat_h)	\
	$(symtab_h) $(gdbcmd_h) $(command_h) $(arch_utils_h) $(regcache_h) \
	$(doublest_h) $(value_h)

i386-nat.o: i386-nat.c $(defs_h) $(breakpoint_h) $(command_h) $(gdbcmd_h)

i386aix-nat.o: i386aix-nat.c $(defs_h) $(frame_h) $(inferior_h) \
	$(language_h) $(gdbcore_h) $(floatformat_h) $(target_h) $(regcache_h)

i386b-nat.o: i386b-nat.c $(defs_h) $(regcache_h)

i386bsd-tdep.o: i386bsd-tdep.c $(defs_h) $(frame_h) $(gdb_core_h) \
	$(regcache_h)

i386bsd-nat.o: i386bsd-nat.c $(defs_h) $(inferior_h) $(regcache_h)

i386fbsd-nat.o: i386fbsd-nat.c $(defs_h) $(inferior_h) $(regcache_h)

i386ly-nat.o: i386ly-nat.c $(defs_h) $(frame_h) $(inferior_h) $(target_h)

i386ly-tdep.o: i386ly-tdep.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \
	$(regcache_h)

i386m3-nat.o: i386m3-nat.c $(defs_h) $(inferior_h) $(floatformat_h) $(target_h) \
	$(regcache_h)

i386mach-nat.o: i386mach-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(regcache_h)

i386v-nat.o: i386v-nat.c $(floatformat_h) $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(language_h) $(target_h)

i386-linux-nat.o: i386-linux-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) \
	$(symtab_h) $(symfile_h) $(objfiles_h) $(regcache_h)

i386-linux-tdep.o: i386-linux-tdep.c $(defs_h) $(gdbcore_h) $(frame_h) \
	$(value_h) $(regcache_h)

i386v4-nat.o: i386v4-nat.c $(defs_h) $(regcache_h)

i387-tdep.o: i387-tdep.c $(floatformat_h) $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(language_h) $(regcache_h) $(doublest_h) i386-tdep.h

i387-nat.o: i387-nat.c $(defs_h) $(inferior_h) $(value_h) $(regcache_h) \
	i387-nat.h

i960-tdep.o: i960-tdep.c $(floatformat_h) $(defs_h) $(expression_h) \
	$(frame_h) $(gdbtypes_h) $(symtab_h) $(value_h) $(gdbcore_h) \
	$(regcache_h)

ia64-linux-nat.o: ia64-linux-nat.c  $(defs_h) $(inferior_h) $(target_h) \
	$(gdbcore_h) $(regcache_h)

ia64-linux-tdep.o: ia64-linux-tdep.c $(defs_h) $(arch_utils_h)

ia64-tdep.o: ia64-tdep.c $(defs_h) $(inferior_h) $(symfile_h) $(gdbcore_h) \
	$(arch_utils_h) $(floatformat_h) $(objfiles_h) $(value_h) \
	$(INCLUDE_DIR)/elf/common.h $(regcache_h) $(doublest_h)

infcmd.o: infcmd.c $(defs_h) environ.h $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(target_h) $(language_h) $(symfile_h) $(gdb_string_h) \
	$(ui_out_h) $(completer_h)

inflow.o: inflow.c $(bfd_h) $(command_h) $(defs_h) $(inferior_h) \
	$(target_h) $(terminal_h) $(gdbthread_h) $(gdb_string_h)

infptrace.o: infptrace.c $(defs_h) $(gdbcore_h) $(inferior_h) $(target_h) \
	$(gdb_string_h) gdb_wait.h $(command_h) $(regcache_h)

infrun.o: infrun.c gdb_wait.h $(defs_h) $(gdbcmd_h) $(cli_script_h) \
	$(gdbcore_h) $(value_h) \
	$(inferior_h) $(target_h) $(gdbthread_h) $(gdb_string_h) $(event_loop_h) \
	$(event_top_h) $(regcache_h)

inftarg.o: inftarg.c gdb_wait.h $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(target_h) $(terminal_h) $(command_h)

irix4-nat.o: irix4-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) $(regcache_h)
irix5-nat.o: irix5-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) $(target_h) \
	$(symtab_h) $(symfile_h) $(objfiles_h) $(command_h) $(frame_h) \
	gdb_regex.h $(language_h) $(gdb_string_h) $(regcache_h)

jv-lang.o: jv-lang.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
	$(expression_h) $(parser_defs_h) $(language_h) $(symfile_h) \
	$(objfiles_h) $(gdb_string_h) $(value_h) $(c_lang_h) jv-lang.h \
	$(gdbcore_h)

jv-typeprint.o: jv-typeprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
	$(value_h) $(demangle_h) jv-lang.h $(gdb_string_h) \
	$(typeprint_h) $(c_lang_h) $(cp_abi_h)

jv-valprint.o: jv-valprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
	$(expression_h) $(value_h) $(demangle_h) $(valprint_h) \
	$(language_h) jv-lang.h $(c_lang_h) gdbcore.h $(annotate_h)

kod.o: kod.c $(defs_h) $(command_h) $(gdbcmd_h) $(target_h) $(gdb_string_h) \
	kod.h

kod-cisco.o: kod-cisco.c $(defs_h) $(gdb_string_h) kod.h

language.o: language.c $(bfd_h) $(defs_h) $(expression_h) $(frame_h) \
	$(gdbcmd_h) $(gdbtypes_h) $(language_h) $(parser_defs_h) $(symtab_h) \
	$(target_h) $(value_h) $(gdb_string_h)

lynx-nat.o: lynx-nat.c $(defs_h) $(frame_h) $(inferior_h) $(gdbcore_h) \
	$(target_h) $(regcache_h)

m2-lang.o: m2-lang.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) m2-lang.h $(parser_defs_h) $(symtab_h)

m2-typeprint.o: m2-typeprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
	$(gdbcore_h) $(gdbtypes_h) $(language_h) m2-lang.h $(symtab_h) \
	$(target_h) $(value_h) $(gdb_string_h)

m2-valprint.o: m2-valprint.c $(defs_h) $(gdbtypes_h) $(symtab_h) \
	$(valprint_h) m2-lang.h

m3-nat.o: m3-nat.c $(defs_h) $(inferior_h) $(value_h) $(language_h) \
	$(target_h) gdb_wait.h $(gdbcmd_h) $(gdbcore_h) $(regcache_h)

p-lang.o: p-lang.c p-lang.h $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(parser_defs_h) $(symtab_h) $(gdb_string_h)

p-typeprint.o: p-typeprint.c p-lang.h $(defs_h) $(expression_h) \
	$(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) $(language_h) $(symtab_h) \
	$(target_h) $(typeprint_h) $(value_h) $(gdb_string_h)

p-valprint.o: p-valprint.c p-lang.h $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) $(symtab_h) $(valprint_h) $(value_h) $(gdb_string_h)

m68hc11-tdep.o: m68hc11-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(value_h) \
	$(gdbcore_h) gdb_string.h

m68k-tdep.o: m68k-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(value_h) \
	$(gdbcore_h) $(gdb_string_h) $(regcache_h)

m68kly-nat.o: m68kly-nat.c $(defs_h) $(frame_h) $(inferior_h) $(target_h)

m68klinux-nat.o: m68klinux-nat.c $(defs_h) $(frame_h) $(inferior_h) \
	$(language_h) $(gdbcore_h) $(floatformat_h) $(target_h) $(regcache_h)

m88k-nat.o: m88k-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(regcache_h)

m88k-tdep.o: m88k-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) $(regcache_h)

mac-nat.o: mac-nat.c $(defs_h) $(gdb_string_h) $(regcache_h)

main.o: main.c $(top_h) $(defs_h) $(gdb_string_h) $(event_loop_h) \
	$(symfile_h)  $(gdbcore_h) $(ui_out_h)

maint.o: maint.c $(defs_h) $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) \
	$(language_h) $(expression_h) $(objfiles_h) $(symfile_h)

mcore-tdep.o: mcore-tdep.c $(defs_h) $(frame_h) $(gdbcmd_h) $(value_h) \
	$(symtab_h) $(symfile_h) $(gdbcore_h) $(inferior_h)

mcore-rom.o: mcore-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
	$(gdb_string_h) $(regcache_h) $(serial_h)

mdebugread.o: mdebugread.c $(buildsym_h) $(complaints_h) $(bfd_h) $(defs_h) \
	$(expression_h) $(gdb_stabs_h) $(gdbcore_h) $(gdbtypes_h) \
	$(language_h) $(objfiles_h) $(stabsread_h) \
	$(symfile_h) $(symtab_h) $(gdb_string_h)

mipsm3-nat.o: mipsm3-nat.c $(defs_h) $(inferior_h) $(regcache_h)

# os9kread assumes that sizeof(char*) <= sizeof(int).  This looses on
# 64 bit targets where often, sizeof(int)=4 but sizeof(char*)=9.
os9kread.o: os9kread.c $(buildsym_h) $(complaints_h) $(bfd_h) $(defs_h) \
	        $(expression_h) $(gdb_stabs_h) $(gdbcore_h) $(gdbtypes_h) \
		$(language_h) $(objfiles_h) $(stabsread_h) $(symfile_h) \
		$(symtab_h) $(target_h) $(gdb_string_h)
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) \
		$(srcdir)/os9kread.c

mem-break.o: mem-break.c $(defs_h) 

memattr.o: memattr.c $(defs_h) $(command_h) $(gdbcmd_h) $(memattr_h) \
	$(target_h) $(value_h) $(language_h) $(gdb_string_h)

minsyms.o: minsyms.c $(bfd_h) $(defs_h) $(objfiles_h) $(symfile_h) \
	$(symtab_h) $(gdb_string_h) $(value_h) $(cp_abi_h)

mips-linux-nat.o: mips-linux-nat.c $(defs_h)

mips-linux-tdep.o: mips-linux-tdep.c $(defs_h) $(gdbcore_h) $(target_h) \
	solib-svr4.h

mips-nat.o: mips-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(regcache_h)

mips-tdep.o: mips-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(arch_utils_h) $(regcache_h) \
	$(inferior_h) $(language_h) $(objfiles_h) $(symfile_h) $(gdb_string_h)

mipsread.o: mipsread.c $(buildsym_h) $(complaints_h) $(bfd_h) $(defs_h) \
	$(expression_h) $(gdb_stabs_h) $(gdbcore_h) $(gdbtypes_h) \
	$(language_h) $(objfiles_h) $(stabsread_h) $(symfile_h) $(symtab_h) \
	$(gdb_string_h)

mipsv4-nat.o: mipsv4-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(target_h) \
	$(regcache_h)

mn10300-tdep.o: mn10300-tdep.c $(defs_h) $(frame_h) $(inferior_h) \
	$(obstack_h) $(target_h) $(value_h) $(bfd_h) gdb_string.h \
	$(gdbcore_h) $(symfile_h) $(regcache_h) $(arch-utils.h)

monitor.o: monitor.c $(monitor_h) $(bfd_h) $(defs_h) $(gdbcmd_h) \
	$(inferior_h) $(target_h) $(serial_h) $(terminal_h) $(gdb_string_h) \
	$(regcache_h)

Onindy.o: nindy-share/Onindy.c gdb_wait.h nindy-share/block_io.h \
	nindy-share/env.h
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/nindy-share/Onindy.c

nindy.o: nindy-share/nindy.c gdb_wait.h nindy-share/block_io.h \
	nindy-share/env.h
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/nindy-share/nindy.c

nlmread.o: nlmread.c $(bfd_h) $(buildsym_h) $(complaints_h) $(defs_h) \
	$(gdb_stabs_h) $(objfiles_h) $(symfile_h) $(symtab_h) $(stabsread_h) \
	$(gdb_string_h)

ttyflush.o: nindy-share/ttyflush.c
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/nindy-share/ttyflush.c

nindy-tdep.o: nindy-tdep.c $(defs_h) $(frame_h) $(symtab_h)  $(gdbcore_h)

ns32k-tdep.o: ns32k-tdep.c $(bfd_h) $(dis_asm_h) $(defs_h)

objfiles.o: objfiles.c $(bfd_h) $(defs_h) $(objfiles_h) $(symfile_h) \
	$(symtab_h) $(gdb_string_h) $(breakpoint_h)

solib-osf.o: solib-osf.c $(defs_h) $(inferior_h) $(symtab_h) $(objfiles_h) \
	$(symfile_h) $(target_h) $(gdb_string_h) $(solist_h)

somread.o: somread.c $(bfd_h) $(buildsym_h) $(complaints_h) $(defs_h) \
	$(gdb_stabs_h) $(objfiles_h) $(symfile_h) $(symtab_h) $(gdb_string_h)

somsolib.o: somsolib.c $(defs_h) $(regcache_h)

pa64solib.o: pa64solib.c $(defs_h) $(regcache_h)

hpux-thread.o: hpux-thread.c $(defs_h) $(gdbthread_h) $(target_h) inferior.h \
	$(regcache_h)
	$(CC) -c $(INTERNAL_CFLAGS) -I$(srcdir)/osf-share \
	  -I$(srcdir)/osf-share/HP800 -I/usr/include/dce $(srcdir)/hpux-thread.c

hpread.o: hpread.c $(bfd_h) $(buildsym_h) $(complaints_h) $(defs_h) \
	$(demangle_h) $(gdb_stabs_h) $(gdbtypes_h) $(objfiles_h) \
	$(symfile_h) $(syms_h) $(symtab_h) $(gdb_string_h) \
	$(INCLUDE_DIR)/hp-symtab.h

parse.o: parse.c $(command_h) $(defs_h) $(expression_h) $(frame_h) \
	$(gdbtypes_h) $(language_h) $(parser_defs_h) $(symtab_h) $(value_h) \
	$(gdb_string_h) $(linespec_h) $(doublest_h)

ppc-bdm.o: ppc-bdm.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) \
	$(inferior_h) $(bfd_h) $(symfile_h) $(target_h) $(gdbcmd_h) \
	$(objfiles_h) $(gdb_stabs_h) $(serial_h) ocd.h $(regcache_h)

ppc-linux-nat.o: ppc-linux-nat.c $(defs_h) $(gdbcore_h) $(frame_h) \
	$(inferior_h) $(target_h) $(regcache_h) ppc-tdep.h

ppc-linux-tdep.o: ppc-linux-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(target_h) ppc-tdep.h $(regcache_h) $(value_h)

ppcbug-rom.o: ppcbug-rom.c $(monitor_h) $(bfd_h) gdb_wait.h $(defs_h) \
	$(gdbcmd_h) $(inferior_h) $(target_h) $(serial_h) $(terminal_h) \
	$(regcache_h)

printcmd.o: printcmd.c $(breakpoint_h) $(defs_h) $(expression_h) \
	$(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) $(language_h) $(objfiles_h) \
	$(symfile_h) $(symtab_h) $(target_h) $(gdb_string_h) $(ui_out_h) \
	$(completer_h)

# FIXME: Procfs.o gets -Wformat errors because things like pid_t don't
# match output format strings.
procfs.o: procfs.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(target_h) $(gdb_string_h) $(gdbthread_h) proc-utils.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $(srcdir)/procfs.c

proc-api.o: proc-api.c $(defs_h) $(gdbcmd_h) proc-utils.h $(completer_h)

proc-events.o: proc-events.c $(defs_h)

proc-flags.o: proc-flags.c $(defs_h)

proc-why.o: proc-why.c $(defs_h) proc-utils.h

sol-thread.o: sol-thread.c $(defs_h) $(gdbthread_h) $(target_h) $(inferior_h) \
	$(gdbcmd_h) $(regcache_h)

linux-proc.o: linux-proc.c $(defs_h)

thread-db.o: thread-db.c $(defs_h) gdb_assert.h gdb_proc_service.h \
	gdb_thread_db.h $(bfd_h) $(gdbthread_h) $(inferior_h) $(symfile_h) \
	$(objfiles_h) $(target_h) $(regcache_h)

lin-lwp.o: lin-lwp.c $(defs_h) gdb_assert.h gdb_wait.h $(gdbthread_h) \
	$(inferior_h) $(target_h) $(gdbcmd_h) $(regcache_h)

proc-service.o: proc-service.c $(defs_h) $(inferior_h) gdb_proc_service.h \
	$(symtab_h) $(target_h) gregset.h

# OBSOLETE remote-adapt.o: remote-adapt.c $(defs_h) $(gdbcore_h) \
# OBSOLETE	$(inferior_h) $(target_h) $(terminal_h) $(gdb_string_h) $(regcache_h)

remote-array.o: remote-array.c $(defs_h) $(gdbcore_h) $(target_h) \
      $(gdb_string_h) $(command_h) $(serial_h) $(monitor_h) $(remote_utils_h) \
	$(version_h) $(regcache_h)

remote-rdi.o: remote-rdi.c $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(gdb_string_h) $(completer_h) arm-tdep.h

rdi-share/libangsd.a:	force
	@dir=rdi-share; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`pwd`; export r; \
	  srcroot=`cd $(srcdir); pwd`; export srcroot; \
	  (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
	else \
	  true; \
	fi

remote-rdp.o: remote-rdp.c $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(gdb_string_h) arm-tdep.h

remote-bug.o: remote-bug.c $(defs_h) $(gdbcore_h) $(serial_h) \
	$(inferior_h) $(target_h) $(terminal_h) $(remote_utils_h) \
	$(gdb_string_h) $(regcache_h)

remote-e7000.o: remote-e7000.c $(defs_h) $(gdbcore_h) $(target_h) \
	$(serial_h) $(gdb_string_h) $(regcache_h)

# OBSOLETE remote-eb.o: remote-eb.c $(srcdir)/config/a29k/tm-a29k.h \
# OBSOLETE 	$(defs_h) $(gdbcore_h) $(inferior_h) $(symfile_h) $(target_h) \
# OBSOLETE 	$(terminal_h) $(gdb_string_h) $(regcache_h)

remote-es.o: remote-es.c $(bfd_h) $(command_h) $(defs_h) \
	$(inferior_h) $(remote_utils_h) $(terminal_h) $(gdb_string_h) \
	$(symfile_h) $(regcache_h) $(value_h)

remote-est.o: remote-est.c $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(serial_h) $(target_h) $(terminal_h) $(regcache_h)

remote-hms.o: remote-hms.c $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(serial_h) $(target_h) $(terminal_h) $(regcache_h)

remote-mips.o: remote-mips.c $(defs_h) $(gdbcmd_h) \
	$(gdbcore_h) $(inferior_h) $(serial_h) $(symfile_h) $(target_h) \
	$(regcache_h)

# OBSOLETE remote-mm.o: remote-mm.c $(bfd_h) $(defs_h) $(inferior_h) \
# OBSOLETE	minimon.h $(target_h) $(terminal_h) $(gdb_string_h) $(regcache_h)

remote-nindy.o: remote-nindy.c $(floatformat_h) $(command_h) \
	$(defs_h) $(gdbcore_h) $(inferior_h) \
	nindy-share/env.h nindy-share/stop.h $(remote_utils_h) \
	$(symfile_h) $(regcache_h)

remote-os9k.o: remote-os9k.c $(defs_h) $(gdbcore_h) \
	$(command_h) $(monitor_h) $(remote_utils_h) $(symtab_h) $(symfile_h) \
	$(objfiles_h) $(gdb_stabs_h) $(gdb_string_h) $(regcache_h)

remote-sds.o: remote-sds.c $(bfd_h) $(defs_h) $(gdbcmd_h) \
	$(inferior_h) $(remote_utils_h) $(symfile_h) $(terminal_h) \
	$(gdb_string_h) $(regcache_h)

remote-sim.o: remote-sim.c $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(target_h) $(terminal_h) $(gdb_string_h) \
	$(INCLUDE_DIR)/callback.h $(regcache_h)

remote-st.o: remote-st.c $(defs_h) $(gdbcore_h) $(serial_h) \
	$(target_h) $(gdb_string_h) $(regcache_h)

# OBSOLETE remote-udi.o: remote-udi.c $(bfd_h) $(defs_h) $(gdbcmd_h) \
# OBSOLETE 	$(inferior_h) $(target_h) $(terminal_h) $(udiheaders) $(gdb_string_h) \
# OBSOLETE 	$(regcache_h)

remote-vx.o: remote-vx.c $(complaints_h) $(defs_h) $(gdbcmd_h) \
	$(gdbcore_h) $(inferior_h) $(target_h) vx-share/dbgRpcLib.h \
	vx-share/ptrace.h vx-share/xdr_ld.h vx-share/xdr_ptrace.h \
	vx-share/xdr_rdb.h $(gdb_stabs_h) $(objfiles_h) $(symfile_h) $(bfd_h) \
	$(gdb_string_h) $(regcache_h)

remote-vx29k.o: remote-vx29k.c $(complaints_h) $(defs_h) $(gdbcmd_h) \
        $(gdbcore_h) $(inferior_h) $(target_h) vx-share/dbgRpcLib.h \
        vx-share/ptrace.h vx-share/xdr_ld.h vx-share/xdr_ptrace.h \
        vx-share/xdr_rdb.h $(gdb_string_h) $(regcache_h)

ocd.o: ocd.c ocd.h $(gdbcore_h) $(gdb_string_h) $(frame_h) $(inferior_h) \
	$(bfd_h) $(symfile_h) $(target_h) $(gdbcmd_h) $(objfiles_h) \
	$(gdb_stabs_h) $(dcache_h) $(serial_h) $(regcache_h)

remote-utils.o: remote-utils.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(remote_utils_h) $(gdb_string_h) $(regcache_h)

remote.o: remote.c $(bfd_h) gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(inferior_h) $(remote_utils_h) $(symfile_h) $(terminal_h) \
	$(gdb_string_h) $(event_loop_h) $(event_top_h) $(remote_h) \
	$(inf_loop_h) $(value_h)

remote-nrom.o: remote-nrom.c $(bfd_h) gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(inferior_h) $(remote_utils_h) $(symfile_h) $(terminal_h)

rom68k-rom.o: rom68k-rom.c $(monitor_h) $(bfd_h) gdb_wait.h $(defs_h) \
	$(gdbcmd_h) $(inferior_h) $(target_h) $(serial_h) $(terminal_h) \
	$(regcache_h) $(value_h)

rs6000-nat.o: rs6000-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(target_h) \
	$(gdbcore_h) $(xcoffsolib_h) $(symfile_h) $(objfiles_h) \
	$(gdb_stabs_h) $(regcache_h) $(arch_utils_h)

rs6000-tdep.o: rs6000-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(target_h) ppc-tdep.h $(regcache_h) $(value_h) $(parser_defs_h)

s390-tdep.o: s390-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) $(inferior_h) \
	$(symtab_h) $(target_h) $(gdbcore_h) $(gdbcmd_h) $(symfile_h) \
	$(objfiles_h) $(bfd_h) $(floatformat_h) $(regcache_h) $(value_h)

s390-nat.o: s390-nat.c $(defs_h) $(regcache_h)

scm-exp.o: $(defs_h) $(value_h) $(parser_defs_h) $(language_h) $(c_lang_h) \
	scm-lang.h scm-tags.h

scm-lang.o: $(defs_h) $(value_h) $(parser_defs_h) $(language_h) $(c_lang_h) \
	scm-lang.h scm-tags.h $(gdb_string_h) $(gdbcore_h)

scm-valprint.o: $(defs_h) $(value_h) $(parser_defs_h) $(language_h)  \
	scm-lang.h $(valprint_h) $(gdbcore_h)

ser-go32.o: ser-go32.c $(defs_h) $(serial_h) 

ser-pipe.o: ser-pipe.c $(defs_h) $(serial_h) $(gdb_string_h) $(ser_unix_h)

ser-tcp.o: ser-tcp.c $(defs_h) $(serial_h) $(gdb_string_h) $(ser_unix_h)

ser-unix.o: ser-unix.c $(defs_h) $(serial_h) $(ser_unix_h) 

serial.o: serial.c $(defs_h) $(serial_h) $(gdb_string_h)

sh-tdep.o: sh-tdep.c $(bfd_h) $(dis_asm_h) \
	$(srcdir)/../opcodes/sh-opc.h $(defs_h) $(expression_h) $(frame_h) \
	$(gdbcmd_h) $(gdbtypes_h) $(symtab_h) $(value_h) $(arch_utils_h) \
	$(regcache_h) $(doublest_h)

sh3-rom.o: sh3-rom.c $(monitor_h) $(bfd_h) gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(inferior_h) $(target_h) $(serial_h) $(terminal_h) $(arch_utils_h) \
	$(regcache_h)

signals.o: signals.c $(defs_h) $(target_h)

mon960-rom.o: mon960-rom.c $(monitor_h) $(bfd_h) gdb_wait.h $(defs_h) \
	$(gdbcmd_h) $(inferior_h) $(target_h) $(serial_h) $(terminal_h)

solib.o: solib.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
	$(objfiles_h) gdb_regex.h $(symfile_h) $(target_h) $(gdb_string_h) \
	$(solist_h) $(completer_h)

solib-sunos.o: solib-sunos.c $(defs_h) $(symfile_h) $(objfiles_h) \
	$(gdbcore_h) $(inferior_h) $(solist_h)

solib-svr4.o: solib-svr4.c $(defs_h) $(gdbcore_h) $(inferior_h) $(objfiles_h) \
	$(symfile_h) $(target_h) $(solist_h) solib-svr4.h

solib-legacy.o: solib-legacy.c $(defs_h) $(gdbcore_h) solib-svr4.h

source.o: source.c $(defs_h) $(expression_h) $(frame_h) $(gdbcmd_h) \
	$(gdbcore_h) $(language_h) $(objfiles_h) gdb_regex.h $(symfile_h) \
	$(symtab_h) $(gdb_string_h) $(source_h) $(completer_h) $(linespec_h) \
	$(ui_out_h)

sparc-linux-nat.o: sparc-linux-nat.c $(defs_h) $(regcache_h)

sparc-nat.o: sparc-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(gdbcore_h) \
	$(target_h) $(regcache_h)

sparc-tdep.o: sparc-tdep.c $(floatformat_h) $(defs_h) $(gdbcore_h) \
	$(inferior_h) $(objfiles_h) $(symfile_h) $(target_h) $(gdb_string_h) \
	$(arch_utils_h) $(regcache_h)

sparcl-tdep.o: sparcl-tdep.c $(defs_h) $(gdbcore_h) $(target_h) $(regcache_h)

xstormy16-tdep.o: xstormy16-tdep.c $(defs_h) $(value_h) $(inferior_h) \
	$(symfile_h) $(arch_utils_h) $(regcache_h) $(gdbcore_h)

dsrec.o: dsrec.c $(defs_h) srec.h

stabsread.o: stabsread.c $(bfd_h) $(INCLUDE_DIR)/aout/stab.def \
	$(INCLUDE_DIR)/aout/stab_gnu.h $(buildsym_h) $(complaints_h) \
	$(defs_h) $(gdbtypes_h) $(objfiles_h) $(stabsread_h) $(symfile_h) \
	$(symtab_h) $(gdb_string_h) $(doublest_h)

stack.o: stack.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \
	$(language_h) $(target_h) $(gdb_string_h) $(ui_out_h)

ui-file.o: ui-file.c $(defs_h) ui-file.h
tui-file.o: $(srcdir)/tui/tui-file.c $(defs_h) $(srcdir)/tui/tui-file.h \
	$(srcdir)/tui/tuiIO.h
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/tui/tui-file.c

ax-general.o: ax-general.c $(ax_h) $(defs_h) $(value_h)
ax-gdb.o: ax-gdb.c $(defs_h) $(symtab_h) $(symfile_h) $(gdbtypes_h) \
	$(value_h) $(expression_h) $(command_h) $(ax_h) $(gdbcmd_h) ax-gdb.h

sun3-nat.o: sun3-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(regcache_h)

symfile.o: symfile.c $(breakpoint_h) $(complaints_h) $(defs_h) \
	$(expression_h) $(gdb_stabs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(gdbtypes_h) $(language_h) $(objfiles_h) $(symfile_h) $(symtab_h) \
	$(target_h) $(gdb_string_h) $(completer_h)

symm-tdep.o: symm-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h)

symm-nat.o: symm-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(regcache_h)

symmisc.o: symmisc.c $(bfd_h) $(breakpoint_h) $(command_h) $(defs_h) \
	$(expression_h) $(gdbtypes_h) $(language_h) $(objfiles_h) \
	$(symfile_h) $(symtab_h) $(gdb_string_h)

symtab.o: symtab.c $(call_cmds_h) $(defs_h) $(expression_h) $(frame_h) \
	$(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) $(language_h) $(objfiles_h) \
	gdb_regex.h $(symfile_h) $(symtab_h) $(target_h) $(value_h) \
	$(gdb_string_h) $(linespec_h) $(cp_abi_h)

linespec.o: linespec.c $(linespec_h) $(defs_h) $(frame_h) $(value_h) \
	$(objfiles_h) $(symfile_h) $(completer_h) $(symtab_h) \
	$(demangle_h) $(command_h) $(cp_abi_h)

target.o: target.c $(bfd_h) $(defs_h) $(gdbcmd_h) $(inferior_h) \
	$(objfiles_h) $(symfile_h) $(target_h) $(gdb_string_h) $(regcache_h)

thread.o: thread.c $(defs_h) $(gdbthread_h) $(gdbcmd_h) $(target_h) \
	$(regcache_h) $(ui_out_h) $(gdb_h)

completer.o: completer.c $(completer_h) $(gdbtypes_h) $(symtab_h) \
	$(defs_h) $(gdbcmd_h) $(expression_h) $(readline_headers)

top.o: top.c $(top_h) $(bfd_h) $(getopt_h) $(readline_headers) $(call_cmds_h) \
	$(cli_cmds_h) $(cli_script_h) $(cli_setshow_h) \
	$(defs_h) $(gdbcmd_h) $(inferior_h) $(language_h) \
	$(remote_utils_h) $(gdb_string_h) $(event_loop_h) $(event_top_h) \
	$(completer_h) $(version_h) $(ui_out_h) $(doublest_h) \
	$(serial_h)

typeprint.o: typeprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
	$(gdbcore_h) $(gdbtypes_h) $(language_h) $(symtab_h) $(target_h) \
	$(value_h) $(gdb_string_h) $(cp_abi_h)

utils.o: utils.c $(bfd_h) $(defs_h) $(expression_h) $(gdbcmd_h) \
	$(language_h) $(target_h) $(terminal_h) $(readline_headers) \
	$(gdb_string_h) $(event_loop_h) $(event_top_h)

valarith.o: valarith.c $(bfd_h) $(defs_h) $(expression_h) \
	$(gdbtypes_h) $(language_h) $(symtab_h) $(target_h) $(value_h) \
	$(gdb_string_h) $(doublest_h)

valops.o: valops.c $(defs_h) $(gdbcore_h) $(inferior_h) $(target_h) \
	$(gdb_string_h) $(regcache_h) $(cp_abi_h)

valprint.o: valprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
	$(gdbcore_h) $(gdbtypes_h) $(language_h) $(symtab_h) $(target_h) \
	$(value_h) $(gdb_string_h) $(valprint_h) $(doublest_h)

values.o: values.c $(defs_h) $(expression_h) $(frame_h) $(gdbcmd_h) \
	$(gdbcore_h) $(gdbtypes_h) $(symtab_h) $(target_h) $(value_h) \
	$(gdb_string_h) scm-lang.h $(doublest_h)

vax-tdep.o: vax-tdep.c $(OP_INCLUDE)/vax.h $(defs_h) $(symtab_h)

x86-64-linux-tdep.o : x86-64-linux-tdep.c $(defs_h) $(inferior_h) \
	$(gdbcore_h) $(regcache_h) x86-64-tdep.h i386-tdep.h $(dwarf2cfi_h)

x86-64-tdep.o : x86-64-tdep.c $(defs_h) $(inferior_h) $(gdbcore_h) $(gdbcmd_h) \
	$(arch_utils_h) $(regcache_h) $(symfile_h) x86-64-tdep.h i386-tdep.h \
	$(dwarf2cfi_h) gdb_assert.h

x86-64-linux-nat.o : x86-64-linux-nat.c $(defs_h) $(inferior_h) \
	$(gdbcore_h) $(regcache_h) i387-nat.h gdb_assert.h x86-64-tdep.h \
	i386-tdep.h

win32-nat.o: win32-nat.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \
	$(gdb_string_h) $(regcache_h) $(completer_h)

xdr_ld.o: vx-share/xdr_ld.c $(defs_h) vx-share/vxTypes.h \
	vx-share/vxWorks.h vx-share/xdr_ld.h
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/vx-share/xdr_ld.c

xdr_ptrace.o: vx-share/xdr_ptrace.c $(defs_h) vx-share/vxTypes.h \
	vx-share/vxWorks.h vx-share/xdr_ptrace.h
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/vx-share/xdr_ptrace.c

xdr_rdb.o: vx-share/xdr_rdb.c $(defs_h) vx-share/vxTypes.h \
	vx-share/vxWorks.h vx-share/xdr_rdb.h
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/vx-share/xdr_rdb.c

xcoffread.o: xcoffread.c $(bfd_h) $(INCLUDE_DIR)/aout/stab.def \
	$(INCLUDE_DIR)/aout/stab_gnu.h $(INCLUDE_DIR)/coff/internal.h \
	$(INCLUDE_DIR)/coff/rs6000.h $(BFD_SRC)/libcoff.h $(buildsym_h) \
	$(complaints_h) $(defs_h) $(gdbtypes_h) $(objfiles_h) $(stabsread_h) \
	$(symfile_h) $(symtab_h) $(gdb_string_h)

xcoffsolib.o: xcoffsolib.c $(bfd_h) $(defs_h) $(xcoffsolib_h) $(inferior_h) \
	$(gdbcmd_h) $(symfile_h) $(frame_h) gdb_regex.h

# FIXME: z8k-tdep.c calls _initialize_gdbtypes().  Since that isn't
# declared -Wimplicit fails. It should be using the GDBARCH framework.
# cagney 1999-09-02.
z8k-tdep.o: z8k-tdep.c $(bfd_h) $(dis_asm_h) $(defs_h) $(frame_h) \
	$(gdbcmd_h) $(gdbtypes_h) $(symtab_h) $(gdbcore_h) $(value_h) \
	$(regcache_h)
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) \
		$(srcdir)/z8k-tdep.c

c-exp.tab.o: c-exp.tab.c $(defs_h) $(gdb_string_h) $(expression_h) \
	$(value_h) $(parser_defs_h) $(language_h) $(c_lang_h) $(bfd_h) \
	$(symfile_h) $(objfiles_h)

jv-exp.tab.o: jv-exp.tab.c jv-lang.h $(defs_h) $(expression_h) \
	$(gdbtypes_h) $(language_h) $(parser_defs_h) $(symtab_h) $(value_h) \
	$(bfd_h) $(objfiles_h) $(symfile_h)

f-exp.tab.o: f-exp.tab.c f-lang.h $(defs_h) $(expression_h) \
	$(language_h) $(parser_defs_h) $(value_h) $(bfd_h) $(objfiles_h) \
	$(symfile_h)

m2-exp.tab.o: m2-exp.tab.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) m2-lang.h $(parser_defs_h) $(symtab_h) $(value_h) \
	$(bfd_h) $(objfiles_h) $(symfile_h)

p-exp.tab.o: p-exp.tab.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	$(language_h) p-lang.h $(parser_defs_h) $(symtab_h) $(value_h) \
	$(bfd_h) $(objfiles_h) $(symfile_h)

gdb-events.o: gdb-events.c $(gdb_events_h) $(defs_h) $(gdbcmd_h)

ui-out.o: ui-out.c $(defs_h) $(ui_out_h) $(expression_h) $(language_h)
cli-out.o: cli-out.c $(defs_h) $(ui_out_h) $(cli_out_h)

varobj.o: varobj.c $(defs_h) $(frame_h) $(value_h) \
	$(language_h) $(valprint_h) $(varobj_h) $(wrapper_h)

wrapper.o: wrapper.c $(defs_h) $(frame_h) $(value_h) $(wrapper_h)

#
# CLI dependencies
#
# Need to explicitly specify the compile rule as make will do nothing
# or try to compile the object file into the cli directory.

cli-decode.o: $(srcdir)/cli/cli-decode.c $(cli_decode_h) \
		$(cli_cmds_h) $(defs_h) $(ui_out_h) \
		$(symtab_h) gdb_regex.h
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-decode.c

cli-cmds.o: $(srcdir)/cli/cli-cmds.c  $(cli_cmds_h) $(cli_decode_h) \
		$(cli_script_h) $(cli_setshow_h) $(top_h) $(completer_h) \
		 $(defs_h) $(target_h) gdb_wait.h gdb_regex.h $(ui_out_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-cmds.c

cli-setshow.o: $(srcdir)/cli/cli-setshow.c $(cli_setshow_h) \
		$(cli_decode_h) $(cli_cmds_h) $(defs_h) \
		$(value_h) $(ui_out_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-setshow.c

cli-script.o: $(srcdir)/cli/cli-script.c $(cli_script_h) \
		$(cli_cmds_h) $(cli_decode_h) $(top_h) \
		$(defs_h) $(value_h) $(language_h) $(ui_out_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-script.c

cli-utils.o: $(srcdir)/cli/cli-utils.c $(cli_utils_h) $(defs_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-utils.c

#
# MI dependencies
#
# Need to explicitly specify the compile rule as make will do nothing
# or try to compile the object file into the mi directory.

mi_cmds_h =	$(srcdir)/mi/mi-cmds.h
mi_out_h =	$(srcdir)/mi/mi-out.h
mi_parse_h =	$(srcdir)/mi/mi-parse.h
mi_getopt_h =	$(srcdir)/mi/mi-getopt.h
mi_console_h =	$(srcdir)/mi/mi-console.h

mi-cmds.o: $(srcdir)/mi/mi-cmds.c $(defs_h) $(top_h) $(mi_cmds_h) $(ui_out_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmds.c
mi-cmd-var.o: $(srcdir)/mi/mi-cmd-var.c $(defs_h) $(top_h) $(mi_cmds_h) \
		$(ui_out_h) $(varobj_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-var.c
mi-cmd-stack.o: $(srcdir)/mi/mi-cmd-stack.c $(defs_h) $(top_h) $(mi_cmds_h) \
		$(ui_out_h) $(frame_h) $(value_h) $(target_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-stack.c
mi-cmd-break.o: $(srcdir)/mi/mi-cmd-break.c $(defs_h) $(mi_cmds_h) \
		$(ui_out_h) $(mi_getopt_h) $(gdb_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-break.c
mi-cmd-disas.o: $(srcdir)/mi/mi-cmd-disas.c $(defs_h) $(mi_cmds_h) \
		$(ui_out_h) $(value_h) $(target_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-disas.c
mi-main.o: $(srcdir)/mi/mi-main.c $(defs_h) $(top_h) $(mi_cmds_h) $(ui_out_h) \
		$(mi_console_h) $(mi_getopt_h) $(event_loop_h) $(event_top_h) \
		$(mi_getopt_h) $(regcache_h) $(gdb_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-main.c
mi-out.o: $(srcdir)/mi/mi-out.c $(defs_h) $(mi_out_h) $(ui_out_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-out.c
mi-console.o: $(srcdir)/mi/mi-console.c $(mi_out_h) $(defs_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-console.c
mi-parse.o: $(srcdir)/mi/mi-parse.c $(defs_h) $(mi_parse_h) $(mi_cmds_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-parse.c
mi-getopt.o: $(srcdir)/mi/mi-getopt.c $(mi_getopt_h) $(defs_h)
	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-getopt.c

#
# TUI dependencies
#
# Need to explicitly specify the compile rule as make will do nothing
# or try to compile the object file into the mi directory.

tui.o: $(srcdir)/tui/tui.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiLayout.h $(srcdir)/tui/tuiIO.h \
		$(srcdir)/tui/tuiRegs.h $(srcdir)/tui/tuiWin.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tui.c
tui-out.o: $(srcdir)/tui/tui-out.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tui-out.c
tui-hooks.o: $(srcdir)/tui/tui-hooks.c \
		$(srcdir)/tui/tui.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tui-hooks.c
tuiCommand.o: $(srcdir)/tui/tuiCommand.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiWin.h $(srcdir)/tui/tuiIO.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiCommand.c
tuiData.o: $(srcdir)/tui/tuiData.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiData.c
tuiDataWin.o: $(srcdir)/tui/tuiDataWin.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiRegs.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiDataWin.c
tuiDisassem.o: $(srcdir)/tui/tuiDisassem.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiLayout.h $(srcdir)/tui/tuiSourceWin.h \
		$(srcdir)/tui/tuiStack.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiDisassem.c
tuiGeneralWin.o: $(srcdir)/tui/tuiGeneralWin.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiGeneralWin.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiGeneralWin.c
tuiIO.o: $(srcdir)/tui/tuiIO.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiIO.h $(srcdir)/tui/tuiCommand.h \
		$(srcdir)/tui/tuiWin.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiIO.c
tuiLayout.o: $(srcdir)/tui/tuiLayout.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiGeneralWin.h $(srcdir)/tui/tuiStack.h \
		$(srcdir)/tui/tuiRegs.h $(srcdir)/tui/tuiDisassem.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiLayout.c
tuiRegs.o: $(srcdir)/tui/tuiRegs.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiLayout.h $(srcdir)/tui/tuiWin.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiRegs.c
tuiSource.o: $(srcdir)/tui/tuiSource.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiStack.h $(srcdir)/tui/tuiSourceWin.h \
		$(srcdir)/tui/tuiSource.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiSource.c
tuiSourceWin.o: $(srcdir)/tui/tuiSourceWin.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiStack.h $(srcdir)/tui/tuiSourceWin.h \
		$(srcdir)/tui/tuiSource.h $(srcdir)/tui/tuiDisassem.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiSourceWin.c
tuiStack.o: $(srcdir)/tui/tuiStack.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiStack.h $(srcdir)/tui/tuiSourceWin.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiStack.c
tuiWin.o: $(srcdir)/tui/tuiWin.c \
		$(srcdir)/tui/tui.h $(srcdir)/tui/tuiData.h \
		$(srcdir)/tui/tuiGeneralWin.h $(srcdir)/tui/tuiStack.h \
		$(srcdir)/tui/tuiSourceWin.h $(srcdir)/tui/tuiDataWin.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(srcdir)/tui/tuiWin.c

### end of the gdb Makefile.in.
