X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdbserver%2FMakefile.in;h=5f69ddb5f7a282d12d0f97f8c10f5dec258f7945;hb=a1cd91dc2f4e369983fab631f18e96f5e46119bc;hp=155094bdeb37961e916227ef82ec481de113872f;hpb=f4d9badee6725f50cb4ebc607fad078a7da64584;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 155094bdeb..c07f84d512 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -1,6 +1,4 @@ -# Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. +# Copyright (C) 1989-2018 Free Software Foundation, Inc. # This file is part of GDB. @@ -17,11 +15,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# Please keep lists in this file sorted alphabetically, with one item per line. +# See gdb/Makefile.in for guidelines on ordering files and directories. + prefix = @prefix@ exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -target_alias = @target_alias@ +host_alias = @host_noncanonical@ +target_alias = @target_noncanonical@ program_transform_name = @program_transform_name@ bindir = @bindir@ libdir = @libdir@ @@ -42,55 +43,107 @@ man9dir = $(mandir)/man9 infodir = @infodir@ htmldir = $(prefix)/html includedir = @includedir@ +CONFIG_SRC_SUBDIR = @CONFIG_SRC_SUBDIR@ -SHELL = /bin/sh +SHELL = @SHELL@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ +RANLIB = @RANLIB@ CC = @CC@ +CXX = @CXX@ +CXX_DIALECT = @CXX_DIALECT@ +AR = @AR@ +AR_FLAGS = rc + +# Dependency tracking information. +DEPMODE = @CCDEPMODE@ +DEPDIR = @DEPDIR@ +depcomp = $(SHELL) $(srcdir)/../../depcomp # 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@ +include $(srcdir)/../silent-rules.mk + +# Note that these are overridden by GNU make-specific code below if +# GNU make is used. The overrides implement dependency tracking. +COMPILE.pre = $(CXX) -x c++ $(CXX_DIALECT) +COMPILE.post = -c -o $@ +COMPILE = $(ECHO_CXX) $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post) +POSTCOMPILE = @true + # 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} +#CC_LD = g++ -static +CC_LD = $(CXX) $(CXX_DIALECT) # Where is the "include" directory? Traditionally ../include or ./include -INCLUDE_DIR = ${srcdir}/../../include +INCLUDE_DIR = ${srcdir}/../../include INCLUDE_DEP = $$(INCLUDE_DIR) +LIBIBERTY_BUILDDIR = build-libiberty-gdbserver +LIBIBERTY = $(LIBIBERTY_BUILDDIR)/libiberty.a + +# 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. +# +# We do not include ../target or ../nat in here because headers +# in those directories should be included with the subdirectory. +# e.g.: "target/wait.h". +# INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../common \ - -I$(srcdir)/../regformats -I$(INCLUDE_DIR) + -I$(srcdir)/../regformats -I$(srcdir)/.. -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 = -Wall +WARN_CFLAGS = @WARN_CFLAGS@ +WERROR_CFLAGS = @WERROR_CFLAGS@ -# CFLAGS is specifically reserved for setting from the command line +WARN_CFLAGS_NO_FORMAT = `echo " $(WARN_CFLAGS) " \ + | sed "s/ -Wformat-nonliteral / -Wno-format-nonliteral /g"` + +# These are specifically reserved for setting from the command line # when running make. I.E. "make CFLAGS=-Wmissing-prototypes". CFLAGS = @CFLAGS@ +CXXFLAGS = @CXXFLAGS@ +CPPFLAGS = @CPPFLAGS@ # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. -INTERNAL_CFLAGS = $(WARN_CFLAGS) ${CFLAGS} ${GLOBAL_CFLAGS} \ - ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} +INTERNAL_CFLAGS_BASE = ${CXXFLAGS} ${GLOBAL_CFLAGS} \ + ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} +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. @@ -99,24 +152,83 @@ INTERNAL_LDFLAGS = $(LDFLAGS) @RDYNAMIC@ # All source files that go into linking GDB remote server. -SFILES= $(srcdir)/gdbreplay.c $(srcdir)/inferiors.c \ - $(srcdir)/mem-break.c $(srcdir)/proc-service.c $(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-cris-low.c \ +SFILES = \ + $(srcdir)/debug.c \ + $(srcdir)/dll.c \ + $(srcdir)/gdbreplay.c \ + $(srcdir)/hostio.c \ + $(srcdir)/hostio-errno.c \ + $(srcdir)/i387-fp.c \ + $(srcdir)/inferiors.c \ + $(srcdir)/linux-aarch64-low.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-ia64-low.c \ + $(srcdir)/linux-low.c \ $(srcdir)/linux-m32r-low.c \ - $(srcdir)/linux-m68k-low.c $(srcdir)/linux-mips-low.c \ + $(srcdir)/linux-m68k-low.c \ + $(srcdir)/linux-mips-low.c \ + $(srcdir)/linux-nios2-low.c \ $(srcdir)/linux-ppc-low.c \ $(srcdir)/linux-s390-low.c \ - $(srcdir)/linux-sh-low.c $(srcdir)/linux-sparc-low.c \ + $(srcdir)/linux-sh-low.c \ + $(srcdir)/linux-sparc-low.c \ + $(srcdir)/linux-tile-low.c \ $(srcdir)/linux-x86-low.c \ $(srcdir)/linux-xtensa-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)/mem-break.c \ + $(srcdir)/proc-service.c \ + $(srcdir)/proc-service.list \ + $(srcdir)/regcache.c \ + $(srcdir)/remote-utils.c \ + $(srcdir)/server.c \ + $(srcdir)/symbol.c \ + $(srcdir)/target.c \ + $(srcdir)/thread-db.c \ + $(srcdir)/utils.c \ + $(srcdir)/win32-arm-low.c \ + $(srcdir)/win32-i386-low.c \ + $(srcdir)/win32-low.c \ + $(srcdir)/wincecompat.c \ + $(srcdir)/x86-low.c \ + $(srcdir)/arch/arm.c \ + $(srcdir)/arch/arm-get-next-pcs.c \ + $(srcdir)/arch/arm-linux.c \ + $(srcdir)/arch/ppc-linux-common.c \ + $(srcdir)/common/btrace-common.c \ + $(srcdir)/common/buffer.c \ + $(srcdir)/common/cleanups.c \ + $(srcdir)/common/common-debug.c \ + $(srcdir)/common/common-exceptions.c \ + $(srcdir)/common/common-regcache.c \ + $(srcdir)/common/common-utils.c \ + $(srcdir)/common/errors.c \ + $(srcdir)/common/environ.c \ + $(srcdir)/common/fileio.c \ + $(srcdir)/common/filestuff.c \ + $(srcdir)/common/job-control.c \ + $(srcdir)/common/gdb_tilde_expand.c \ + $(srcdir)/common/gdb_vecs.c \ + $(srcdir)/common/netstuff.c \ + $(srcdir)/common/new-op.c \ + $(srcdir)/common/pathstuff.c \ + $(srcdir)/common/print-utils.c \ + $(srcdir)/common/ptid.c \ + $(srcdir)/common/rsp-low.c \ + $(srcdir)/common/tdesc.c \ + $(srcdir)/common/vec.c \ + $(srcdir)/common/xml-utils.c \ + $(srcdir)/nat/aarch64-sve-linux-ptrace.c \ + $(srcdir)/nat/linux-btrace.c \ + $(srcdir)/nat/linux-namespaces.c \ + $(srcdir)/nat/linux-osdata.c \ + $(srcdir)/nat/linux-personality.c \ + $(srcdir)/nat/mips-linux-watch.c \ + $(srcdir)/nat/ppc-linux.c \ + $(srcdir)/nat/fork-inferior.c \ + $(srcdir)/target/waitstatus.c DEPFILES = @GDBSERVER_DEPFILES@ @@ -125,45 +237,153 @@ LIBOBJS = @LIBOBJS@ SOURCES = $(SFILES) TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS} -OBS = inferiors.o regcache.o remote-utils.o server.o signals.o target.o \ - utils.o version.o \ - mem-break.o hostio.o event-loop.o \ - $(XML_BUILTIN) \ - $(DEPFILES) $(LIBOBJS) -GDBREPLAY_OBS = gdbreplay.o version.o +OBS = \ + ax.o \ + common/agent.o \ + common/btrace-common.o \ + common/buffer.o \ + common/cleanups.o \ + common/common-debug.o \ + common/common-exceptions.o \ + common/job-control.o \ + common/common-regcache.o \ + common/common-utils.o \ + common/errors.o \ + common/environ.o \ + common/fileio.o \ + common/filestuff.o \ + common/format.o \ + common/gdb_tilde_expand.o \ + common/gdb_vecs.o \ + common/netstuff.o \ + common/new-op.o \ + common/pathstuff.o \ + common/print-utils.o \ + common/ptid.o \ + common/rsp-low.o \ + common/signals.o \ + common/signals-state-save-restore.o \ + common/tdesc.o \ + common/vec.o \ + common/xml-utils.o \ + debug.o \ + dll.o \ + event-loop.o \ + hostio.o \ + inferiors.o \ + mem-break.o \ + notif.o \ + regcache.o \ + remote-utils.o \ + server.o \ + symbol.o \ + target.o \ + tdesc.o \ + tracepoint.o \ + utils.o \ + version.o \ + waitstatus.o \ + $(DEPFILES) \ + $(LIBOBJS) \ + $(XML_BUILTIN) + +GDBREPLAY_OBS = \ + common/cleanups.o \ + common/common-exceptions.o \ + common/common-utils.o \ + common/errors.o \ + common/netstuff.o \ + common/print-utils.o \ + gdbreplay.o \ + utils.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@ -# Prevent Sun make from putting in the machine type. Setting -# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1. -.c.o: - ${CC} -c ${INTERNAL_CFLAGS} $< - -all: gdbserver$(EXEEXT) gdbreplay$(EXEEXT) +IPA_DEPFILES = @IPA_DEPFILES@ +extra_libraries = @extra_libraries@ + +SUBDIRS = $(GNULIB_BUILDDIR) $(LIBIBERTY_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) | $(LIBIBERTY_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) + +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 install-only +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 + $(INSTALL_PROGRAM) gdbserver$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT) + # Note that we run install and not install-only, as the latter + # is not part of GNU standards and in particular not provided + # in libiberty. + @$(MAKE) $(FLAGS_TO_PASS) DO=install "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 $(bindir)/$$n$(EXEEXT) $(DESTDIR)$(man1dir)/$$n.1 + rm -f $(DESTDIR)/$(bindir)/$$n$(EXEEXT) $(DESTDIR)$(man1dir)/$$n.1 + @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do installcheck: check: @@ -172,17 +392,49 @@ install-info: install-pdf: html: install-html: -clean-info: - -gdbserver$(EXEEXT): $(OBS) ${ADD_DEPS} ${CDEPS} - rm -f gdbserver$(EXEEXT) - ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbserver$(EXEEXT) $(OBS) \ - $(GDBSERVER_LIBS) $(XM_CLIBS) - -gdbreplay$(EXEEXT): $(GDBREPLAY_OBS) - rm -f gdbreplay$(EXEEXT) - ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbreplay$(EXEEXT) $(GDBREPLAY_OBS) \ - $(XM_CLIBS) +clean-info: force + @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do + +gdbserver$(EXEEXT): $(OBS) ${CDEPS} $(LIBGNU) $(LIBIBERTY) + $(SILENCE) rm -f gdbserver$(EXEEXT) + $(ECHO_CXXLD) $(CC_LD) $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \ + -o gdbserver$(EXEEXT) $(OBS) $(LIBGNU) $(LIBIBERTY) \ + $(GDBSERVER_LIBS) $(XM_CLIBS) + +$(LIBGNU) $(LIBIBERTY) $(GNULIB_H): all-lib +all-lib: $(GNULIB_BUILDDIR)/Makefile $(LIBIBERTY_BUILDDIR)/Makefile + @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS="$(SUBDIRS)" subdir_do +.PHONY: all-lib + +gdbreplay$(EXEEXT): $(GDBREPLAY_OBS) $(LIBGNU) $(LIBIBERTY) + $(SILENCE) rm -f gdbreplay$(EXEEXT) + $(ECHO_CXXLD) $(CC_LD) $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \ + -o gdbreplay$(EXEEXT) $(GDBREPLAY_OBS) $(XM_CLIBS) $(LIBGNU) \ + $(LIBIBERTY) + +IPA_OBJS = \ + ax-ipa.o \ + common/common-utils-ipa.o \ + common/errors-ipa.o \ + common/format-ipa.o \ + common/print-utils-ipa.o \ + common/rsp-low-ipa.o \ + common/tdesc-ipa.o \ + common/vec-ipa.o \ + regcache-ipa.o \ + remote-utils-ipa.o \ + tdesc-ipa.o \ + tracepoint-ipa.o \ + utils-ipa.o \ + ${IPA_DEPFILES} + +IPA_LIB = libinproctrace.so + +$(IPA_LIB): $(IPA_OBJS) ${CDEPS} + $(SILENCE) rm -f $(IPA_LIB) + $(ECHO_CXXLD) $(CC_LD) -shared -fPIC -Wl,--soname=$(IPA_LIB) \ + -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. @@ -201,25 +453,41 @@ tags: TAGS clean: rm -f *.o ${ADD_FILES} *~ - rm -f version.c rm -f gdbserver$(EXEEXT) gdbreplay$(EXEEXT) core make.log - rm -f reg-arm.c reg-i386.c reg-ia64.c reg-m32r.c reg-m68k.c - rm -f reg-sh.c reg-sparc.c reg-spu.c reg-x86-64.c reg-i386-linux.c - rm -f reg-cris.c reg-crisv32.c reg-x86-64-linux.c reg-xtensa.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-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 xml-builtin.c stamp-xml + rm -f $(IPA_LIB) + rm -f *-generated.c + rm -f stamp-xml + rm -f $(DEPDIR)/*.Po + for i in $(CONFIG_SRC_SUBDIR); do \ + rm -f $$i/*.o; \ + rm -f $$i/$(DEPDIR)/*; \ + done + @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do maintainer-clean realclean distclean: clean - rm -f nm.h tm.h xm.h config.status config.h stamp-h config.log + @$(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 + for i in $(CONFIG_SRC_SUBDIR); do \ + rmdir $$i/$(DEPDIR); \ + done + +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 @@ -228,25 +496,36 @@ stamp-h: config.in config.status Makefile: Makefile.in config.status CONFIG_HEADERS="" $(SHELL) ./config.status -config.status: configure configure.srv +$(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 $(srcdir)/../../bfd/development.sh $(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) +version-generated.c: Makefile $(srcdir)/../version.in $(srcdir)/../../bfd/version.h $(srcdir)/../common/create-version.sh + $(ECHO_GEN) $(SHELL) $(srcdir)/../common/create-version.sh $(srcdir)/.. \ + $(host_alias) $(target_alias) $@ -xml-builtin.c: stamp-xml; @true +xml-builtin-generated.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 + $(SILENCE) rm -f xml-builtin.tmp + $(ECHO_GEN_XML_BUILTIN_GENERATED) $(SHELL) $(XML_DIR)/feature_to_c.sh \ + xml-builtin.tmp $(XML_FILES) + $(SILENCE) $(SHELL) $(srcdir)/../../move-if-change xml-builtin.tmp xml-builtin-generated.c + $(SILENCE) echo stamp > stamp-xml .PRECIOUS: xml-builtin.c @@ -259,179 +538,145 @@ stamp-xml: $(XML_DIR)/feature_to_c.sh Makefile $(XML_FILES) # 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= +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 -server_h = $(srcdir)/server.h $(regcache_h) config.h $(srcdir)/target.h \ - $(srcdir)/mem-break.h $(srcdir)/../common/gdb_signals.h - -linux_low_h = $(srcdir)/linux-low.h - -event-loop.o: event-loop.c $(server_h) -hostio.o: hostio.c $(server_h) -hostio-errno.o: hostio-errno.c $(server_h) -inferiors.o: inferiors.c $(server_h) -mem-break.o: mem-break.c $(server_h) -proc-service.o: proc-service.c $(server_h) $(gdb_proc_service_h) -regcache.o: regcache.c $(server_h) $(regdef_h) -remote-utils.o: remote-utils.c terminal.h $(server_h) -server.o: server.c $(server_h) -target.o: target.c $(server_h) -thread-db.o: thread-db.c $(server_h) $(linux_low_h) $(gdb_proc_service_h) -utils.o: utils.c $(server_h) -gdbreplay.o: gdbreplay.c config.h - -signals.o: ../common/signals.c $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< -DGDBSERVER - -memmem.o: ../gnulib/memmem.c - $(CC) -o memmem.o -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -i386_low_h = $(srcdir)/i386-low.h - -i386-low.o: i386-low.c $(i386_low_h) $(server_h) $(target_h) - -i387-fp.o: i387-fp.c $(server_h) - -linux-low.o: linux-low.c $(linux_low_h) $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< @USE_THREAD_DB@ - -linux-arm-low.o: linux-arm-low.c $(linux_low_h) $(server_h) \ - $(gdb_proc_service_h) -linux-cris-low.o: linux-cris-low.c $(linux_low_h) $(server_h) -linux-crisv32-low.o: linux-crisv32-low.c $(linux_low_h) $(server_h) -linux-ia64-low.o: linux-ia64-low.c $(linux_low_h) $(server_h) -linux-m32r-low.o: linux-m32r-low.c $(linux_low_h) $(server_h) -linux-mips-low.o: linux-mips-low.c $(linux_low_h) $(server_h) \ - $(gdb_proc_service_h) -linux-ppc-low.o: linux-ppc-low.c $(linux_low_h) $(server_h) -linux-s390-low.o: linux-s390-low.c $(linux_low_h) $(server_h) -linux-sh-low.o: linux-sh-low.c $(linux_low_h) $(server_h) -linux-x86-low.o: linux-x86-low.c $(linux_low_h) $(server_h) \ - $(gdb_proc_service_h) $(i386_low_h) -linux-xtensa-low.o: linux-xtensa-low.c xtensa-xtregs.c $(linux_low_h) $(server_h) - -win32_low_h = $(srcdir)/win32-low.h - -win32-low.o: win32-low.c $(win32_low_h) $(server_h) $(regdef_h) $(regcache_h) - -win32-arm-low.o: win32-arm-low.c $(win32_low_h) $(server_h) -win32-i386-low.o: win32-i386-low.c $(win32_low_h) $(server_h) $(i386_low_h) - -spu-low.o: spu-low.c $(server_h) - -reg-arm.o : reg-arm.c $(regdef_h) -reg-arm.c : $(srcdir)/../regformats/reg-arm.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-arm.dat reg-arm.c -arm-with-iwmmxt.o : arm-with-iwmmxt.c $(regdef_h) -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.o : arm-with-vfpv2.c $(regdef_h) -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.o : arm-with-vfpv3.c $(regdef_h) -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.o : arm-with-neon.c $(regdef_h) -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-cris.o : reg-cris.c $(regdef_h) -reg-cris.c : $(srcdir)/../regformats/reg-cris.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-cris.dat reg-cris.c -reg-crisv32.o : reg-crisv32.c $(regdef_h) -reg-crisv32.c : $(srcdir)/../regformats/reg-crisv32.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-crisv32.dat reg-crisv32.c -reg-i386.o : reg-i386.c $(regdef_h) -reg-i386.c : $(srcdir)/../regformats/reg-i386.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-i386.dat reg-i386.c -reg-i386-linux.o : reg-i386-linux.c $(regdef_h) -reg-i386-linux.c : $(srcdir)/../regformats/reg-i386-linux.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-i386-linux.dat reg-i386-linux.c -reg-ia64.o : reg-ia64.c $(regdef_h) -reg-ia64.c : $(srcdir)/../regformats/reg-ia64.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-ia64.dat reg-ia64.c -reg-m32r.o : reg-m32r.c $(regdef_h) -reg-m32r.c : $(srcdir)/../regformats/reg-m32r.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-m32r.dat reg-m32r.c -reg-m68k.o : reg-m68k.c $(regdef_h) -reg-m68k.c : $(srcdir)/../regformats/reg-m68k.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-m68k.dat reg-m68k.c -mips-linux.o : mips-linux.c $(regdef_h) -mips-linux.c : $(srcdir)/../regformats/mips-linux.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips-linux.dat mips-linux.c -mips64-linux.o : mips64-linux.c $(regdef_h) -mips64-linux.c : $(srcdir)/../regformats/mips64-linux.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips64-linux.dat mips64-linux.c -powerpc-32l.o : powerpc-32l.c $(regdef_h) -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.o : powerpc-altivec32l.c $(regdef_h) -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.o : powerpc-cell32l.c $(regdef_h) -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.o : powerpc-vsx32l.c $(regdef_h) -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.o : powerpc-isa205-32l.c $(regdef_h) -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.o : powerpc-isa205-altivec32l.c $(regdef_h) -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.o : powerpc-isa205-vsx32l.c $(regdef_h) -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.o : powerpc-e500l.c $(regdef_h) -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.o : powerpc-64l.c $(regdef_h) -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.o : powerpc-altivec64l.c $(regdef_h) -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.o : powerpc-cell64l.c $(regdef_h) -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.o : powerpc-vsx64l.c $(regdef_h) -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.o : powerpc-isa205-64l.c $(regdef_h) -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.o : powerpc-isa205-altivec64l.c $(regdef_h) -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.o : powerpc-isa205-vsx64l.c $(regdef_h) -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 -reg-s390.o : reg-s390.c $(regdef_h) -reg-s390.c : $(srcdir)/../regformats/reg-s390.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-s390.dat reg-s390.c -reg-s390x.o : reg-s390x.c $(regdef_h) -reg-s390x.c : $(srcdir)/../regformats/reg-s390x.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-s390x.dat reg-s390x.c -reg-sh.o : reg-sh.c $(regdef_h) -reg-sh.c : $(srcdir)/../regformats/reg-sh.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-sh.dat reg-sh.c -reg-sparc64.o : reg-sparc64.c $(regdef_h) -reg-sparc64.c : $(srcdir)/../regformats/reg-sparc64.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-sparc64.dat reg-sparc64.c -reg-spu.o : reg-spu.c $(regdef_h) -reg-spu.c : $(srcdir)/../regformats/reg-spu.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-spu.dat reg-spu.c -reg-x86-64.o : reg-x86-64.c $(regdef_h) -reg-x86-64.c : $(srcdir)/../regformats/reg-x86-64.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-x86-64.dat reg-x86-64.c -reg-x86-64-linux.o : reg-x86-64-linux.c $(regdef_h) -reg-x86-64-linux.c : $(srcdir)/../regformats/reg-x86-64-linux.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-x86-64-linux.dat reg-x86-64-linux.c -reg-xtensa.o : reg-xtensa.c $(regdef_h) -reg-xtensa.c : $(srcdir)/../regformats/reg-xtensa.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-xtensa.dat reg-xtensa.c + +UST_CFLAGS = $(ustinc) -DCONFIG_UST_GDB_INTEGRATION + +# Note, we only build the IPA if -fvisibility=hidden is supported in +# the first place. +IPAGENT_CFLAGS = $(INTERNAL_CFLAGS) $(UST_CFLAGS) \ + -fPIC -DIN_PROCESS_AGENT \ + -fvisibility=hidden + +IPAGENT_COMPILE = $(ECHO_CXX) $(COMPILE.pre) $(IPAGENT_CFLAGS) $(COMPILE.post) + +# Rules for special cases. + +ax-ipa.o: ax.c + $(IPAGENT_COMPILE) $(WARN_CFLAGS_NO_FORMAT) $< + $(POSTCOMPILE) + +ax.o: ax.c + $(COMPILE) $(WARN_CFLAGS_NO_FORMAT) $< + $(POSTCOMPILE) + +# Rules for objects that go in the in-process agent. + +arch/%-ipa.o: ../arch/%.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) + +common/%-ipa.o: ../common/%.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) + +%-ipa.o: %-generated.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) + +%-ipa.o: %.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) + +# Note: Between two matching pattern rules, GNU Make 3.81 chooses the first one. +# Therefore, this one needs to be before "%.o: %.c" for it to be considered for +# files such as linux-amd64-ipa.o generated from linux-amd64-ipa.c. +# +# Later versions of GNU Make choose the rule with the shortest stem, so it would +# work in any order. + +%-ipa.o: %-ipa.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) + +# Rules for objects that go in the gdbserver binary. + +arch/%.o: ../arch/%.c + $(COMPILE) $< + $(POSTCOMPILE) + +common/%.o: ../common/%.c + $(COMPILE) $< + $(POSTCOMPILE) + +%.o: %-generated.c + $(COMPILE) $< + $(POSTCOMPILE) + +%.o: %.c + $(COMPILE) $< + $(POSTCOMPILE) + +%.o: ../nat/%.c + $(COMPILE) $< + $(POSTCOMPILE) + +%.o: ../target/%.c + $(COMPILE) $< + $(POSTCOMPILE) + +# Rules for register format descriptions. Suffix destination files with +# -generated to identify and clean them easily. + +%-generated.c: ../regformats/%.dat | $(regdat_sh) + $(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@ + +%-generated.c: ../regformats/arm/%.dat | $(regdat_sh) + $(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@ + +%-generated.c: ../regformats/i386/%.dat | $(regdat_sh) + $(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@ + +%-generated.c: ../regformats/rs6000/%.dat | $(regdat_sh) + $(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@ + +# +# Dependency tracking. +# + +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. +override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ + -MF $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo +override POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo \ + $(@D)/$(DEPDIR)/$(basename $(@F)).Po +else +override COMPILE.pre = source='$<' object='$@' libtool=no \ + DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) \ + $(CXX) -x c++ $(CXX_DIALECT) +# depcomp handles atomicity for us, so we don't need a postcompile +# step. +override POSTCOMPILE = +endif + +# A list of all the objects we might care about in this build, for +# dependency tracking. +all_object_files = $(OBS) $(GDBREPLAY_OBS) $(IPA_OBJS) + +# 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. +ifdef .VARIABLES +$(all_object_files): | $(generated_files) +else +$(all_object_files) : $(generated_files) +endif + +# All the .deps files to include. +all_deps_files = $(foreach dep,$(patsubst %.o,%.Po,$(all_object_files)),\ + $(dir $(dep))/$(DEPDIR)/$(notdir $(dep))) + +# Dependencies. +-include $(all_deps_files) + +# Disable implicit make rules. +include $(srcdir)/../disable-implicit-rules.mk + +# Do not delete intermediate files (e.g. *-generated.c). +.SECONDARY: + # This is the end of "Makefile.in".