Makefile.in   [plain text]


# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
# 1998, 1999, 2000 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@:@srcdir@/../gdb-next:@srcdir@/../gdb:@srcdir@/../gdb-next/display-support

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_DEP = ../libiberty/libiberty.a
LIBIBERTY = -L../libiberty -liberty
LIBIBERTY_CFLAGS =

# The "electric-fence" malloc debugging library
EFENCE_DEP = ../electric-fence/libefence.a
EFENCE = -L../electric-fence -lefence
EFENCE_CFLAGS = -I$(srcdir)/../electric-fence

# Configured by the --with-mmalloc option to configure.
MMALLOC_DEP = ../mmalloc/libmmalloc.a
MMALLOC = @MMALLOC@
MMALLOC_CFLAGS = @MMALLOC_CFLAGS@

# We are using our own version of REGEX now to be consistent across
# machines.
REGEX = @REGEX@

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

# Where is the READLINE library?  Typically in ../readline.
READLINE_DIR = ../readline
READLINE_SRC = $(srcdir)/$(READLINE_DIR)
READLINE_DEP = ../readline/libreadline.a
READLINE = $(READLINE_DIR)/libreadline.a
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)

#
# 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 = \
	mi/mi-cmds.c mi/mi-parse.c mi/mi-main.c
SUBDIR_MI_LDFLAGS=
SUBDIR_MI_CFLAGS= \
	-DUI_OUT=1
SUBDIR_MI_ALL=
SUBDIR_MI_CLEAN=
SUBDIR_MI_INSTALL=
SUBDIR_MI_UNINSTALL=

#
# TUI sub directory definitions
#
SUBDIR_TUI_OBS = \
	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
SUBDIR_TUI_SRCS = \
	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
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_DEP = ../opcodes/libopcodes.a
OPCODES = -L../opcodes -lopcodes
OPCODES_CFLAGS = -I$(OP_INCLUDE)
# Where are the other opcode tables which only have header file
# versions?
OP_INCLUDE = $(INCLUDE_DIR)/opcode

# 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 =
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 =

# 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)
SUBDIR_GDBTK_ALL= all-gdbtk
SUBDIR_GDBTK_CLEAN= clean-gdbtk
SUBDIR_GDBTK_INSTALL= install-gdbtk
SUBDIR_GDBTK_UNINSTALL= 

