# Copyright (C) 1989-2013 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 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

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)

datarootdir = @datarootdir@
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@

SHELL = @SHELL@
EXEEXT = @EXEEXT@

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

CC = @CC@

# Dependency tracking information.
DEPMODE = @CCDEPMODE@
DEPDIR = @DEPDIR@
depcomp = $(SHELL) $(srcdir)/../depcomp

# Note that these are overridden by GNU make-specific code below if
# GNU make is used.  The overrides implement dependency tracking.
COMPILE.pre = $(CC)
COMPILE.post = -c -o $@
COMPILE = $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post)
POSTCOMPILE = @true

# Directory containing source files.  Don't clean up the spacing,
# this exact string is matched for by the "configure" script.
srcdir = @srcdir@
abs_top_srcdir=@abs_top_srcdir@
abs_srcdir=@abs_srcdir@
VPATH = @srcdir@

# It is also possible that you will need to add -I/usr/include/sys to the
# CFLAGS section if your system doesn't have fcntl.h in /usr/include (which
# is where it should be according to Posix).

# Set this up with gcc if you have gnu ld and the loader will print out
# line numbers for undefinded refs.
#CC-LD=gcc -static
CC-LD=${CC}

# Where is the "include" directory?  Traditionally ../include or ./include
INCLUDE_DIR =  ${srcdir}/../../include
INCLUDE_DEP = $$(INCLUDE_DIR)

# Where is ust?  These will be empty if ust was not available.
ustlibs = @ustlibs@
ustinc = @ustinc@

# gnulib
GNULIB_BUILDDIR = build-gnulib-gdbserver
LIBGNU = $(GNULIB_BUILDDIR)/import/libgnu.a
INCGNU = -I$(srcdir)/../gnulib/import -I$(GNULIB_BUILDDIR)/import

# Generated headers in the gnulib directory.  These must be listed
# so that they are generated before other files are compiled.
GNULIB_H = $(GNULIB_BUILDDIR)/import/string.h @GNULIB_STDINT_H@

# All the includes used for CFLAGS and for lint.
# -I. for config files.
# -I${srcdir} for our headers.
# -I$(srcdir)/../regformats for regdef.h.
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../common \
	-I$(srcdir)/../regformats -I$(INCLUDE_DIR) \
	$(INCGNU)

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

WARN_CFLAGS = @WARN_CFLAGS@
WERROR_CFLAGS = @WERROR_CFLAGS@

WARN_CFLAGS_NO_FORMAT = `echo " $(WARN_CFLAGS) " \
		   | sed "s/ -Wformat-nonliteral / -Wno-format-nonliteral /g"`

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

# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
INTERNAL_CFLAGS_BASE =  ${CFLAGS} ${GLOBAL_CFLAGS} \
	${PROFILE_CFLAGS} ${INCLUDE_CFLAGS}
INTERNAL_WARN_CFLAGS =  ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
INTERNAL_CFLAGS =  ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER

# LDFLAGS is specifically reserved for setting from the command line
# when running make.
LDFLAGS = @LDFLAGS@
INTERNAL_LDFLAGS = $(LDFLAGS) @RDYNAMIC@

# All source files that go into linking GDB remote server.

