123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609 |
- # Copyright (C) 1989-2022 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/>.
- # 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_noncanonical@
- target_alias = @target_noncanonical@
- program_transform_name = @program_transform_name@
- bindir = @bindir@
- libdir = @libdir@
- CONFIG_SRC_SUBDIR = @CONFIG_SRC_SUBDIR@
- install_sh = @install_sh@
- SHELL = @SHELL@
- EXEEXT = @EXEEXT@
- INSTALL = @INSTALL@
- INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- INSTALL_DATA = @INSTALL_DATA@
- RANLIB = @RANLIB@
- CC = @CC@
- CXX = @CXX@
- CXX_DIALECT = @CXX_DIALECT@
- AR = @AR@
- AR_FLAGS = rc
- STRIP = @STRIP@
- # 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@
- top_builddir = .
- include $(srcdir)/../gdb/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) $(CXX_DIALECT)
- COMPILE.post = -c -o $@
- POSTCOMPILE = @true
- # CXXFLAGS is at the very end on purpose, so that user-supplied flags can
- # override internal flags.
- COMPILE = $(ECHO_CXX) $(COMPILE.pre) $(INTERNAL_CFLAGS) $(CXXFLAGS) $(COMPILE.post)
- # 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 = g++ -static
- CC_LD = $(CXX) $(CXX_DIALECT)
- # Where is the "include" directory? Traditionally ../include or ./include
- INCLUDE_DIR = ${srcdir}/../include
- INCLUDE_DEP = $$(INCLUDE_DIR)
- LIBIBERTY_BUILDDIR = ../libiberty
- LIBIBERTY_NORMAL = $(LIBIBERTY_BUILDDIR)/libiberty.a
- LIBIBERTY_NOASAN = $(LIBIBERTY_BUILDDIR)/noasan/libiberty.a
- LIBIBERTY_PIC = $(LIBIBERTY_BUILDDIR)/pic/libiberty.a
- LIBIBERTY_FOR_SHLIB = \
- $(if $(wildcard $(LIBIBERTY_NOASAN)),\
- $(LIBIBERTY_NOASAN),\
- $(if $(wildcard $(LIBIBERTY_PIC)),\
- $(LIBIBERTY_PIC),\
- $(LIBIBERTY_NORMAL)))
- LIBIBERTY = $(LIBIBERTY_NORMAL)
- GDBSUPPORT_BUILDDIR = ../gdbsupport
- GDBSUPPORT = $(GDBSUPPORT_BUILDDIR)/libgdbsupport.a
- # Where is ust? These will be empty if ust was not available.
- ustlibs = @ustlibs@
- ustinc = @ustinc@
- # gnulib
- GNULIB_PARENT_DIR = ..
- include $(GNULIB_PARENT_DIR)/gnulib/Makefile.gnulib.inc
- # Where is the INTL library? Typically in ../intl.
- INTL = @LIBINTL@
- INTL_DEPS = @LIBINTL_DEP@
- INTL_CFLAGS = @INCINTL@
- INCSUPPORT = -I$(srcdir)/.. -I..
- # All the includes used for CFLAGS and for lint.
- # -I. for config files.
- # -I${srcdir} for our headers.
- # -I$(srcdir)/../gdb/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)/../gdb/regformats -I$(srcdir)/.. -I$(INCLUDE_DIR) \
- -I$(srcdir)/../gdb $(INCGNU) $(INCSUPPORT) \
- $(INTL_CFLAGS)
- # 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"`
- # 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@
- PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
- PTHREAD_LIBS = @PTHREAD_LIBS@
- WIN32APILIBS = @WIN32APILIBS@
- # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
- INTERNAL_CFLAGS_BASE = ${GLOBAL_CFLAGS} \
- ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} $(PTHREAD_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)/debug.cc \
- $(srcdir)/dll.cc \
- $(srcdir)/gdbreplay.cc \
- $(srcdir)/hostio.cc \
- $(srcdir)/i387-fp.cc \
- $(srcdir)/inferiors.cc \
- $(srcdir)/linux-aarch64-low.cc \
- $(srcdir)/linux-arc-low.cc \
- $(srcdir)/linux-arm-low.cc \
- $(srcdir)/linux-ia64-low.cc \
- $(srcdir)/linux-low.cc \
- $(srcdir)/linux-m68k-low.cc \
- $(srcdir)/linux-mips-low.cc \
- $(srcdir)/linux-nios2-low.cc \
- $(srcdir)/linux-or1k-low.cc \
- $(srcdir)/linux-ppc-low.cc \
- $(srcdir)/linux-riscv-low.cc \
- $(srcdir)/linux-s390-low.cc \
- $(srcdir)/linux-sh-low.cc \
- $(srcdir)/linux-sparc-low.cc \
- $(srcdir)/linux-x86-low.cc \
- $(srcdir)/linux-xtensa-low.cc \
- $(srcdir)/mem-break.cc \
- $(srcdir)/netbsd-aarch64-low.cc \
- $(srcdir)/netbsd-amd64-low.cc \
- $(srcdir)/netbsd-i386-low.cc \
- $(srcdir)/netbsd-low.cc \
- $(srcdir)/netbsd-low.h \
- $(srcdir)/proc-service.cc \
- $(srcdir)/proc-service.list \
- $(srcdir)/regcache.cc \
- $(srcdir)/remote-utils.cc \
- $(srcdir)/server.cc \
- $(srcdir)/symbol.cc \
- $(srcdir)/target.cc \
- $(srcdir)/thread-db.cc \
- $(srcdir)/utils.cc \
- $(srcdir)/win32-i386-low.cc \
- $(srcdir)/win32-low.cc \
- $(srcdir)/x86-low.cc \
- $(srcdir)/../gdb/alloc.c \
- $(srcdir)/../gdb/arch/arc.c \
- $(srcdir)/../gdb/arch/arm.c \
- $(srcdir)/../gdb/arch/arm-get-next-pcs.c \
- $(srcdir)/../gdb/arch/arm-linux.c \
- $(srcdir)/../gdb/arch/ppc-linux-common.c \
- $(srcdir)/../gdb/arch/riscv.c \
- $(srcdir)/../gdb/nat/aarch64-mte-linux-ptrace.c \
- $(srcdir)/../gdb/nat/aarch64-sve-linux-ptrace.c \
- $(srcdir)/../gdb/nat/linux-btrace.c \
- $(srcdir)/../gdb/nat/linux-namespaces.c \
- $(srcdir)/../gdb/nat/linux-osdata.c \
- $(srcdir)/../gdb/nat/linux-personality.c \
- $(srcdir)/../gdb/nat/mips-linux-watch.c \
- $(srcdir)/../gdb/nat/ppc-linux.c \
- $(srcdir)/../gdb/nat/riscv-linux-tdesc.c \
- $(srcdir)/../gdb/nat/fork-inferior.c \
- $(srcdir)/../gdb/target/waitstatus.c
- DEPFILES = @GDBSERVER_DEPFILES@
- LIBOBJS = @LIBOBJS@
- SOURCES = $(SFILES)
- TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}
- OBS = \
- alloc.o \
- ax.o \
- debug.o \
- dll.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 \
- target/waitstatus.o \
- $(DEPFILES) \
- $(LIBOBJS) \
- $(XML_BUILTIN)
- GDBREPLAY_OBS = \
- gdbreplay.o \
- utils.o \
- version.o
- GDBSERVER_LIBS = @GDBSERVER_LIBS@ $(PTHREAD_LIBS)
- XM_CLIBS = @LIBS@
- CDEPS = $(srcdir)/proc-service.list
- # XML files to compile in to gdbserver, if any.
- XML_DIR = $(srcdir)/../gdb/features
- XML_FILES = @srv_xmlfiles@
- XML_BUILTIN = @srv_xmlbuiltin@
- IPA_DEPFILES = @IPA_DEPFILES@
- extra_libraries = @extra_libraries@
- FLAGS_TO_PASS = \
- "prefix=$(prefix)" \
- "exec_prefix=$(exec_prefix)" \
- "libdir=$(libdir)" \
- "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
- all: gdbserver$(EXEEXT) gdbreplay$(EXEEXT) $(extra_libraries)
- # 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_ENV) $(INSTALL_PROGRAM) $(IPA_LIB) $(DESTDIR)$(libdir)/$(IPA_LIB); \
- fi; \
- $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir); \
- $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) gdbserver$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
- install-strip:
- $(MAKE) $(FLAGS_TO_PASS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install-only
- uninstall: force
- n=`echo gdbserver | sed '$(program_transform_name)'`; \
- if [ x$$n = x ]; then n=gdbserver; else true; fi; \
- if [ x"$(IPA_DEPFILES)" != x ]; then \
- rm -f $(DESTDIR)$(libdir)/$(IPA_LIB); \
- fi; \
- rm -f $(DESTDIR)/$(bindir)/$$n$(EXEEXT)
- installcheck:
- check:
- info dvi pdf:
- install-info:
- install-pdf:
- html:
- install-html:
- clean-info:
- gdbserver$(EXEEXT): $(sort $(OBS)) ${CDEPS} $(LIBGNU) $(LIBIBERTY) \
- $(INTL_DEPS) $(GDBSUPPORT)
- $(SILENCE) rm -f gdbserver$(EXEEXT)
- $(ECHO_CXXLD) $(CC_LD) $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \
- $(CXXFLAGS) \
- -o gdbserver$(EXEEXT) $(OBS) $(GDBSUPPORT) $(LIBGNU) \
- $(LIBGNU_EXTRA_LIBS) $(LIBIBERTY) $(INTL) \
- $(GDBSERVER_LIBS) $(XM_CLIBS) $(WIN32APILIBS)
- gdbreplay$(EXEEXT): $(sort $(GDBREPLAY_OBS)) $(LIBGNU) $(LIBIBERTY) \
- $(INTL_DEPS) $(GDBSUPPORT)
- $(SILENCE) rm -f gdbreplay$(EXEEXT)
- $(ECHO_CXXLD) $(CC_LD) $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \
- $(CXXFLAGS) \
- -o gdbreplay$(EXEEXT) $(GDBREPLAY_OBS) $(XM_CLIBS) \
- $(GDBSUPPORT) $(LIBGNU) $(LIBGNU_EXTRA_LIBS) \
- $(LIBIBERTY) $(INTL) $(WIN32APILIBS)
- IPA_OBJS = \
- alloc-ipa.o \
- ax-ipa.o \
- gdbsupport/common-utils-ipa.o \
- gdbsupport/errors-ipa.o \
- gdbsupport/format-ipa.o \
- gdbsupport/print-utils-ipa.o \
- gdbsupport/rsp-low-ipa.o \
- gdbsupport/safe-strerror-ipa.o \
- gdbsupport/tdesc-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): $(sort $(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) \
- $(CXXFLAGS) \
- -o $(IPA_LIB) ${IPA_OBJS} $(LIBIBERTY_FOR_SHLIB) -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 \
- `for i in yzzy ${DEPFILES}; do \
- if [ x$$i != xyzzy ]; then \
- echo ${srcdir}/$$i | sed -e 's/\.o$$/\.cc/' \
- -e 's,/\(arch\|nat\|target\)/,/../\1/,' \
- fi; \
- done` \
- ${TAGFILES}
- tags: TAGS
- mostlyclean clean:
- rm -f *.o ${ADD_FILES} *~
- rm -f gdbserver$(EXEEXT) gdbreplay$(EXEEXT) core make.log
- rm -f $(IPA_LIB)
- rm -f *-generated.cc
- rm -f stamp-xml
- rm -f $(DEPDIR)/*.Po
- for i in $(CONFIG_SRC_SUBDIR); do \
- rm -f $$i/*.o; \
- rm -f $$i/$(DEPDIR)/*; \
- done
- maintainer-clean realclean distclean: clean
- rm -f Makefile config.status config.h stamp-h config.log config.cache
- for i in $(CONFIG_SRC_SUBDIR); do \
- rmdir $$i/$(DEPDIR); \
- done
- config.h: stamp-h ; @true
- stamp-h: config.in config.status
- $(SHELL) ./config.status config.h
- Makefile: Makefile.in config.status
- $(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-generated.cc: Makefile $(srcdir)/../gdb/version.in $(srcdir)/../bfd/version.h $(srcdir)/../gdbsupport/create-version.sh
- $(ECHO_GEN) $(SHELL) $(srcdir)/../gdbsupport/create-version.sh $(srcdir)/../gdb \
- $(host_alias) $(target_alias) $@
- xml-builtin-generated.cc: stamp-xml; @true
- stamp-xml: $(XML_DIR)/feature_to_c.sh Makefile $(XML_FILES)
- $(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.cc
- $(SILENCE) echo stamp > stamp-xml
- .PRECIOUS: xml-builtin.cc
- # 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 =
- regdat_sh = $(srcdir)/../gdb/regformats/regdat.sh
- UST_CFLAGS = $(ustinc) -DCONFIG_UST_GDB_INTEGRATION
- # Undo gnulib replacements for the IPA shared library build.
- # The gnulib headers are still needed, but gnulib is not linked
- # into the IPA lib so replacement apis don't work.
- UNDO_GNULIB_CFLAGS = -Drpl_strerror_r=strerror_r -Drpl_free=free
- # Note, we only build the IPA if -fvisibility=hidden is supported in
- # the first place.
- IPAGENT_CFLAGS = $(INTERNAL_CFLAGS) $(UST_CFLAGS) \
- $(UNDO_GNULIB_CFLAGS) \
- -fPIC -DIN_PROCESS_AGENT \
- -fvisibility=hidden
- # CXXFLAGS is at the very end on purpose, so that user-supplied flags can
- # override internal flags.
- IPAGENT_COMPILE = $(ECHO_CXX) $(COMPILE.pre) $(IPAGENT_CFLAGS) $(CXXFLAGS) $(COMPILE.post)
- # Rules for special cases.
- ax-ipa.o: ax.cc
- $(IPAGENT_COMPILE) $(WARN_CFLAGS_NO_FORMAT) $<
- $(POSTCOMPILE)
- ax.o: ax.cc
- $(COMPILE) $(WARN_CFLAGS_NO_FORMAT) $<
- $(POSTCOMPILE)
- # Rules for objects that go in the in-process agent.
- arch/%-ipa.o: ../gdb/arch/%.c
- $(IPAGENT_COMPILE) -x c++ $<
- $(POSTCOMPILE)
- gdbsupport/%-ipa.o: ../gdbsupport/%.cc
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
- %-ipa.o: %-generated.cc
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
- %-ipa.o: %.cc
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
- %-ipa.o: ../gdb/%.c
- $(IPAGENT_COMPILE) -x c++ $<
- $(POSTCOMPILE)
- # Note: Between two matching pattern rules, GNU Make 3.81 chooses the first one.
- # Therefore, this one needs to be before "%.o: %.cc" for it to be considered for
- # files such as linux-amd64-ipa.o generated from linux-amd64-ipa.cc.
- #
- # Later versions of GNU Make choose the rule with the shortest stem, so it would
- # work in any order.
- %-ipa.o: %-ipa.cc
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
- # Rules for objects that go in the gdbserver binary.
- arch/%.o: ../gdb/arch/%.c
- $(COMPILE) -x c++ $<
- $(POSTCOMPILE)
- %.o: %-generated.cc
- $(COMPILE) $<
- $(POSTCOMPILE)
- %.o: %.cc
- $(COMPILE) $<
- $(POSTCOMPILE)
- nat/%.o: ../gdb/nat/%.c
- $(COMPILE) -x c++ $<
- $(POSTCOMPILE)
- target/%.o: ../gdb/target/%.c
- $(COMPILE) -x c++ $<
- $(POSTCOMPILE)
- %.o: ../gdb/%.c
- $(COMPILE) -x c++ $<
- $(POSTCOMPILE)
- # Rules for register format descriptions. Suffix destination files with
- # -generated to identify and clean them easily.
- %-generated.cc: ../gdb/regformats/%.dat $(regdat_sh)
- $(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@
- %-generated.cc: ../gdb/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) $(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)/../gdb/disable-implicit-rules.mk
- # Do not delete intermediate files (e.g. *-generated.cc).
- .SECONDARY:
- # This is the end of "Makefile.in".
|