CONFIG_OBS= @CONFIG_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 and possibly for gnu-regex.h also.
# -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@ -Dfree=xfree
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) $(EFENCE_CFLAGS) $(MMALLOC_CFLAGS) $(INCLUDE_CFLAGS) \
	$(INTL_CFLAGS) $(TUI_CFLAGS) $(ENABLE_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@ \
	 -liberty -lmmalloc -lintl
CLIBS = $(SIM) $(BFD) $(READLINE) $(OPCODES) $(INTL) \
	$(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \
	$(LIBIBERTY) $(MMALLOC) $(EFENCE) $(WIN32LIBS)
CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD_DEP) $(READLINE) \
	$(OPCODES_DEP) $(MMALLOC_DEP) $(EFENCE_DEP) $(INTL_DEPS) $(LIBIBERTY_DEP) $(CONFIG_DEPS)

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

VERSION = 5.0
DIST=gdb

LINT=/usr/5bin/lint
LINTFLAGS= $(BFD_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 \
	command.c complaints.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 interpreter.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 \
	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 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 \
	ui-file.h ui-file.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

dcache_h = dcache.h
remote_utils_h = $(dcache_h) serial.h target.h remote-utils.h $(remote-sim_h)

WARN_CFLAGS = @WARN_CFLAGS@

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

gdbcore_h =	gdbcore.h $(bfd_h)

frame_h =	frame.h
symtab_h =	symtab.h bcache.h
gdbtypes_h =	gdbtypes.h
expression_h =	expression.h
value_h =	value.h $(symtab_h) $(gdbtypes_h) $(expression_h)

breakpoint_h =	breakpoint.h $(frame_h) $(value_h)

command_h =	command.h
gdbcmd_h =	gdbcmd.h $(command_h)

call_cmds_h =	call-cmds.h
xm_h =		@xm_h@
tm_h =		@tm_h@
nm_h =		@nm_h@
defs_h =	defs.h $(xm_h) $(tm_h) $(nm_h) config.status config.h gdbarch.h ui-file.h

top_h =		top.h
inferior_h =	inferior.h $(breakpoint_h)
tracepoint_h =	tracepoint.h
ax_h = 		ax.h
event_loop_h =  event-loop.h
event_top_h = 	event-top.h
inf_loop_h =  	inf-loop.h
remote_h =	remote.h
version_h = 	version.h
ui_out_h =      ui-out.h
cli_out_h =	cli-out.h
interpreter_h = interpreter.h
arch_utils_h = arch-utils.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) gdbcore.h \
	gdb-stabs.h hpread.h $(inferior_h) language.h minimon.h monitor.h \
	objfiles.h parser-defs.h partial-stab.h serial.h signals.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_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

POSSLIBS = gnu-regex.c gnu-regex.h

# {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) $(XDEPFILES) $(SER_HARDWIRE) $(NATDEPFILES) \
	   $(REMOTE_OBS) $(SIM_OBS) $(CONFIG_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) \
	$(POSSLIBS)
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 command.o \
	expprint.o environ.o stack.o thread.o \
	event-loop.o event-top.o inf-loop.o \
	gdbarch.o arch-utils.o gdbtypes.o copying.o $(DEPFILES) \
	mem-break.o target.o parse.o language.o $(YYOBJ) buildsym.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 machoread.o symread.o pefread.o \
	dwarfread.o dwarf2read.o mipsread.o stabsread.o corefile.o \
	c-lang.o objc-lang.o ch-exp.o ch-lang.o f-lang.o \
	ui-out.o cli-out.o interpreter.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 tui-file.o

OBS = $(COMMON_OBS) $(ANNOTATE_OBS)

TSOBS = inflow.o

NTSOBS = standalone.o

NTSSTART = kdb-start.o

SUBDIRS = @SUBDIRS@

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

YYOBJ = c-exp.tab.o \
	objc-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.
%.o %.d: %.c
	$(CC) -c $(INTERNAL_CFLAGS) $<
%.o %.d: %.m
	$(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 $(datadir)/gdbtcl
	@$(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 (remote-udi.o -> _initialize_remote_udi, 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. Like for instance 
# tui-file.c.
#

INIT_FILES = $(OBS) $(TSOBS) $(CONFIG_INITS)

init.c.hidden: $(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

init.c: $(INIT_FILES)
	@echo Making init.c
	rm -f init.c-tmp
	echo '/* Do not modify this file.  */' >init.c-tmp
	echo '/* It is created automatically by the Makefile.  */'>>init.c-tmp
	echo 'void initialize_all_files () {' >>init.c-tmp
	for i in $^; do \
	  filebase=`echo $$i | sed \
	    -e '/^Onindy.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//'` ; \
	  case $$filebase in \
	    "") \
	      ;; \
	    *) \
	      if [ -f $$filebase ]; then \
		pathname=$$filebase; \
	      elif [ -f $(srcdir)/../gdb/$$filebase.c ]; then \
	        pathname=$(srcdir)/../gdb/$$filebase.c; \
	      elif [ -f $(srcdir)/../gdb/$$filebase.m ]; then \
	        pathname=$(srcdir)/../gdb/$$filebase.m; \
	      elif [ -f $(srcdir)/../gdb/tui/$$filebase.c ]; then \
	        pathname=$(srcdir)/../gdb/tui/$$filebase.c; \
	      elif [ -f $(srcdir)/../gdb/tui/$$filebase.m ]; then \
	        pathname=$(srcdir)/../gdb/tui/$$filebase.m; \
	      elif [ -f $(srcdir)/../gdb/mi/$$filebase.c ]; then \
	        pathname=$(srcdir)/../gdb/mi/$$filebase.c; \
	      elif [ -f $(srcdir)/../gdb/mi/$$filebase.m ]; then \
	        pathname=$(srcdir)/../gdb/mi/$$filebase.m; \
	      elif [ -f $(srcdir)/../gdb-next/$$filebase.c ]; then \
	        pathname=$(srcdir)/../gdb-next/$$filebase.c; \
	      elif [ -f $(srcdir)/../gdb-next/$$filebase.m ]; then \
	        pathname=$(srcdir)/../gdb-next/$$filebase.m; \
	      elif [ -f $(srcdir)/../gdb-next/display-support/$$filebase.c ]; then \
	        pathname=$(srcdir)/../gdb-next/display-support/$$filebase.c; \
	      elif [ -f $(srcdir)/../gdb-next/display-support/$$filebase.m ]; then \
	        pathname=$(srcdir)/../gdb-next/display-support/$$filebase.m; \
	      elif [ -f ../gdb/$$filebase.c ]; then \
	        pathname=../gdb/$$filebase.c; \
	      elif [ -f ../gdb/$$filebase.m ]; then \
	        pathname=../gdb/$$filebase.m; \
	      elif [ -f ../tui/$$filebase.c ]; then \
	        pathname=../tui/$$filebase.c; \
	      elif [ -f ../tui/$$filebase.m ]; then \
	        pathname=../tui/$$filebase.m; \
	      elif [ -f ../mi/$$filebase.c ]; then \
	        pathname=../mi/$$filebase.c; \
	      elif [ -f ../mi/$$filebase.m ]; then \
	        pathname=../mi/$$filebase.m; \
	      elif [ -f ../gdb-next/$$filebase.c ]; then \
	        pathname=../gdb-next/$$filebase.c; \
	      elif [ -f ../gdb-next/$$filebase.m ]; then \
	        pathname=../gdb-next/$$filebase.m; \
	      elif [ -f ../gdb-next/display-support/$$filebase.c ]; then \
	        pathname=../gdb-next/display-support/$$filebase.c; \
	      elif [ -f ../gdb-next/display-support/$$filebase.m ]; then \
	        pathname=../gdb-next/display-support/$$filebase.m; \
	      else \
	        echo "unable to locate $$filebase"; \
		pathname=/dev/null; \
	      fi; \
	      sed < $$pathname >> init.c-tmp -n \
	        -e '/^_initialize_[a-z_0-9A-Z]* *(/s/^\([a-z_0-9A-Z]*\).*/  {extern void \1 (); \1 ();}/p' ; \
	      ;; \
	  esac ; \
	done
	echo '}' >> init.c-tmp
	mv init.c-tmp init.c

.PRECIOUS: init.c

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

strip-gdb:
	echo "stripping __objcInit";
	echo "__objcInit" > /tmp/macosx-syms-to-remove;
	strip -R /tmp/macosx-syms-to-remove -X gdb$(EXEEXT)
	rm -f /tmp/macosx-syms-to-remove;

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

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-isi.h tm-sun3.h tm-news.h tm-hp300bsd.h tm-altos.h: tm-m68k.h
tm-hp300hpux.h tm-sun2.h tm-3b1.h: tm-m68k.h
xm-news1000.h: xm-news.h
xm-i386-sv32.h: xm-i386.h
tm-i386gas.h: tm-i386.h
xm-sun4os4.h: xm-sparc.h
tm-sun4os4.h: tm-sparc.h
xm-vaxult.h: xm-vax.h
xm-vaxbsd.h: xm-vax.h

kdb:	$(NTSSTART) $(OBS) $(NTSOBS) $(ADD_DEPS) $(CDEPS)
	ld -o kdb $(NTSSTART) $(OBS) $(NTSOBS) init.o $(ADD_FILES) $(CLIBS)

# Have the TUI library depend on a phony target, so we'll always
# recurse and make sure it's up to date.  If it is, then the file will
# be unchanged, and we won't rebuild it.
# .PHONY: check-tui
all-tui: 
	@(cd tui; ${MAKE} ${FLAGS_TO_PASS} all)

# 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

# Give the `clean' target an extra `:' so people can add additional
# clean rules to their makefile fragments
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
	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.
distclean: clean
	@$(MAKE) $(FLAGS_TO_PASS) DO=distclean "DODIRS=$(SUBDIRS)" subdir_do 
	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 \
		objc-exp.tab.c
		jv-exp.tab.c \
		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:`basename 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
	rm -f version.c
	echo '#include "version.h"' >> version.c
	echo 'const char version[] = "$(VERSION)";' >> version.c
	echo 'const char host_name[] = "$(host_alias)";' >> version.c
	echo 'const char target_name[] = "$(target_alias)";' >> version.c
	echo 'const char build_date[] = "$(shell date -u)";' >> 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.o: c-exp.tab.c
c-exp.tab.c: c-exp.y
	$(SHELL) $(YLWRAP) "$(YACC)" $< 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

objc-exp.tab.o: objc-exp.tab.c
objc-exp.tab.c: objc-exp.y
	$(SHELL) $(YLWRAP) "$(YACC)" $< y.tab.c objc-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' \
	  < objc-exp.tmp > objc-exp.new
	-rm objc-exp.tmp
	mv objc-exp.new ./objc-exp.tab.c

jv-exp.tab.o: jv-exp.tab.c
jv-exp.tab.c: jv-exp.y
	$(SHELL) $(YLWRAP) "$(YACC)" $< 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)" $< 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)" $< 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: c-exp.tab.c objc-exp.tab.c jv-exp.tab.c f-exp.tab.c m2-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 \
	altos-xdep.c arm-convert.s \
	arm-linux-nat.c arm-linux-tdep.c arm-tdep.c arm-xdep.c \
	coff-solib.c convex-tdep.c convex-xdep.c \
	core-sol2.c core-regset.c core-aout.c corelow.c core-macho.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 \
        hp-psymtab-read.c hp-symtab-read.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 \
	i387-tdep.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 isi-xdep.c \
	lynx-nat.c m3-nat.c \
	m68k-tdep.c \
	m88k-nat.c m88k-tdep.c mac-nat.c \
	mcore-tdep.c \
	mips-nat.c \
	mips-tdep.c mipsm3-nat.c mipsv4-nat.c news-xdep.c \
	nindy-share/Onindy.c nindy-share/nindy.c \
	nindy-share/ttyflush.c nindy-tdep.c \
	ns32k-tdep.c ns32km3-nat.c osfsolib.c \
	somread.c somsolib.c $(HPREAD_SOURCE) \
	ppc-linux-nat.c ppc-linux-tdep.c \
	procfs.c pyr-tdep.c pyr-xdep.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 \
	ser-go32.c ser-pipe.c ser-ocd.c ser-tcp.c \
	sh-tdep.c solib.c sparc-nat.c \
	sparc-tdep.c sparcl-tdep.c sun3-nat.c sun386-nat.c \
	symm-tdep.c symm-nat.c \
	tahoe-tdep.c ultra3-nat.c ultra3-xdep.c umax-xdep.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 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

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

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

alpha-nat.o: alpha-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h

alpha-tdep.o: alpha-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(symtab_h) $(dis-asm.h) gdb_string.h

# OBSOLETE altos-xdep.o: altos-xdep.c $(defs_h) $(gdbcore_h) $(inferior_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

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

arm-tdep.o: arm-tdep.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \
	$(gdbcore_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

breakpoint.o: breakpoint.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) language.h target.h gdbthread.h gdb_string.h \
	gdb-events.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

c-valprint.o: c-valprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \
	language.h $(symtab_h) valprint.h $(value_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

command.o: command.c $(defs_h) $(expression_h) $(gdbcmd_h) \
	$(gdbtypes_h) $(symtab_h) $(value_h) gdb_string.h gdb_wait.h

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

# OBSOLETE convex-tdep.o: convex-tdep.c gdb_wait.h $(defs_h) $(gdbcmd_h) \
# OBSOLETE	$(gdbcore_h) $(inferior_h)

# OBSOLETE convex-xdep.o: convex-xdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
# OBSOLETE	$(inferior_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)

core-sol2.o: core-sol2.c $(command_h) $(defs_h) $(gdbcore_h) \
	$(inferior_h) target.h gdb_string.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

corelow.o: corelow.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
	target.h gdbthread.h gdb_string.h

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

dcache.o: dcache.c $(dcache_h) $(defs_h) $(gdbcmd_h) gdb_string.h $(gdbcore_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 partial-stab.h stabsread.h \
	symfile.h $(symtab_h) target.h gdb_string.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

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

dstread.o: dstread.c gdb_string.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

event-loop.o: event-loop.c $(defs_h) $(top_h) $(event_loop_h) $(event_top_h)
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $<

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 $(interpreter_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

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.o: regcache.c $(defs_h) $(inferior_h) target.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

# FIXME: cagney/2000-03-27: Post 5.0 this link code can be removed.
# It should now be possible to run GDBtk from the build directory
# without the link in place.
all-gdbtk:
	@if test ! -d gdbtcl/images ; then \
	  if test "$(LN_S)" = "ln -s" ; then \
	    echo linking ${srcdir}/gdbtk/library to gdbtcl ; \
	    rm -f gdbtcl ; \
	    test ! -r gdbtcl || exit 1 ; \
	    $(LN_S) ${srcdir}/gdbtk/library gdbtcl ; \
	  else \
	    echo "Warning:" ; \
	    echo "Unable to link ${srcdir}/gdbtk/library to gdbtcl." ; \
	    echo "You will need to do a \`make install' before you are" ; \
	    echo "able to run the GUI." ; \
	  fi ; \
	else true ; fi

clean-gdbtk:
	rm -f gdbtcl

install-gdbtk:
	$(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gdbtcl ; \
	$(SHELL) $(srcdir)/../mkinstalldirs \
		$(datadir)/gdbtcl/images \
		$(datadir)/gdbtcl/images2 ; \
	$(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gdbtcl/help \
		$(datadir)/gdbtcl/help/images \
		$(datadir)/gdbtcl/help/trace ; \
	cd $(srcdir)/gdbtk/library ; \
	for i in *.tcl *.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 $(datadir)/gdbtcl/$$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=\"$(datadir)/gdbtcl\"

gdbtk-cmds.o: $(srcdir)/gdbtk/generic/gdbtk-cmds.c \
	$(srcdir)/gdbtk/generic/gdbtk.h \
	$(defs_h) $(symtab_h) $(inferior_h)	\
	$(command_h) $(bfd_h) $(top_h) symfile.h objfiles.h target.h	\
	gdb_string.h $(tracepoint_h) $(frame_h) source.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=\"$(datadir)/gdbtcl\"

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=\"$(datadir)/gdbtcl\"

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
	$(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)

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)

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)

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

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

h8300-tdep.o: h8300-tdep.c $(defs_h) $(frame_h) $(symtab_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)

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

hppa-tdep.o: hppa-tdep.c gdb_wait.h $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) objfiles.h symfile.h target.h

hppab-nat.o: hppab-nat.c $(bfd_h) $(defs_h) $(inferior_h) target.h

hppah-nat.o: hppah-nat.c $(bfd_h) $(defs_h) $(inferior_h) target.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)

i386aix-nat.o: i386aix-nat.c $(defs_h) $(frame_h) $(inferior_h) \
	language.h $(gdbcore_h) $(floatformat_h) target.h

i386b-nat.o: i386b-nat.c $(defs_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)

i386m3-nat.o: i386m3-nat.c $(defs_h) $(inferior_h) $(floatformat_h) target.h

i386mach-nat.o: i386mach-nat.c $(defs_h) $(gdbcore_h) $(inferior_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) $(frame_h) symfile.h objfiles.h

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

i387-tdep.o: i387-tdep.c $(floatformat_h) $(defs_h) $(gdbcore_h) \
	$(inferior_h) language.h

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

ia64-linux-nat.o: ia64-linux-nat.c  $(defs_h) $(inferior_h) $(target_h) \
	$(gdbcore_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 $(INCLUDE_DIR)/elf/common.h

infcmd.o: infcmd.c $(defs_h) environ.h $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) target.h language.h gdb_string.h

inflow.o: inflow.c $(bfd_h) $(command_h) $(defs_h) $(inferior_h) \
	signals.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)

infrun.o: infrun.c gdb_wait.h $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) target.h gdbthread.h gdb_string.h $(event_loop_h) \
	$(event_top_h) target.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)
irix5-nat.o: irix5-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) target.h \
	$(symtab_h) symfile.h objfiles.h $(command_h) $(frame_h) gnu-regex.h \
	language.h gdb_string.h

isi-xdep.o: isi-xdep.c

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) $(INCLUDE_DIR)/demangle.h jv-lang.h gdb_string.h \
	typeprint.h c-lang.h

jv-valprint.o: jv-valprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
	$(expression_h) $(value_h) $(INCLUDE_DIR)/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

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)

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

m68k-tdep.o: m68k-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(value_h) \
	$(gdbcore_h) gdb_string.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

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

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

mac-nat.o: mac-nat.c $(defs_h) gdb_string.h

main.o: main.c top.h $(defs_h) gdb_string.h $(event_loop_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)

mcore-rom.o: mcore-rom.c $(defs_h) $(gdbcore_h) target.h monitor.h \
	gdb_string.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 partial-stab.h stabsread.h symfile.h $(symtab_h) \
	gdb_string.h

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

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

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

minsyms.o: minsyms.c $(bfd_h) $(defs_h) objfiles.h symfile.h \
	$(symtab_h) gdb_string.h

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

mips-tdep.o: mips-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(arch_utils_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 partial-stab.h stabsread.h symfile.h $(symtab_h) \
	gdb_string.h

mipsv4-nat.o: mipsv4-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h

monitor.o: monitor.c monitor.h $(bfd_h) gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(inferior_h) target.h serial.h terminal.h gdb_string.h

news-xdep.o: news-xdep.c

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

ns32km3-nat.o: ns32km3-nat.c $(defs_h) $(inferior_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)

osfsolib.o: osfsolib.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
	objfiles.h gnu-regex.h symfile.h target.h language.h gdb_string.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)

pa64solib.o: pa64solib.c $(defs_h)

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

# FIXME!!!
hpread.o: hpread.c $(bfd_h) buildsym.h complaints.h $(defs_h) \
	gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h

hp-psymtab-read.o: hp-psymtab-read.c hpread.h $(bfd_h) buildsym.h complaints.h \
	$(defs_h) gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h
 
hp-symtab-read.o: hp-symtab-read.c hpread.h $(bfd_h) buildsym.h complaints.h \
	$(defs_h) gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h
# END FIXME!!!  

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

ppc-bdm.o: ppc-bdm.c $(defs_h) $(gdbcore_h) gdb_string.h $(frame_h) \
	$(inferior_h) $(bfd_h) symfile.h target.h gdb_wait.h $(gdbcmd_h) \
	objfiles.h gdb-stabs.h serial.h ocd.h

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

ppc-linux-tdep.o: ppc-linux-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) \
	target.h ppc-tdep.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

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

# 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) $<

proc-api.o: proc-api.c $(defs_h) $(gdbcmd_h) proc-utils.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)

linux-thread.o: linux-thread.c $(breakpoint_h) $(gdbcmd_h) gdb_wait.h \
	gdbthread.h $(gdbcore_h) $(inferior_h) target.h $(defs_h)

# OBSOLETE pyr-tdep.o: pyr-tdep.c $(defs_h) 

# OBSOLETE pyr-xdep.o: pyr-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h) 

gnu-regex.o: gnu-regex.c gnu-regex.h $(defs_h) gdb_string.h

remote-adapt.o: remote-adapt.c gdb_wait.h $(defs_h) $(gdbcore_h) \
	$(inferior_h) target.h terminal.h gdb_string.h

remote-array.o: remote-array.c gdb_wait.h $(defs_h) $(gdbcore_h) target.h \
      gdb_string.h $(command_h) serial.h monitor.h $(remote_utils_h) \
	$(version_h)

remote-rdi.o: remote-rdi.c gdb_wait.h $(defs_h) $(gdbcore_h) \
	$(inferior_h) gdb_string.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-d10v.o: remote-d10v.c $(bfd_h) gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(inferior_h) $(remote_utils_h) symfile.h terminal.h gdb_string.h

remote-rdp.o: remote-rdp.c gdb_wait.h $(defs_h) $(gdbcore_h) \
	$(inferior_h) gdb_string.h

remote-bug.o: remote-bug.c gdb_wait.h $(defs_h) $(gdbcore_h) \
	$(inferior_h) target.h terminal.h $(remote_utils_h) gdb_string.h

# FIXME: For the SH target, remote-e7000 contains numerous -Wformat
# warnings.  Since the fixes involve modifications to the code that
# handles the SH remote protocol the changes need to be tested against
# an SH board before they can be committed. cagney 1999-09-01.
remote-e7000.o: remote-e7000.c $(defs_h) $(gdbcore_h) target.h \
	gdb_wait.h serial.h gdb_string.h
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $<

remote-eb.o: remote-eb.c gdb_wait.h $(srcdir)/config/a29k/tm-a29k.h \
	$(defs_h) $(gdbcore_h) $(inferior_h) symfile.h target.h terminal.h \
	gdb_string.h

remote-es.o: remote-es.c $(bfd_h) gdb_wait.h $(command_h) $(defs_h) \
	$(inferior_h) $(remote_utils_h) terminal.h gdb_string.h

remote-hms.o: remote-hms.c gdb_wait.h $(defs_h) $(gdbcore_h) \
	$(inferior_h) serial.h target.h terminal.h gdb_string.h

remote-mips.o: remote-mips.c gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(gdbcore_h) $(inferior_h) serial.h symfile.h target.h

remote-mm.o: remote-mm.c $(bfd_h) gdb_wait.h $(defs_h) $(inferior_h) \
	minimon.h target.h terminal.h gdb_string.h

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

remote-os9k.o: remote-os9k.c $(defs_h) $(gdbcore_h) gdb_wait.h \
	$(command_h) monitor.h $(remote_utils_h) $(symtab_h) symfile.h \
	objfiles.h gdb-stabs.h gdb_string.h

remote-sds.o: remote-sds.c $(bfd_h) gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(inferior_h) $(remote_utils_h) symfile.h terminal.h gdb_string.h

remote-sim.o: remote-sim.c gdb_wait.h $(defs_h) $(gdbcore_h) \
	$(inferior_h) target.h terminal.h gdb_string.h \
	$(INCLUDE_DIR)/callback.h

remote-st.o: remote-st.c gdb_wait.h $(defs_h) $(gdbcore_h) serial.h \
	target.h gdb_string.h

remote-udi.o: remote-udi.c $(bfd_h) gdb_wait.h $(defs_h) $(gdbcmd_h) \
	$(inferior_h) target.h terminal.h $(udiheaders) gdb_string.h

remote-vx.o: remote-vx.c gdb_wait.h 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

remote-vx29k.o: remote-vx29k.c gdb_wait.h 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

ocd.o: ocd.c ocd.h $(gdbcore_h) gdb_string.h $(frame_h) $(inferior_h) \
	$(bfd_h) symfile.h target.h gdb_wait.h $(gdbcmd_h) objfiles.h \
	gdb-stabs.h $(dcache_h) serial.h

remote-utils.o: remote-utils.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
	$(inferior_h) $(remote_utils_h) gdb_string.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)

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

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

rs6000-tdep.o: rs6000-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) \
	target.h ppc-tdep.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-mac.o: ser-mac.c $(defs_h) serial.h signals.h

ser-ocd.o: ser-ocd.c $(defs_h) serial.h signals.h gdb_string.h

ser-pipe.o: ser-pipe.c $(defs_h) serial.h signals.h gdb_string.h ser-unix.h

ser-tcp.o: ser-tcp.c $(defs_h) serial.h signals.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)

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)

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 gnu-regex.h symfile.h target.h gdb_string.h solist.h

solib-svr4.o: solib.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
	objfiles.h gnu-regex.h symfile.h target.h gdb_string.h solist.h \
	solib-svr4.h

source.o: source.c $(defs_h) $(expression_h) $(frame_h) $(gdbcmd_h) \
	$(gdbcore_h) language.h objfiles.h gnu-regex.h symfile.h $(symtab_h) \
	gdb_string.h source.h

sparc-nat.o: sparc-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(gdbcore_h) \
	target.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)

sparcl-tdep.o: sparcl-tdep.c $(defs_h) $(gdbcore_h) target.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

stack.o: stack.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \
	language.h target.h gdb_string.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
	$(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)

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

symfile.o: symfile.c $(breakpoint_h) complaints.h $(defs_h) \
	$(expression_h) $(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) \
	language.h objfiles.h symfile.h $(symtab_h) target.h \
	gdb_string.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)

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 \
	gnu-regex.h symfile.h $(symtab_h) target.h $(value_h) \
	gdb_string.h

linespec.o: linespec.c $(defs_h) $(gdbcmd_h) $(gdbtypes_h) objfiles.h \
	symfile.h $(symtab_h) $(INCLUDE_DIR)/demangle.h inferior.h

# OBSOLETE tahoe-tdep.o: tahoe-tdep.c $(OP_INCLUDE)/tahoe.h $(defs_h) \
# OBSOLETE	$(symtab_h)

tic80-tdep.o: tic80-tdep.c $(defs_h)

target.o: target.c $(bfd_h) $(defs_h) $(gdbcmd_h) $(inferior_h) \
	objfiles.h symfile.h target.h gdb_string.h

thread.o: thread.c $(defs_h) gdbthread.h $(gdbcmd_h) target.h

top.o: top.c top.h $(bfd_h) $(getopt_h) $(readline_headers) call-cmds.h \
	$(defs_h) $(gdbcmd_h) $(inferior_h) language.h signals.h \
	$(remote_utils_h) gdb_string.h $(event_loop_h) $(event_top_h) \
        $(interpreter_h) $(version_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

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

ultra3-xdep.o: ultra3-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)

umax-xdep.o: umax-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)

utils.o: utils.c $(bfd_h) $(defs_h) $(expression_h) $(gdbcmd_h) \
	language.h signals.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

valops.o: valops.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h \
	gdb_string.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

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

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

w65-tdep.o : w65-tdep.c $(gdbcore_h)

win32-nat.o: win32-nat.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \
	gdb_string.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) partial-stab.h gdb_string.h

xcoffsolib.o: xcoffsolib.c $(bfd_h) $(defs_h) xcoffsolib.h $(inferior_h) \
	$(gdbcmd_h) symfile.h $(frame_h) gnu-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)
	$(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $<

c-exp.tab.o: c-exp.tab.c c-lang.h $(defs_h) $(expression_h) \
	$(gdbtypes_h) language.h parser-defs.h $(symtab_h) $(value_h) \
	$(bfd_h) objfiles.h symfile.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

objc-exp.tab.o: objc-exp.tab.c objc-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) $(interpreter_h)
interpreter.o: interpreter.c $(defs_h) $(ui_out_h)
varobj.o: varobj.c $(defs_h) $(frame_h) $(value_h) \
	$(language_h) valprint.h varobj.h wrapper.h
	$(CC) -c $(INTERNAL_CFLAGS)  $<
wrapper.o: wrapper.c $(defs_h) $(frame_h) $(value_h) wrapper.h

#
# 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)
	$(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)
	$(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)
	$(CC) -c $(INTERNAL_WARN_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
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

# -include Makefile.deps
# 
# Makefile.deps: $(patsubst %.o, %.d, $(filter %.o, $(OBS) $(TSOBS) $(ADD_DEPS) $(CDEPS) init.o))
#	md -o Makefile.deps $^ || touch $@

### end of the gdb Makefile.in.