SFILES=	$(srcdir)/gdbreplay.c $(srcdir)/inferiors.c $(srcdir)/dll.c \
	$(srcdir)/mem-break.c $(srcdir)/proc-service.c \
	$(srcdir)/proc-service.list $(srcdir)/regcache.c \
	$(srcdir)/remote-utils.c $(srcdir)/server.c $(srcdir)/target.c \
	$(srcdir)/thread-db.c $(srcdir)/utils.c \
	$(srcdir)/linux-arm-low.c $(srcdir)/linux-bfin-low.c \
	$(srcdir)/linux-cris-low.c $(srcdir)/linux-crisv32-low.c \
	${srcdir}/i386-low.c $(srcdir)/i387-fp.c \
	$(srcdir)/linux-ia64-low.c $(srcdir)/linux-low.c \
	$(srcdir)/linux-m32r-low.c \
	$(srcdir)/linux-m68k-low.c $(srcdir)/linux-mips-low.c \
	$(srcdir)/linux-ppc-low.c \
	$(srcdir)/linux-s390-low.c \
	$(srcdir)/linux-sh-low.c $(srcdir)/linux-sparc-low.c \
	$(srcdir)/linux-x86-low.c \
	$(srcdir)/linux-xtensa-low.c \
	$(srcdir)/linux-tile-low.c \
	$(srcdir)/win32-arm-low.c $(srcdir)/win32-i386-low.c \
	$(srcdir)/win32-low.c $(srcdir)/wincecompat.c \
	$(srcdir)/hostio.c $(srcdir)/hostio-errno.c \
	$(srcdir)/common/vec.c $(srcdir)/common/gdb_vecs.c \
	$(srcdir)/common/common-utils.c $(srcdir)/common/xml-utils.c \
	$(srcdir)/common/linux-osdata.c $(srcdir)/common/ptid.c \
	$(srcdir)/common/buffer.c $(srcdir)/common/linux-btrace.c

DEPFILES = @GDBSERVER_DEPFILES@

LIBOBJS = @LIBOBJS@

SOURCES = $(SFILES)
TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}

OBS = agent.o ax.o inferiors.o regcache.o remote-utils.o server.o signals.o target.o \
	utils.o version.o vec.o gdb_vecs.o \
	mem-break.o hostio.o event-loop.o tracepoint.o \
	xml-utils.o common-utils.o ptid.o buffer.o format.o \
	dll.o notif.o \
	$(XML_BUILTIN) \
	$(DEPFILES) $(LIBOBJS)
GDBREPLAY_OBS = gdbreplay.o version.o
GDBSERVER_LIBS = @GDBSERVER_LIBS@
XM_CLIBS = @LIBS@
CDEPS = $(srcdir)/proc-service.list

# XML files to compile in to gdbserver, if any.
XML_DIR = $(srcdir)/../features
XML_FILES = @srv_xmlfiles@
XML_BUILTIN = @srv_xmlbuiltin@

IPA_DEPFILES = @IPA_DEPFILES@
extra_libraries = @extra_libraries@

SUBDIRS = $(GNULIB_BUILDDIR)
CLEANDIRS = $(SUBDIRS)

# List of subdirectories in the build tree that must exist.
# This is used to force build failures in existing trees when
# a new directory is added.
# The format here is for the `case' shell command.
REQUIRED_SUBDIRS = $(GNULIB_BUILDDIR)

FLAGS_TO_PASS = \
	"prefix=$(prefix)" \
	"exec_prefix=$(exec_prefix)" \
	"infodir=$(infodir)" \
	"datarootdir=$(datarootdir)" \
	"docdir=$(docdir)" \
	"htmldir=$(htmldir)" \
	"pdfdir=$(pdfdir)" \
	"libdir=$(libdir)" \
	"mandir=$(mandir)" \
	"datadir=$(datadir)" \
	"includedir=$(includedir)" \
	"against=$(against)" \
	"DESTDIR=$(DESTDIR)" \
	"AR=$(AR)" \
	"AR_FLAGS=$(AR_FLAGS)" \
	"CC=$(CC)" \
	"CFLAGS=$(CFLAGS)" \
	"CXX=$(CXX)" \
	"CXXFLAGS=$(CXXFLAGS)" \
	"DLLTOOL=$(DLLTOOL)" \
	"LDFLAGS=$(LDFLAGS)" \
	"RANLIB=$(RANLIB)" \
	"MAKEINFO=$(MAKEINFO)" \
	"MAKEHTML=$(MAKEHTML)" \
	"MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"RUNTEST=$(RUNTEST)" \
	"RUNTESTFLAGS=$(RUNTESTFLAGS)"

# All generated files which can be included by another file.
generated_files = config.h $(GNULIB_H)

.c.o:
	$(COMPILE) $<
	$(POSTCOMPILE)

all: gdbserver$(EXEEXT) gdbreplay$(EXEEXT) $(extra_libraries)
	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do

# 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
	@$(MAKE) $(FLAGS_TO_PASS) install-only

install-only:
	n=`echo gdbserver | sed '$(program_transform_name)'`; \
	if [ x$$n = x ]; then n=gdbserver; else true; fi; \
	if [ x"$(IPA_DEPFILES)" != x ]; then \
		$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir); \
		$(INSTALL_PROGRAM) $(IPA_LIB) $(DESTDIR)$(libdir)/$(IPA_LIB); \
	fi; \
	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir); \
	$(INSTALL_PROGRAM) gdbserver$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT); \
	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man1dir); \
	$(INSTALL_DATA) $(srcdir)/gdbserver.1 $(DESTDIR)$(man1dir)/$$n.1
	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do

uninstall: force
	n=`echo gdbserver | sed '$(program_transform_name)'`; \
	if [ x$$n = x ]; then n=gdbserver; else true; fi; \
	rm -f $(DESTDIR)/$(bindir)/$$n$(EXEEXT) $(DESTDIR)$(man1dir)/$$n.1
	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do

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

gdbserver$(EXEEXT): $(OBS) ${ADD_DEPS} ${CDEPS} $(LIBGNU)
	rm -f gdbserver$(EXEEXT)
	${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbserver$(EXEEXT) $(OBS) \
	$(LIBGNU) $(GDBSERVER_LIBS) $(XM_CLIBS)

$(LIBGNU) $(GNULIB_H): all-lib
all-lib: $(GNULIB_BUILDDIR)/Makefile
	@$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do
.PHONY: all-lib

gdbreplay$(EXEEXT): $(GDBREPLAY_OBS)
	rm -f gdbreplay$(EXEEXT)
	${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbreplay$(EXEEXT) $(GDBREPLAY_OBS) \
	  $(XM_CLIBS)

IPA_OBJS=ax-ipa.o tracepoint-ipa.o format-ipa.o utils-ipa.o regcache-ipa.o remote-utils-ipa.o common-utils-ipa.o ${IPA_DEPFILES}

IPA_LIB=libinproctrace.so

$(IPA_LIB): $(IPA_OBJS) ${ADD_DEPS} ${CDEPS}
	rm -f $(IPA_LIB)
	${CC-LD} -shared -fPIC -Wl,--no-undefined $(INTERNAL_CFLAGS) \
	$(INTERNAL_LDFLAGS) -o $(IPA_LIB) ${IPA_OBJS} -ldl -pthread

# Put the proper machine-specific files first, so M-. on a machine
# specific routine gets the one for the correct machine.
# The xyzzy stuff below deals with empty DEPFILES
TAGS:	${TAGFILES}
	etags `find ${srcdir}/../config -name $(DEPRECATED_TM_FILE) -print` \
	  `find ${srcdir}/../config -name ${XM_FILE} -print` \
	  `find ${srcdir}/../config -name ${NAT_FILE} -print` \
	  `for i in yzzy ${DEPFILES}; do \
	     if [ x$$i != xyzzy ]; then \
	       echo ${srcdir}/$$i | sed -e 's/\.o$$/\.c/' ; \
	     fi; \
	   done` \
	  ${TAGFILES}
tags: TAGS

clean:
	rm -f *.o ${ADD_FILES} *~
	rm -f version.c
	rm -f gdbserver$(EXEEXT) gdbreplay$(EXEEXT) core make.log
	rm -f $(IPA_LIB)
	rm -f aarch64.c aarch64-without-fpu.c
	rm -f reg-arm.c reg-bfin.c i386.c reg-ia64.c reg-m32r.c reg-m68k.c
	rm -f reg-sh.c reg-sparc.c reg-spu.c amd64.c i386-linux.c
	rm -f reg-cris.c reg-crisv32.c amd64-linux.c reg-xtensa.c
	rm -f reg-tilegx.c reg-tilegx32.c
	rm -f arm-with-iwmmxt.c
	rm -f arm-with-vfpv2.c arm-with-vfpv3.c arm-with-neon.c
	rm -f mips-linux.c mips64-linux.c
	rm -f powerpc-32.c powerpc-32l.c powerpc-64l.c powerpc-e500l.c
	rm -f powerpc-altivec32l.c powerpc-cell32l.c powerpc-vsx32l.c
	rm -f powerpc-altivec64l.c powerpc-cell64l.c powerpc-vsx64l.c
	rm -f powerpc-isa205-32l.c powerpc-isa205-64l.c
	rm -f powerpc-isa205-altivec32l.c powerpc-isa205-vsx32l.c powerpc-isa205-altivec64l.c
	rm -f powerpc-isa205-vsx64l.c
	rm -f s390-linux32.c s390-linux64.c s390x-linux64.c
	rm -f tic6x-c64xp-linux.c tic6x-c64x-linux.c tic6x-c62x-linux.c
	rm -f xml-builtin.c stamp-xml
	rm -f i386-avx.c i386-avx-linux.c
	rm -f amd64-avx.c amd64-avx-linux.c
	rm -f i386-mmx.c i386-mmx-linux.c
	rm -f x32.c x32-linux.c
	rm -f x32-avx.c x32-avx-linux.c
	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do

maintainer-clean realclean distclean: clean
	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
	rm -rf $(GNULIB_BUILDDIR)
	rm -f Makefile config.status config.h stamp-h config.log
	rm -f Makefile

subdir_do: force
	@for i in $(DODIRS); do \
		case $$i in \
		$(REQUIRED_SUBDIRS)) \
			if [ ! -f ./$$i/Makefile ] ; then \
				echo "Missing $$i/Makefile" >&2 ; \
				exit 1 ; \
			fi ;; \
		esac ; \
		if [ -f ./$$i/Makefile ] ; then \
			if (cd ./$$i; \
				$(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
			else exit 1 ; fi ; \
		else true ; fi ; \
	done

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

Makefile: Makefile.in config.status
	CONFIG_HEADERS="" $(SHELL) ./config.status

$(GNULIB_BUILDDIR)/Makefile: $(srcdir)/../gnulib/Makefile.in config.status
	  @cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \
	  CONFIG_COMMANDS="depfiles" \
	  CONFIG_HEADERS= \
	  CONFIG_LINKS= \
	  $(SHELL) config.status

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

# automatic rebuilding in automake-generated Makefiles requires
# this rule in the toplevel Makefile, which, with GNU make, causes
# the desired updates through the implicit regeneration of the Makefile
# and all of its prerequisites.
am--refresh:
	@:

force:

version.c: Makefile $(srcdir)/../version.in
	rm -f version.c-tmp version.c
	echo '#include "server.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
	mv version.c-tmp version.c
version.o: version.c $(server_h)

xml-builtin.c: stamp-xml; @true
stamp-xml: $(XML_DIR)/feature_to_c.sh Makefile $(XML_FILES)
	rm -f xml-builtin.tmp
	$(SHELL) $(XML_DIR)/feature_to_c.sh xml-builtin.tmp $(XML_FILES)
	$(SHELL) $(srcdir)/../../move-if-change xml-builtin.tmp xml-builtin.c
	echo stamp > stamp-xml

.PRECIOUS: xml-builtin.c

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

gdb_proc_service_h = $(srcdir)/gdb_proc_service.h
regdat_sh = $(srcdir)/../regformats/regdat.sh
regdef_h = $(srcdir)/../regformats/regdef.h
regcache_h = $(srcdir)/regcache.h
signals_def = $(srcdir)/../../include/gdb/signals.def
signals_h = $(srcdir)/../../include/gdb/signals.h $(signals_def)
ptid_h = $(srcdir)/../common/ptid.h
ax_h = $(srcdir)/ax.h
agent_h = $(srcdir)/../common/agent.h
linux_btrace_h = $(srcdir)/../common/linux-btrace.h \
		$(srcdir)/../common/btrace-common.h $(vec_h) $(ptid_h)
linux_osdata_h = $(srcdir)/../common/linux-osdata.h
vec_h = $(srcdir)/../common/vec.h
gdb_vecs_h = $(srcdir)/../common/gdb_vecs.h
host_defs_h = $(srcdir)/../common/host-defs.h
libiberty_h = $(srcdir)/../../include/libiberty.h
# Since everything must include server.h, we make that depend on
# generated files.
server_h = $(srcdir)/server.h $(regcache_h) $(srcdir)/target.h \
		$(srcdir)/mem-break.h $(srcdir)/../common/gdb_signals.h \
		$(srcdir)/../common/common-utils.h \
		$(srcdir)/../common/xml-utils.h \
		$(srcdir)/../common/buffer.h \
		$(srcdir)/../common/gdb_assert.h \
		$(srcdir)/../common/gdb_locale.h \
		$(ptid_h) \
		$(signals_h) \
		$(libiberty_h) \
		$(srcdir)/../../include/ansidecl.h \
		$(generated_files)

gdbthread_h = $(srcdir)/gdbthread.h $(target_h) $(srcdir)/server.h
linux_low_h = $(srcdir)/linux-low.h $(gdbthread_h)

linux_ptrace_h = $(srcdir)/../common/linux-ptrace.h

gdb_thread_db_h = $(srcdir)/../common/gdb_thread_db.h

linux_procfs_h = $(srcdir)/../common/linux-procfs.h

lynx_low_h = $(srcdir)/lynx-low.h $(srcdir)/server.h

nto_low_h = $(srcdir)/nto-low.h

UST_CFLAGS = $(ustinc) -DCONFIG_UST_GDB_INTEGRATION

# Note, we only build the IPA if -fvisibility=hidden is supported in
# the first place.
IPAGENT_CFLAGS = $(CPPFLAGS) $(INTERNAL_CFLAGS) $(UST_CFLAGS) \
	-fPIC -DIN_PROCESS_AGENT \
	-fvisibility=hidden

IPAGENT_COMPILE = $(COMPILE.pre) $(IPAGENT_CFLAGS) $(COMPILE.post)

# In-process agent object rules
ax-ipa.o: ax.c
	$(IPAGENT_COMPILE) $(WARN_CFLAGS_NO_FORMAT) $<
	$(POSTCOMPILE)
tracepoint-ipa.o: tracepoint.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
utils-ipa.o: utils.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
format-ipa.o: ../common/format.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
common-utils-ipa.o: ../common/common-utils.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
remote-utils-ipa.o: remote-utils.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
regcache-ipa.o: regcache.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
i386-linux-ipa.o: i386-linux.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
linux-i386-ipa.o: linux-i386-ipa.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
linux-amd64-ipa.o: linux-amd64-ipa.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)
amd64-linux-ipa.o: amd64-linux.c
	$(IPAGENT_COMPILE) $<
	$(POSTCOMPILE)

ax.o: ax.c
	$(COMPILE) $(WARN_CFLAGS_NO_FORMAT) $<
	$(POSTCOMPILE)

signals.o: ../common/signals.c
	$(COMPILE) $<
	$(POSTCOMPILE)
linux-procfs.o: ../common/linux-procfs.c
	$(COMPILE) $<
	$(POSTCOMPILE)
linux-ptrace.o: ../common/linux-ptrace.c
	$(COMPILE) $<
	$(POSTCOMPILE)
common-utils.o: ../common/common-utils.c
	$(COMPILE) $<
	$(POSTCOMPILE)
vec.o: ../common/vec.c
	$(COMPILE) $<
	$(POSTCOMPILE)
gdb_vecs.o: ../common/gdb_vecs.c
	$(COMPILE) $<
	$(POSTCOMPILE)
xml-utils.o: ../common/xml-utils.c
	$(COMPILE) $<
	$(POSTCOMPILE)
linux-osdata.o: ../common/linux-osdata.c
	$(COMPILE) $<
	$(POSTCOMPILE)
ptid.o: ../common/ptid.c
	$(COMPILE) $<
	$(POSTCOMPILE)
buffer.o: ../common/buffer.c
	$(COMPILE) $<
	$(POSTCOMPILE)
format.o: ../common/format.c
	$(COMPILE) $<
	$(POSTCOMPILE)
agent.o: ../common/agent.c
	$(COMPILE) $<
	$(POSTCOMPILE)

linux-btrace.o: ../common/linux-btrace.c $(linux_btrace_h) $(server_h)
	$(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $<

# We build vasprintf with -DHAVE_CONFIG_H because we want that unit to
# include our config.h file.  Otherwise, some system headers do not get
# included, and the compiler emits a warning about implicitly defined
# functions (missing declaration).
vasprintf.o: $(srcdir)/../../libiberty/vasprintf.c
	$(COMPILE) $< -DHAVE_CONFIG_H
	$(POSTCOMPILE)
vsnprintf.o: $(srcdir)/../../libiberty/vsnprintf.c
	$(COMPILE) $<
	$(POSTCOMPILE)

i386_low_h = $(srcdir)/i386-low.h

linux-low.o: linux-low.c
	$(COMPILE) $< @USE_THREAD_DB@
	$(POSTCOMPILE)

win32_low_h = $(srcdir)/win32-low.h

aarch64.c : $(srcdir)/../regformats/aarch64.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/aarch64.dat aarch64.c
aarch64-without-fpu.c : $(srcdir)/../regformats/aarch64-without-fpu.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/aarch64-without-fpu.dat aarch64-without-fpu.c
reg-arm.c : $(srcdir)/../regformats/reg-arm.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-arm.dat reg-arm.c
arm-with-iwmmxt.c : $(srcdir)/../regformats/arm-with-iwmmxt.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-iwmmxt.dat arm-with-iwmmxt.c
arm-with-vfpv2.c : $(srcdir)/../regformats/arm-with-vfpv2.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-vfpv2.dat arm-with-vfpv2.c
arm-with-vfpv3.c : $(srcdir)/../regformats/arm-with-vfpv3.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-vfpv3.dat arm-with-vfpv3.c
arm-with-neon.c : $(srcdir)/../regformats/arm-with-neon.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-neon.dat arm-with-neon.c
reg-bfin.c : $(srcdir)/../regformats/reg-bfin.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-bfin.dat reg-bfin.c
reg-cris.c : $(srcdir)/../regformats/reg-cris.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-cris.dat reg-cris.c
reg-crisv32.c : $(srcdir)/../regformats/reg-crisv32.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-crisv32.dat reg-crisv32.c
i386.c : $(srcdir)/../regformats/i386/i386.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386.dat i386.c
i386-linux.c : $(srcdir)/../regformats/i386/i386-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-linux.dat i386-linux.c
i386-avx.c : $(srcdir)/../regformats/i386/i386-avx.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx.dat i386-avx.c
i386-avx-linux.c : $(srcdir)/../regformats/i386/i386-avx-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-linux.dat i386-avx-linux.c
i386-mmx.c : $(srcdir)/../regformats/i386/i386-mmx.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mmx.dat i386-mmx.c
i386-mmx-linux.c : $(srcdir)/../regformats/i386/i386-mmx-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mmx-linux.dat i386-mmx-linux.c
reg-ia64.c : $(srcdir)/../regformats/reg-ia64.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-ia64.dat reg-ia64.c
reg-m32r.c : $(srcdir)/../regformats/reg-m32r.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-m32r.dat reg-m32r.c
reg-m68k.c : $(srcdir)/../regformats/reg-m68k.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-m68k.dat reg-m68k.c
reg-cf.c : $(srcdir)/../regformats/reg-cf.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-cf.dat reg-cf.c
mips-linux.c : $(srcdir)/../regformats/mips-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips-linux.dat mips-linux.c
mips-dsp-linux.c : $(srcdir)/../regformats/mips-dsp-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips-dsp-linux.dat mips-dsp-linux.c
mips64-linux.c : $(srcdir)/../regformats/mips64-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips64-linux.dat mips64-linux.c
mips64-dsp-linux.c : $(srcdir)/../regformats/mips64-dsp-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips64-dsp-linux.dat mips64-dsp-linux.c
powerpc-32.c : $(srcdir)/../regformats/rs6000/powerpc-32.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-32.dat powerpc-32.c
powerpc-32l.c : $(srcdir)/../regformats/rs6000/powerpc-32l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-32l.dat powerpc-32l.c
powerpc-altivec32l.c : $(srcdir)/../regformats/rs6000/powerpc-altivec32l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-altivec32l.dat powerpc-altivec32l.c
powerpc-cell32l.c : $(srcdir)/../regformats/rs6000/powerpc-cell32l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-cell32l.dat powerpc-cell32l.c
powerpc-vsx32l.c : $(srcdir)/../regformats/rs6000/powerpc-vsx32l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-vsx32l.dat powerpc-vsx32l.c
powerpc-isa205-32l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-32l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-32l.dat powerpc-isa205-32l.c
powerpc-isa205-altivec32l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec32l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec32l.dat powerpc-isa205-altivec32l.c
powerpc-isa205-vsx32l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx32l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx32l.dat powerpc-isa205-vsx32l.c
powerpc-e500l.c : $(srcdir)/../regformats/rs6000/powerpc-e500l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-e500l.dat powerpc-e500l.c
powerpc-64l.c : $(srcdir)/../regformats/rs6000/powerpc-64l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-64l.dat powerpc-64l.c
powerpc-altivec64l.c : $(srcdir)/../regformats/rs6000/powerpc-altivec64l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-altivec64l.dat powerpc-altivec64l.c
powerpc-cell64l.c : $(srcdir)/../regformats/rs6000/powerpc-cell64l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-cell64l.dat powerpc-cell64l.c
powerpc-vsx64l.c : $(srcdir)/../regformats/rs6000/powerpc-vsx64l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-vsx64l.dat powerpc-vsx64l.c
powerpc-isa205-64l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-64l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-64l.dat powerpc-isa205-64l.c
powerpc-isa205-altivec64l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec64l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec64l.dat powerpc-isa205-altivec64l.c
powerpc-isa205-vsx64l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx64l.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx64l.dat powerpc-isa205-vsx64l.c
s390-linux32.c : $(srcdir)/../regformats/s390-linux32.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux32.dat s390-linux32.c
s390-linux32v1.c : $(srcdir)/../regformats/s390-linux32v1.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux32v1.dat s390-linux32v1.c
s390-linux32v2.c : $(srcdir)/../regformats/s390-linux32v2.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux32v2.dat s390-linux32v2.c
s390-linux64.c : $(srcdir)/../regformats/s390-linux64.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux64.dat s390-linux64.c
s390-linux64v1.c : $(srcdir)/../regformats/s390-linux64v1.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux64v1.dat s390-linux64v1.c
s390-linux64v2.c : $(srcdir)/../regformats/s390-linux64v2.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux64v2.dat s390-linux64v2.c
s390x-linux64.c : $(srcdir)/../regformats/s390x-linux64.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64.dat s390x-linux64.c
s390x-linux64v1.c : $(srcdir)/../regformats/s390x-linux64v1.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64v1.dat s390x-linux64v1.c
s390x-linux64v2.c : $(srcdir)/../regformats/s390x-linux64v2.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64v2.dat s390x-linux64v2.c

tic6x-c64xp-linux.c : $(srcdir)/../regformats/tic6x-c64xp-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/tic6x-c64xp-linux.dat tic6x-c64xp-linux.c
tic6x-c64x-linux.c : $(srcdir)/../regformats/tic6x-c64x-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/tic6x-c64x-linux.dat tic6x-c64x-linux.c
tic6x-c62x-linux.c : $(srcdir)/../regformats/tic6x-c62x-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/tic6x-c62x-linux.dat tic6x-c62x-linux.c

reg-sh.c : $(srcdir)/../regformats/reg-sh.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-sh.dat reg-sh.c
reg-sparc64.c : $(srcdir)/../regformats/reg-sparc64.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-sparc64.dat reg-sparc64.c
reg-spu.c : $(srcdir)/../regformats/reg-spu.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-spu.dat reg-spu.c
amd64.c : $(srcdir)/../regformats/i386/amd64.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64.dat amd64.c
amd64-linux.c : $(srcdir)/../regformats/i386/amd64-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-linux.dat amd64-linux.c
amd64-avx.c : $(srcdir)/../regformats/i386/amd64-avx.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx.dat amd64-avx.c
amd64-avx-linux.c : $(srcdir)/../regformats/i386/amd64-avx-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-linux.dat amd64-avx-linux.c
x32.c : $(srcdir)/../regformats/i386/x32.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32.dat x32.c
x32-linux.c : $(srcdir)/../regformats/i386/x32-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-linux.dat x32-linux.c
x32-avx.c : $(srcdir)/../regformats/i386/x32-avx.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx.dat x32-avx.c
x32-avx-linux.c : $(srcdir)/../regformats/i386/x32-avx-linux.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-linux.dat x32-avx-linux.c
reg-xtensa.c : $(srcdir)/../regformats/reg-xtensa.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-xtensa.dat reg-xtensa.c
reg-tilegx.c : $(srcdir)/../regformats/reg-tilegx.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-tilegx.dat reg-tilegx.c
reg-tilegx32.c : $(srcdir)/../regformats/reg-tilegx32.dat $(regdat_sh)
	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-tilegx32.dat reg-tilegx32.c

#
# Dependency tracking.  Most of this is conditional on GNU Make being
# found by configure; if GNU Make is not found, we fall back to a
# simpler scheme.
#

@GMAKE_TRUE@ifeq ($(DEPMODE),depmode=gcc3)
# Note that we put the dependencies into a .Tpo file, then move them
# into place if the compile succeeds.  We need this because gcc does
# not atomically write the dependency output file.
@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
@GMAKE_TRUE@	-MF $(DEPDIR)/$(basename $(@F)).Tpo
@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \
@GMAKE_TRUE@	$(DEPDIR)/$(basename $(@F)).Po
@GMAKE_TRUE@else
@GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \
@GMAKE_TRUE@	DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC)
# depcomp handles atomicity for us, so we don't need a postcompile
# step.
@GMAKE_TRUE@override POSTCOMPILE =
@GMAKE_TRUE@endif

# A list of all the objects we might care about in this build, for
# dependency tracking.
all_object_files = $(OBS) $(GDBREPLAY_OBS)

# Ensure that generated files are created early.  Use order-only
# dependencies if available.  They require GNU make 3.80 or newer,
# and the .VARIABLES variable was introduced at the same time.
@GMAKE_TRUE@ifdef .VARIABLES
@GMAKE_TRUE@$(all_object_files): | $(generated_files)
@GMAKE_TRUE@else
$(all_object_files) : $(generated_files)
@GMAKE_TRUE@endif

# Dependencies.
@GMAKE_TRUE@-include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files))

# This is the end of "Makefile.in".
