diff --git a/dkarm-eabi/patches/binutils-2.24.patch b/dkarm-eabi/patches/binutils-2.24.patch new file mode 100644 index 0000000..515b680 --- /dev/null +++ b/dkarm-eabi/patches/binutils-2.24.patch @@ -0,0 +1,13 @@ +diff -Nbaur binutils-2.24/include/opcode/arm.h binutils-2.24-arm/include/opcode/arm.h +--- binutils-2.24/include/opcode/arm.h 2013-11-26 11:37:33.000000000 +0000 ++++ binutils-2.24-arm/include/opcode/arm.h 2014-02-16 19:32:33.000000000 +0000 +@@ -114,7 +114,8 @@ + #define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K) + #define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC) + #define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC) +-#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER) ++#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER \ ++ | ARM_EXT_OS ) + #define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A) + #define ARM_AEXT_V7VE (ARM_AEXT_V7A | ARM_EXT_DIV | ARM_EXT_ADIV \ + | ARM_EXT_VIRT | ARM_EXT_SEC | ARM_EXT_MP) diff --git a/dkarm-eabi/patches/gcc-4.8.2.patch b/dkarm-eabi/patches/gcc-4.8.2.patch new file mode 100644 index 0000000..715ed31 --- /dev/null +++ b/dkarm-eabi/patches/gcc-4.8.2.patch @@ -0,0 +1,159 @@ +diff -Nbaur gcc-4.8.2/gcc/config/arm/t-arm-elf gcc-4.8.2-arm/gcc/config/arm/t-arm-elf +--- gcc-4.8.2/gcc/config/arm/t-arm-elf 2013-01-10 20:38:27.000000000 +0000 ++++ gcc-4.8.2-arm/gcc/config/arm/t-arm-elf 2014-02-16 19:36:15.000000000 +0000 +@@ -25,22 +25,44 @@ + #MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626 + +-#MULTILIB_OPTIONS += march=armv7 +-#MULTILIB_DIRNAMES += thumb2 +-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* +-#MULTILIB_MATCHES += march?armv7=march?armv7-a +-#MULTILIB_MATCHES += march?armv7=march?armv7-r +-#MULTILIB_MATCHES += march?armv7=march?armv7-m +-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 +-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 +-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 ++#mfloat-abi=hard|mfpu=fpv4-sp-d16 ++ ++MULTILIB_OPTIONS += march=armv7/march=armv6-m/mcpu=cortex-m4 ++MULTILIB_DIRNAMES += thumb2 armv6-m cortex-m4 ++MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* ++MULTILIB_EXCEPTIONS += march=armv6-m* marm/*march=armv6-m* ++MULTILIB_EXCEPTIONS += mcpu=cortex-m4* marm/*mcpu=cortex-m4* ++MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4 ++MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4/mbig-endian ++MULTILIB_MATCHES += march?armv7=march?armv7-a ++MULTILIB_MATCHES += march?armv7=march?armv7-r ++MULTILIB_MATCHES += march?armv7=march?armv7-m ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 ++MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m0 ++MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m1 ++ ++MULTILIB_OPTIONS += mfloat-abi=hard mfpu=fpv4-sp-d16 ++MULTILIB_DIRNAMES += float-abi-hard fpuv4-sp-d16 ++MULTILIB_EXCEPTIONS += mfloat* marm/mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb/mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv6-m*mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv7*mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard ++MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard/mbig-endian ++MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv6-m*mfpu* ++MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv7*mfpu* ++MULTILIB_EXCEPTIONS += mfpu* mthumb/mcpu=cortex-m4/mfpu* ++MULTILIB_EXCEPTIONS += mfpu* mthumb/mfpu* ++MULTILIB_EXCEPTIONS += mfpu* marm/mfpu* + + # Not quite true. We can support hard-vfp calling in Thumb2, but how do we + # express that here? Also, we really need architecture v5e or later + # (mcrr etc). +-MULTILIB_OPTIONS += mfloat-abi=hard +-MULTILIB_DIRNAMES += fpu +-MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* ++#MULTILIB_OPTIONS += mfloat-abi=hard ++#MULTILIB_DIRNAMES += fpu ++#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* + #MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard* + #MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard* + +@@ -48,9 +70,9 @@ + # MULTILIB_DIRNAMES += ep9312 + # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312* + # +-# MULTILIB_OPTIONS += mlittle-endian/mbig-endian +-# MULTILIB_DIRNAMES += le be +-# MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle ++MULTILIB_OPTIONS += mlittle-endian/mbig-endian ++MULTILIB_DIRNAMES += le be ++MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle + # + # MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft + # MULTILIB_DIRNAMES += fpu soft +diff -Nbaur gcc-4.8.2/gcc/config/arm/unknown-elf.h gcc-4.8.2-arm/gcc/config/arm/unknown-elf.h +--- gcc-4.8.2/gcc/config/arm/unknown-elf.h 2013-01-10 20:38:27.000000000 +0000 ++++ gcc-4.8.2-arm/gcc/config/arm/unknown-elf.h 2014-02-16 19:36:15.000000000 +0000 +@@ -93,4 +93,4 @@ + udivmoddi4, which will depend on the exception unwind routines, + which will depend on abort, which is defined in libc. */ + #undef LINK_GCC_C_SEQUENCE_SPEC +-#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L --end-group" ++#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group" +diff -Nbaur gcc-4.8.2/gcc/gcc.c gcc-4.8.2-arm/gcc/gcc.c +--- gcc-4.8.2/gcc/gcc.c 2013-05-17 13:24:26.000000000 +0100 ++++ gcc-4.8.2-arm/gcc/gcc.c 2014-02-16 19:36:15.000000000 +0000 +@@ -599,6 +599,11 @@ + #endif + #endif + ++#ifndef LIBGLOSS_SPEC ++# define LIBGLOSS_SPEC "-lsysbase" ++#endif ++ ++ + /* config.h can define STARTFILE_SPEC to override the default crt0 files. */ + #ifndef STARTFILE_SPEC + #define STARTFILE_SPEC \ +@@ -785,6 +790,7 @@ + static const char *mflib_spec = MFLIB_SPEC; + static const char *link_gomp_spec = ""; + static const char *libgcc_spec = LIBGCC_SPEC; ++static const char *libgloss_spec = LIBGLOSS_SPEC; + static const char *endfile_spec = ENDFILE_SPEC; + static const char *startfile_spec = STARTFILE_SPEC; + static const char *linker_name_spec = LINKER_NAME; +@@ -1274,6 +1280,7 @@ + INIT_STATIC_SPEC ("mflib", &mflib_spec), + INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec), + INIT_STATIC_SPEC ("libgcc", &libgcc_spec), ++ INIT_STATIC_SPEC ("libgloss", &libgloss_spec), + INIT_STATIC_SPEC ("startfile", &startfile_spec), + INIT_STATIC_SPEC ("cross_compile", &cross_compile), + INIT_STATIC_SPEC ("version", &compiler_version), +diff -Nbaur gcc-4.8.2/libcpp/Makefile.in gcc-4.8.2-arm/libcpp/Makefile.in +--- gcc-4.8.2/libcpp/Makefile.in 2013-10-16 08:27:58.000000000 +0100 ++++ gcc-4.8.2-arm/libcpp/Makefile.in 2014-02-16 19:36:15.000000000 +0000 +@@ -207,8 +207,7 @@ + # 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. +-COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo +-POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++COMPILE = $(COMPILE.base) -o $@ + else + COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \ + $(depcomp) $(COMPILE.base) +diff -Nbaur gcc-4.8.2/libgcc/config/arm/t-bpabi gcc-4.8.2-arm/libgcc/config/arm/t-bpabi +--- gcc-4.8.2/libgcc/config/arm/t-bpabi 2012-08-17 16:06:06.000000000 +0100 ++++ gcc-4.8.2-arm/libgcc/config/arm/t-bpabi 2014-02-16 19:36:15.000000000 +0000 +@@ -17,4 +17,4 @@ + # On ARM, specifying -fnon-call-exceptions will needlessly pull in + # the unwinder in simple programs which use 64-bit division. Omitting + # the option is safe. +-LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions ++LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions +diff -Nbaur gcc-4.8.2/libgcc/crtstuff.c gcc-4.8.2-arm/libgcc/crtstuff.c +--- gcc-4.8.2/libgcc/crtstuff.c 2013-02-04 19:06:20.000000000 +0000 ++++ gcc-4.8.2-arm/libgcc/crtstuff.c 2014-02-16 19:36:15.000000000 +0000 +@@ -47,7 +47,7 @@ + + /* Target machine header files require this define. */ + #define IN_LIBGCC2 +- ++#define USED_FOR_TARGET + /* FIXME: Including auto-host is incorrect, but until we have + identified the set of defines that need to go into auto-target.h, + this will have to do. */ +diff -Nbaur gcc-4.8.2/libgcc/Makefile.in gcc-4.8.2-arm/libgcc/Makefile.in +--- gcc-4.8.2/libgcc/Makefile.in 2013-02-04 19:06:20.000000000 +0000 ++++ gcc-4.8.2-arm/libgcc/Makefile.in 2014-02-16 19:36:15.000000000 +0000 +@@ -813,7 +813,7 @@ + # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and + # LIB2ADDEHSHARED matter. (Usually all three are identical.) + +-c_flags := -fexceptions ++c_flags := -fno-exceptions + + ifeq ($(enable_shared),yes) + diff --git a/dkarm-eabi/patches/gdb-7.7.patch b/dkarm-eabi/patches/gdb-7.7.patch new file mode 100644 index 0000000..63f9ca5 --- /dev/null +++ b/dkarm-eabi/patches/gdb-7.7.patch @@ -0,0 +1,3004 @@ +diff -Nbaur gdb-7.7/gdb/Makefile.in gdb-7.7-arm/gdb/Makefile.in +--- gdb-7.7/gdb/Makefile.in 2014-02-06 02:21:29.000000000 +0000 ++++ gdb-7.7-arm/gdb/Makefile.in 2014-02-16 19:43:34.000000000 +0000 +@@ -2307,10 +2307,8 @@ + # 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@override COMPILE.post = -c -o $@ ++@GMAKE_TRUE@override POSTCOMPILE = + @GMAKE_TRUE@else + @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ + @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) +diff -Nbaur gdb-7.7/gdb/Makefile.in.orig gdb-7.7-arm/gdb/Makefile.in.orig +--- gdb-7.7/gdb/Makefile.in.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gdb-7.7-arm/gdb/Makefile.in.orig 2014-02-06 02:21:29.000000000 +0000 +@@ -0,0 +1,2339 @@ ++# Copyright (C) 1989-2014 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 . ++ ++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@ ++localedir = @localedir@ ++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@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++htmldir = @htmldir@ ++pdfdir = @pdfdir@ ++includedir = @includedir@ ++ ++install_sh = @install_sh@ ++ ++# This can be referenced by `LIBINTL' as computed by ++# ZW_GNU_GETTEXT_SISTER_DIR. ++top_builddir = . ++ ++SHELL = @SHELL@ ++EXEEXT = @EXEEXT@ ++ ++AWK = @AWK@ ++LN_S = @LN_S@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTALL_DATA = @INSTALL_DATA@ ++ ++DESTDIR = ++ ++AR = @AR@ ++AR_FLAGS = qv ++RANLIB = @RANLIB@ ++DLLTOOL = @DLLTOOL@ ++WINDRES = @WINDRES@ ++MIG = @MIG@ ++STRIP = @STRIP@ ++ ++XGETTEXT = @XGETTEXT@ ++GMSGFMT = @GMSGFMT@ ++MSGMERGE = msgmerge ++ ++PACKAGE = @PACKAGE@ ++CATALOGS = @CATALOGS@ ++ ++# 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@ ++ ++# 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. ++srcdir = @srcdir@ ++VPATH = @srcdir@ ++ ++YACC=@YACC@ ++ ++# This is used to rebuild ada-lex.c from ada-lex.l. If the program is ++# not defined, but ada-lex.c is present, compilation will continue, ++# possibly with a warning. ++FLEX = flex ++ ++YLWRAP = $(srcdir)/../ylwrap ++ ++# where to find makeinfo, preferably one designed for texinfo-2 ++MAKEINFO = @MAKEINFO@ ++MAKEINFOFLAGS = @MAKEINFOFLAGS@ ++MAKEINFO_EXTRA_FLAGS = @MAKEINFO_EXTRA_FLAGS@ ++MAKEINFO_CMD = $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFO_EXTRA_FLAGS) ++ ++MAKEHTML = $(MAKEINFO_CMD) --html ++MAKEHTMLFLAGS = ++ ++# Set this up with gcc if you have gnu ld and the loader will print out ++# line numbers for undefined references. ++#CC_LD=gcc -static ++CC_LD=$(CC) ++ ++# Where is our "include" directory? Typically $(srcdir)/../include. ++# This is essentially the header file directory for the library ++# routines in libiberty. ++INCLUDE_DIR = $(srcdir)/../include ++INCLUDE_CFLAGS = -I$(INCLUDE_DIR) ++ ++# Where is the "-liberty" library? Typically in ../libiberty. ++LIBIBERTY = ../libiberty/libiberty.a ++ ++# Where is the BFD library? Typically in ../bfd. ++BFD_DIR = ../bfd ++BFD = $(BFD_DIR)/libbfd.a ++BFD_SRC = $(srcdir)/$(BFD_DIR) ++BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC) ++ ++# Where is the decnumber library? Typically in ../libdecnumber. ++LIBDECNUMBER_DIR = ../libdecnumber ++LIBDECNUMBER = $(LIBDECNUMBER_DIR)/libdecnumber.a ++LIBDECNUMBER_SRC = $(srcdir)/$(LIBDECNUMBER_DIR) ++LIBDECNUMBER_CFLAGS = -I$(LIBDECNUMBER_DIR) -I$(LIBDECNUMBER_SRC) ++ ++# Where is the READLINE library? Typically in ../readline. ++READLINE_DIR = ../readline ++READLINE_SRC = $(srcdir)/$(READLINE_DIR) ++READLINE = @READLINE@ ++READLINE_DEPS = @READLINE_DEPS@ ++READLINE_CFLAGS = @READLINE_CFLAGS@ ++ ++# Where is expat? This will be empty if expat was not available. ++LIBEXPAT = @LIBEXPAT@ ++ ++# Where is lzma? This will be empty if lzma was not available. ++LIBLZMA = @LIBLZMA@ ++ ++# Where is libbabeltrace? This will be empty if lbabeltrace was not ++# available. ++LIBBABELTRACE = @LIBBABELTRACE@ ++ ++WARN_CFLAGS = @WARN_CFLAGS@ ++WERROR_CFLAGS = @WERROR_CFLAGS@ ++GDB_WARN_CFLAGS = $(WARN_CFLAGS) ++GDB_WERROR_CFLAGS = $(WERROR_CFLAGS) ++ ++GDB_WARN_CFLAGS_NO_FORMAT = `echo " $(GDB_WARN_CFLAGS) " \ ++ | sed "s/ -Wformat-nonliteral / -Wno-format-nonliteral /g"` ++GDB_WARN_CFLAGS_NO_DEFS = `echo " $(GDB_WARN_CFLAGS) " \ ++ | sed "s/ -Wold-style-definition / -Wno-old-style-definition /g"` ++ ++RDYNAMIC = @RDYNAMIC@ ++ ++# Where is the INTL library? Typically in ../intl. ++INTL = @LIBINTL@ ++INTL_DEPS = @LIBINTL_DEP@ ++INTL_CFLAGS = @INCINTL@ ++ ++# Did the user give us a --with-gdb-datadir option? ++GDB_DATADIR = @GDB_DATADIR@ ++ ++# Flags to pass to gdb when invoked with "make run". ++GDBFLAGS = ++ ++# Helper code from gnulib. ++GNULIB_BUILDDIR = build-gnulib ++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@ ++ ++# ++# CLI sub directory definitons ++# ++SUBDIR_CLI_OBS = \ ++ cli-dump.o \ ++ cli-decode.o cli-script.o cli-cmds.o cli-setshow.o \ ++ cli-logging.o \ ++ cli-interp.o cli-utils.o ++SUBDIR_CLI_SRCS = \ ++ cli/cli-dump.c \ ++ cli/cli-decode.c cli/cli-script.c cli/cli-cmds.c cli/cli-setshow.c \ ++ cli/cli-logging.c \ ++ cli/cli-interp.c cli/cli-utils.c ++SUBDIR_CLI_DEPS = ++SUBDIR_CLI_LDFLAGS= ++SUBDIR_CLI_CFLAGS= ++ ++# ++# MI sub directory definitons ++# ++SUBDIR_MI_OBS = \ ++ mi-out.o mi-console.o \ ++ mi-cmds.o mi-cmd-catch.o mi-cmd-env.o \ ++ mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o \ ++ mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o \ ++ mi-cmd-info.o mi-interp.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-catch.c mi/mi-cmd-env.c \ ++ mi/mi-cmd-var.c mi/mi-cmd-break.c mi/mi-cmd-stack.c \ ++ mi/mi-cmd-file.c mi/mi-cmd-disas.c mi/mi-symbol-cmds.c \ ++ mi/mi-cmd-target.c mi/mi-cmd-info.c mi/mi-interp.c \ ++ mi/mi-main.c mi/mi-parse.c mi/mi-getopt.c ++SUBDIR_MI_DEPS = ++SUBDIR_MI_LDFLAGS= ++SUBDIR_MI_CFLAGS= ++ ++# ++# TUI sub directory definitions ++# ++ ++SUBDIR_TUI_OBS = \ ++ tui-command.o \ ++ tui-data.o \ ++ tui-disasm.o \ ++ tui-file.o \ ++ tui-hooks.o \ ++ tui-interp.o \ ++ tui-io.o \ ++ tui-layout.o \ ++ tui-out.o \ ++ tui-regs.o \ ++ tui-source.o \ ++ tui-stack.o \ ++ tui-win.o \ ++ tui-windata.o \ ++ tui-wingeneral.o \ ++ tui-winsource.o \ ++ tui.o ++ ++SUBDIR_TUI_SRCS = \ ++ tui/tui-command.c \ ++ tui/tui-data.c \ ++ tui/tui-disasm.c \ ++ tui/tui-file.c \ ++ tui/tui-hooks.c \ ++ tui/tui-interp.c \ ++ tui/tui-io.c \ ++ tui/tui-layout.c \ ++ tui/tui-out.c \ ++ tui/tui-regs.c \ ++ tui/tui-source.c \ ++ tui/tui-stack.c \ ++ tui/tui-win.c \ ++ tui/tui-windata.c \ ++ tui/tui-wingeneral.c \ ++ tui/tui-winsource.c \ ++ tui/tui.c ++ ++SUBDIR_TUI_DEPS = ++SUBDIR_TUI_LDFLAGS= ++SUBDIR_TUI_CFLAGS= \ ++ -DTUI=1 ++ ++# ++# python sub directory definitons ++# ++SUBDIR_PYTHON_OBS = \ ++ python.o \ ++ py-arch.o \ ++ py-auto-load.o \ ++ py-block.o \ ++ py-bpevent.o \ ++ py-breakpoint.o \ ++ py-cmd.o \ ++ py-continueevent.o \ ++ py-event.o \ ++ py-evtregistry.o \ ++ py-evts.o \ ++ py-exitedevent.o \ ++ py-finishbreakpoint.o \ ++ py-frame.o \ ++ py-framefilter.o \ ++ py-function.o \ ++ py-gdb-readline.o \ ++ py-inferior.o \ ++ py-infthread.o \ ++ py-lazy-string.o \ ++ py-linetable.o \ ++ py-newobjfileevent.o \ ++ py-objfile.o \ ++ py-param.o \ ++ py-prettyprint.o \ ++ py-progspace.o \ ++ py-signalevent.o \ ++ py-stopevent.o \ ++ py-symbol.o \ ++ py-symtab.o \ ++ py-threadevent.o \ ++ py-type.o \ ++ py-utils.o \ ++ py-value.o ++ ++SUBDIR_PYTHON_SRCS = \ ++ python/python.c \ ++ python/py-arch.c \ ++ python/py-auto-load.c \ ++ python/py-block.c \ ++ python/py-bpevent.c \ ++ python/py-breakpoint.c \ ++ python/py-cmd.c \ ++ python/py-continueevent.c \ ++ python/py-event.c \ ++ python/py-evtregistry.c \ ++ python/py-evts.c \ ++ python/py-exitedevent.c \ ++ python/py-finishbreakpoint.c \ ++ python/py-frame.c \ ++ python/py-framefilter.c \ ++ python/py-function.c \ ++ python/py-gdb-readline.c \ ++ python/py-inferior.c \ ++ python/py-infthread.c \ ++ python/py-lazy-string.c \ ++ python/py-linetable.c \ ++ python/py-newobjfileevent.c \ ++ python/py-objfile.c \ ++ python/py-param.c \ ++ python/py-prettyprint.c \ ++ python/py-progspace.c \ ++ python/py-signalevent.c \ ++ python/py-stopevent.c \ ++ python/py-symbol.c \ ++ python/py-symtab.c \ ++ python/py-threadevent.c \ ++ python/py-type.c \ ++ python/py-utils.c \ ++ python/py-value.c ++SUBDIR_PYTHON_DEPS = ++SUBDIR_PYTHON_LDFLAGS= ++SUBDIR_PYTHON_CFLAGS= ++ ++# 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_DIR = ../opcodes ++OPCODES_SRC = $(srcdir)/$(OPCODES_DIR) ++OPCODES = $(OPCODES_DIR)/libopcodes.a ++# Where are the other opcode tables which only have header file ++# versions? ++OP_INCLUDE = $(INCLUDE_DIR)/opcode ++# Some source files like to use #include "opcodes/file.h" ++OPCODES_CFLAGS = -I$(OP_INCLUDE) -I$(OPCODES_SRC)/.. ++ ++# 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 = @SIM@ ++ ++WIN32LIBS = @WIN32LIBS@ ++ ++# Tcl et al cflags and libraries ++TCL = @TCL_LIBRARY@ ++TCL_CFLAGS = @TCL_INCLUDE@ ++GDBTKLIBS = @GDBTKLIBS@ ++# Extra flags that the GDBTK files need: ++GDBTK_CFLAGS = @GDBTK_CFLAGS@ ++ ++TK = @TK_LIBRARY@ ++TK_CFLAGS = @TK_INCLUDE@ ++ ++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) ++ ++ALL_TCL_CFLAGS = $(TCL_CFLAGS) $(TK_CFLAGS) ++ ++# The version of gdbtk we're building. This should be kept ++# in sync with GDBTK_VERSION and friends in gdbtk.h. ++GDBTK_VERSION = 1.0 ++GDBTK_LIBRARY = $(datadir)/insight$(GDBTK_VERSION) ++ ++# Gdbtk requires an absolute path to the source directory or ++# the testsuite won't run properly. ++GDBTK_SRC_DIR = @GDBTK_SRC_DIR@ ++ ++SUBDIR_GDBTK_OBS = \ ++ gdbtk.o gdbtk-bp.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-interp.o \ ++ gdbtk-register.o gdbtk-stack.o gdbtk-varobj.o gdbtk-wrapper.o ++SUBDIR_GDBTK_SRCS = \ ++ gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-bp.c \ ++ gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c \ ++ gdbtk/generic/gdbtk-interp.c \ ++ gdbtk/generic/gdbtk-register.c gdbtk/generic/gdbtk-stack.c \ ++ gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c \ ++ gdbtk/generic/gdbtk-main.c ++SUBDIR_GDBTK_DEPS = $(LIBGUI) $(TCL_DEPS) $(TK_DEPS) ++SUBDIR_GDBTK_LDFLAGS= ++SUBDIR_GDBTK_CFLAGS= -DGDBTK ++ ++CONFIG_OBS= @CONFIG_OBS@ ++CONFIG_SRCS= @CONFIG_SRCS@ ++CONFIG_DEPS= @CONFIG_DEPS@ ++CONFIG_LDFLAGS = @CONFIG_LDFLAGS@ ++ENABLE_CFLAGS= @ENABLE_CFLAGS@ ++CONFIG_ALL= @CONFIG_ALL@ ++CONFIG_CLEAN= @CONFIG_CLEAN@ ++CONFIG_INSTALL = @CONFIG_INSTALL@ ++CONFIG_UNINSTALL = @CONFIG_UNINSTALL@ ++HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@ ++ ++# -I. for config files. ++# -I$(srcdir) for gdb internal headers. ++# -I$(srcdir)/config for more generic config files. ++ ++# It is also possible that you will need to add -I/usr/include/sys if ++# your system doesn't have fcntl.h in /usr/include (which is where it ++# should be according to Posix). ++DEFS = @DEFS@ ++GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/common -I$(srcdir)/config \ ++ -DLOCALEDIR="\"$(localedir)\"" $(DEFS) ++ ++# MH_CFLAGS, if defined, has host-dependent CFLAGS from the config directory. ++GLOBAL_CFLAGS = $(MH_CFLAGS) ++ ++PROFILE_CFLAGS = @PROFILE_CFLAGS@ ++ ++# CFLAGS is specifically reserved for setting from the command line ++# when running make. I.E. "make CFLAGS=-Wmissing-prototypes". ++CFLAGS = @CFLAGS@ ++ ++# Set by configure, for e.g. expat. Python installations are such that ++# C headers are included using their basename (for example, we #include ++# rather than, say, ). Since the file names ++# are sometimes a little generic, we think that the risk of collision ++# with other header files is high. If that happens, we try to mitigate ++# a bit the consequences by putting the Python includes last in the list. ++INTERNAL_CPPFLAGS = @CPPFLAGS@ @PYTHON_CPPFLAGS@ ++ ++# 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_CFLAGS_BASE = \ ++ $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \ ++ $(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \ ++ $(BFD_CFLAGS) $(INCLUDE_CFLAGS) $(LIBDECNUMBER_CFLAGS) \ ++ $(INTL_CFLAGS) $(INCGNU) $(ENABLE_CFLAGS) $(INTERNAL_CPPFLAGS) ++INTERNAL_WARN_CFLAGS = $(INTERNAL_CFLAGS_BASE) $(GDB_WARN_CFLAGS) ++INTERNAL_CFLAGS = $(INTERNAL_WARN_CFLAGS) $(GDB_WERROR_CFLAGS) ++ ++# LDFLAGS is specifically reserved for setting from the command line ++# when running make. ++LDFLAGS = @LDFLAGS@ ++ ++# 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. ++# PROFILE_CFLAGS is _not_ included, however, because we use monstartup. ++INTERNAL_LDFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(MH_LDFLAGS) $(LDFLAGS) $(CONFIG_LDFLAGS) ++ ++# 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. ++# XM_CLIBS, defined in *config files, have host-dependent libs. ++# LIBIBERTY appears twice on purpose. ++CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \ ++ $(XM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ @PYTHON_LIBS@ \ ++ $(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) \ ++ $(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) ++CDEPS = $(XM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) \ ++ $(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU) ++ ++ADD_FILES = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) ++ADD_DEPS = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) ++ ++DIST=gdb ++ ++LINT=/usr/5bin/lint ++LINTFLAGS= $(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \ ++ $(BFD_CFLAGS) $(INCLUDE_CFLAGS) \ ++ $(INTL_CFLAGS) ++ ++RUNTEST = runtest ++RUNTESTFLAGS= ++ ++# XML files to build in to GDB. ++XMLFILES = $(srcdir)/features/gdb-target.dtd $(srcdir)/features/xinclude.dtd \ ++ $(srcdir)/features/library-list.dtd \ ++ $(srcdir)/features/library-list-aix.dtd \ ++ $(srcdir)/features/library-list-svr4.dtd $(srcdir)/features/osdata.dtd \ ++ $(srcdir)/features/threads.dtd $(srcdir)/features/traceframe-info.dtd \ ++ $(srcdir)/features/btrace.dtd ++ ++# 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 tracepoint.o ax-general.o ax-gdb.o remote-fileio.o \ ++ remote-notif.o ctf.o ++ ++# This is remote-sim.o if a simulator is to be linked in. ++SIM_OBS = @SIM_OBS@ ++ ++# Target-dependent object files. ++TARGET_OBS = @TARGET_OBS@ ++ ++# All target-dependent objects files that require 64-bit CORE_ADDR ++# (used with --enable-targets=all --enable-64-bit-bfd). ++ALL_64_TARGET_OBS = \ ++ aarch64-tdep.o aarch64-linux-tdep.o aarch64-newlib-tdep.o \ ++ alphabsd-tdep.o alphafbsd-tdep.o alpha-linux-tdep.o alpha-mdebug-tdep.o \ ++ alphanbsd-tdep.o alphaobsd-tdep.o alpha-osf1-tdep.o alpha-tdep.o \ ++ amd64fbsd-tdep.o amd64-darwin-tdep.o amd64-dicos-tdep.o \ ++ amd64-linux-tdep.o amd64nbsd-tdep.o \ ++ amd64obsd-tdep.o amd64-sol2-tdep.o amd64-tdep.o amd64-windows-tdep.o \ ++ ia64-hpux-tdep.o ia64-linux-tdep.o ia64-vms-tdep.o ia64-tdep.o \ ++ mips64obsd-tdep.o \ ++ sparc64fbsd-tdep.o sparc64-linux-tdep.o sparc64nbsd-tdep.o \ ++ sparc64obsd-tdep.o sparc64-sol2-tdep.o sparc64-tdep.o ++ ++# All other target-dependent objects files (used with --enable-targets=all). ++ALL_TARGET_OBS = \ ++ armbsd-tdep.o arm-linux-tdep.o arm-symbian-tdep.o \ ++ armnbsd-tdep.o armobsd-tdep.o \ ++ arm-tdep.o arm-wince-tdep.o \ ++ avr-tdep.o \ ++ bfin-linux-tdep.o bfin-tdep.o \ ++ cris-linux-tdep.o cris-tdep.o \ ++ dicos-tdep.o \ ++ frv-linux-tdep.o frv-tdep.o \ ++ h8300-tdep.o \ ++ hppabsd-tdep.o hppanbsd-tdep.o hppaobsd-tdep.o \ ++ hppa-hpux-tdep.o hppa-linux-tdep.o hppa-tdep.o \ ++ i386bsd-tdep.o i386-cygwin-tdep.o i386fbsd-tdep.o i386gnu-tdep.o \ ++ i386-linux-tdep.o i386nbsd-tdep.o i386-nto-tdep.o i386obsd-tdep.o \ ++ i386-sol2-tdep.o i386-tdep.o i387-tdep.o \ ++ i386-dicos-tdep.o i386-darwin-tdep.o \ ++ iq2000-tdep.o \ ++ linux-tdep.o \ ++ lm32-tdep.o \ ++ m32c-tdep.o \ ++ m32r-linux-tdep.o m32r-tdep.o \ ++ m68hc11-tdep.o \ ++ m68kbsd-tdep.o m68klinux-tdep.o m68k-tdep.o \ ++ m88k-tdep.o \ ++ mep-tdep.o \ ++ microblaze-tdep.o microblaze-linux-tdep.o \ ++ mips-irix-tdep.o mips-linux-tdep.o \ ++ mipsnbsd-tdep.o mips-tdep.o \ ++ mn10300-linux-tdep.o mn10300-tdep.o \ ++ moxie-tdep.o \ ++ msp430-tdep.o \ ++ mt-tdep.o \ ++ nios2-tdep.o nios2-linux-tdep.o \ ++ nto-tdep.o \ ++ ppc-linux-tdep.o ppcfbsd-tdep.o ppcnbsd-tdep.o ppcobsd-tdep.o \ ++ ppc-sysv-tdep.o ppc64-tdep.o rl78-tdep.o \ ++ rs6000-aix-tdep.o rs6000-tdep.o solib-aix.o ppc-ravenscar-thread.o \ ++ rs6000-lynx178-tdep.o \ ++ rx-tdep.o \ ++ s390-linux-tdep.o \ ++ score-tdep.o \ ++ sh64-tdep.o sh-linux-tdep.o shnbsd-tdep.o sh-tdep.o \ ++ sparc-linux-tdep.o sparcnbsd-tdep.o sparcobsd-tdep.o \ ++ sparc-sol2-tdep.o sparc-tdep.o sparc-ravenscar-thread.o \ ++ spu-tdep.o spu-multiarch.o solib-spu.o \ ++ tic6x-tdep.o tic6x-linux-tdep.o \ ++ tilegx-tdep.o tilegx-linux-tdep.o \ ++ v850-tdep.o \ ++ vaxnbsd-tdep.o vaxobsd-tdep.o vax-tdep.o \ ++ xstormy16-tdep.o \ ++ xtensa-config.o xtensa-tdep.o xtensa-linux-tdep.o \ ++ glibc-tdep.o \ ++ bsd-uthread.o \ ++ nbsd-tdep.o obsd-tdep.o \ ++ sol2-tdep.o \ ++ solib-frv.o solib-irix.o solib-svr4.o \ ++ solib-som.o solib-pa64.o solib-darwin.o solib-dsbt.o \ ++ dbug-rom.o dink32-rom.o ppcbug-rom.o m32r-rom.o dsrec.o monitor.o \ ++ remote-m32r-sdi.o remote-mips.o \ ++ xcoffread.o \ ++ symfile-mem.o \ ++ windows-tdep.o \ ++ linux-record.o \ ++ ravenscar-thread.o ++ ++# Host-dependent makefile fragment comes in here. ++@host_makefile_frag@ ++# End of host-dependent makefile fragment ++ ++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)" \ ++ "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \ ++ "MAKEINFO_EXTRA_FLAGS=$(MAKEINFO_EXTRA_FLAGS)" \ ++ "MAKEHTML=$(MAKEHTML)" \ ++ "MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \ ++ "INSTALL=$(INSTALL)" \ ++ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ ++ "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ ++ "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` ++ ++# 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)" \ ++ '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)" \ ++ "FORCE_PARALLEL=$(FORCE_PARALLEL)" ++ ++# 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 = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \ ++ ada-varobj.c \ ++ addrmap.c auto-load.c \ ++ auxv.c ax-general.c ax-gdb.c \ ++ agent.c \ ++ bcache.c \ ++ bfd-target.c \ ++ block.c blockframe.c \ ++ breakpoint.c break-catch-sig.c break-catch-throw.c \ ++ build-id.c buildsym.c \ ++ c-exp.y c-lang.c c-typeprint.c c-valprint.c c-varobj.c \ ++ charset.c cleanups.c cli-out.c coffread.c coff-pe-read.c \ ++ complaints.c completer.c continuations.c corefile.c corelow.c \ ++ cp-abi.c cp-support.c cp-namespace.c cp-valprint.c \ ++ d-lang.c d-valprint.c \ ++ cp-name-parser.y \ ++ dbxread.c demangle.c dictionary.c disasm.c doublest.c dummy-frame.c \ ++ dwarf2expr.c dwarf2loc.c dwarf2read.c dwarf2-frame.c \ ++ dwarf2-frame-tailcall.c \ ++ elfread.c environ.c eval.c event-loop.c event-top.c \ ++ exceptions.c expprint.c \ ++ f-exp.y f-lang.c f-typeprint.c f-valprint.c filesystem.c \ ++ findcmd.c findvar.c frame.c frame-base.c frame-unwind.c \ ++ gdbarch.c arch-utils.c gdb_bfd.c gdb_obstack.c \ ++ gdbtypes.c gnu-v2-abi.c gnu-v3-abi.c \ ++ go-exp.y go-lang.c go-typeprint.c go-valprint.c \ ++ inf-loop.c \ ++ infcall.c \ ++ infcmd.c inflow.c infrun.c \ ++ inline-frame.c \ ++ interps.c \ ++ jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c jv-varobj.c \ ++ language.c linespec.c minidebug.c \ ++ m2-exp.y m2-lang.c m2-typeprint.c m2-valprint.c \ ++ macrotab.c macroexp.c macrocmd.c macroscope.c main.c maint.c \ ++ mdebugread.c memattr.c mem-break.c minsyms.c mipsread.c memory-map.c \ ++ memrange.c mi/mi-common.c \ ++ objc-lang.c \ ++ objfiles.c osabi.c observer.c osdata.c \ ++ opencl-lang.c \ ++ p-exp.y p-lang.c p-typeprint.c p-valprint.c parse.c printcmd.c \ ++ proc-service.list progspace.c \ ++ prologue-value.c psymtab.c \ ++ regcache.c reggroups.c remote.c remote-fileio.c remote-notif.c reverse.c \ ++ sentinel-frame.c \ ++ serial.c ser-base.c ser-unix.c skip.c \ ++ solib.c solib-target.c source.c \ ++ stabsread.c stack.c probe.c stap-probe.c std-regs.c \ ++ symfile.c symfile-debug.c symfile-mem.c symmisc.c symtab.c \ ++ target.c target-dcache.c target-descriptions.c target-memory.c \ ++ thread.c top.c tracepoint.c \ ++ trad-frame.c \ ++ tramp-frame.c \ ++ typeprint.c \ ++ ui-out.c utils.c ui-file.h ui-file.c \ ++ user-regs.c \ ++ valarith.c valops.c valprint.c value.c varobj.c common/vec.c \ ++ xml-tdesc.c xml-support.c \ ++ inferior.c gdb_usleep.c \ ++ record.c record-full.c gcore.c \ ++ jit.c \ ++ xml-syscall.c \ ++ annotate.c common/signals.c copying.c dfp.c gdb.c inf-child.c \ ++ regset.c sol-thread.c windows-termcap.c \ ++ common/gdb_vecs.c common/common-utils.c common/xml-utils.c \ ++ common/ptid.c common/buffer.c gdb-dlfcn.c common/agent.c \ ++ common/format.c common/filestuff.c btrace.c record-btrace.c ctf.c \ ++ target/waitstatus.c ++ ++LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c ++ ++# 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 = \ ++common/gdb_signals.h common/gdb_thread_db.h common/gdb_vecs.h \ ++common/i386-xstate.h common/linux-ptrace.h common/mips-linux-watch.h \ ++proc-utils.h aarch64-tdep.h arm-tdep.h ax-gdb.h ppcfbsd-tdep.h \ ++ppcnbsd-tdep.h cli-out.h gdb_expat.h breakpoint.h infcall.h obsd-tdep.h \ ++exec.h m32r-tdep.h osabi.h gdbcore.h solib-som.h amd64bsd-nat.h \ ++i386bsd-nat.h xml-support.h xml-tdesc.h alphabsd-tdep.h gdb_obstack.h \ ++ia64-tdep.h ada-lang.h varobj.h frv-tdep.h nto-tdep.h serial.h \ ++c-lang.h d-lang.h go-lang.h frame.h event-loop.h block.h cli/cli-setshow.h \ ++cli/cli-decode.h cli/cli-cmds.h cli/cli-utils.h \ ++cli/cli-script.h macrotab.h symtab.h common/version.h \ ++gnulib/import/string.in.h gnulib/import/str-two-way.h \ ++gnulib/import/stdint.in.h remote.h remote-notif.h gdb.h sparc-nat.h \ ++gdbthread.h dwarf2-frame.h dwarf2-frame-tailcall.h nbsd-nat.h dcache.h \ ++amd64-nat.h s390-linux-tdep.h arm-linux-tdep.h exceptions.h macroscope.h \ ++gdbarch.h bsd-uthread.h memory-map.h memrange.h \ ++mdebugread.h m88k-tdep.h stabsread.h hppa-linux-offsets.h linux-fork.h \ ++ser-unix.h inf-ptrace.h terminal.h ui-out.h frame-base.h \ ++f-lang.h dwarf2loc.h value.h sparc-tdep.h defs.h target-descriptions.h \ ++objfiles.h common/vec.h disasm.h mips-tdep.h ser-base.h \ ++gdb_curses.h bfd-target.h memattr.h inferior.h ax.h dummy-frame.h \ ++inflow.h fbsd-nat.h ia64-libunwind-tdep.h completer.h inf-ttrace.h \ ++solib-target.h gdb_vfork.h alpha-tdep.h dwarf2expr.h \ ++m2-lang.h stack.h charset.h cleanups.h addrmap.h command.h solist.h source.h \ ++target.h target-dcache.h prologue-value.h cp-abi.h tui/tui-hooks.h tui/tui.h \ ++tui/tui-file.h tui/tui-command.h tui/tui-disasm.h tui/tui-wingeneral.h \ ++tui/tui-windata.h tui/tui-data.h tui/tui-win.h tui/tui-stack.h \ ++tui/tui-winsource.h tui/tui-regs.h tui/tui-io.h tui/tui-layout.h \ ++tui/tui-source.h sol2-tdep.h gregset.h sh-tdep.h sh64-tdep.h \ ++expression.h score-tdep.h gdb_select.h ser-tcp.h \ ++build-id.h buildsym.h valprint.h \ ++typeprint.h mi/mi-getopt.h mi/mi-parse.h mi/mi-console.h \ ++mi/mi-out.h mi/mi-main.h mi/mi-common.h mi/mi-cmds.h linux-nat.h \ ++complaints.h gdb_proc_service.h gdb_regex.h xtensa-tdep.h inf-loop.h \ ++common/gdb_wait.h common/gdb_assert.h solib.h ppc-tdep.h cp-support.h glibc-tdep.h \ ++interps.h auxv.h gdbcmd.h tramp-frame.h mipsnbsd-tdep.h \ ++amd64-linux-tdep.h linespec.h i387-tdep.h mn10300-tdep.h \ ++sparc64-tdep.h monitor.h ppcobsd-tdep.h srec.h solib-pa64.h \ ++coff-pe-read.h parser-defs.h gdb_ptrace.h mips-linux-tdep.h \ ++m68k-tdep.h spu-tdep.h jv-lang.h environ.h solib-irix.h amd64-tdep.h \ ++doublest.h regset.h hppa-tdep.h ppc-linux-tdep.h ppc64-tdep.h \ ++rs6000-tdep.h rs6000-aix-tdep.h \ ++common/gdb_locale.h arch-utils.h trad-frame.h gnu-nat.h \ ++language.h nbsd-tdep.h solib-svr4.h \ ++macroexp.h ui-file.h regcache.h tracepoint.h i386-tdep.h \ ++inf-child.h p-lang.h event-top.h gdbtypes.h user-regs.h \ ++regformats/regdef.h config/alpha/nm-osf3.h config/i386/nm-i386gnu.h \ ++config/i386/nm-fbsd.h \ ++config/nm-nto.h config/sparc/nm-sol2.h config/nm-linux.h \ ++top.h bsd-kvm.h gdb-stabs.h reggroups.h \ ++annotate.h sim-regno.h dictionary.h dfp.h main.h frame-unwind.h \ ++remote-fileio.h i386-linux-tdep.h vax-tdep.h objc-lang.h \ ++sentinel-frame.h bcache.h symfile.h windows-tdep.h linux-tdep.h \ ++gdb_usleep.h jit.h xml-syscall.h microblaze-tdep.h \ ++psymtab.h psympriv.h progspace.h bfin-tdep.h ia64-hpux-tdep.h \ ++amd64-darwin-tdep.h charset-list.h \ ++config/djgpp/langinfo.h config/djgpp/nl_types.h darwin-nat.h \ ++dicos-tdep.h filesystem.h gcore.h gdb_wchar.h hppabsd-tdep.h \ ++i386-darwin-tdep.h i386-nat.h linux-record.h moxie-tdep.h nios2-tdep.h \ ++osdata.h procfs.h python/py-event.h python/py-events.h python/py-stopevent.h \ ++python/python-internal.h python/python.h ravenscar-thread.h record.h \ ++record-full.h solib-aix.h \ ++solib-darwin.h solib-ia64-hpux.h solib-spu.h windows-nat.h xcoffread.h \ ++gnulib/import/extra/snippet/arg-nonnull.h gnulib/import/extra/snippet/c++defs.h \ ++gnulib/import/extra/snippet/warn-on-use.h \ ++gnulib/import/stddef.in.h gnulib/import/inttypes.in.h inline-frame.h skip.h \ ++common/common-utils.h common/xml-utils.h common/buffer.h common/ptid.h \ ++common/format.h common/host-defs.h utils.h common/queue.h \ ++common/linux-osdata.h gdb-dlfcn.h auto-load.h probe.h stap-probe.h \ ++gdb_bfd.h sparc-ravenscar-thread.h ppc-ravenscar-thread.h common/linux-btrace.h \ ++ctf.h common/i386-cpuid.h common/i386-gcc-cpuid.h target/resume.h \ ++target/wait.h target/waitstatus.h nat/linux-nat.h nat/linux-waitpid.h ++ ++# Header files that already have srcdir in them, or which are in objdir. ++ ++HFILES_WITH_SRCDIR = ../bfd/bfd.h jit-reader.h ++ ++ ++# GDB "info" files, which should be included in their entirety ++INFOFILES = gdb.info* ++ ++REMOTE_EXAMPLES = m68k-stub.c i386-stub.c sparc-stub.c rem-multi.shar ++ ++# {X,T,NAT}DEPFILES are something of a pain in that it's hard to ++# default their values the way we do for SER_HARDWIRE; in the future ++# maybe much of the stuff now in {X,T,NAT}DEPFILES will go into other ++# variables analogous to SER_HARDWIRE which get defaulted in this ++# Makefile.in ++ ++DEPFILES = $(TARGET_OBS) $(SER_HARDWIRE) $(NATDEPFILES) \ ++ $(REMOTE_OBS) $(SIM_OBS) ++ ++SOURCES = $(SFILES) $(ALLDEPFILES) $(YYFILES) $(CONFIG_SRCS) ++# Don't include YYFILES (*.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) \ ++ $(CONFIG_SRCS) ++TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR) ++ ++COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ ++ version.o \ ++ annotate.o \ ++ addrmap.o \ ++ auto-load.o auxv.o \ ++ agent.o \ ++ bfd-target.o \ ++ blockframe.o breakpoint.o break-catch-sig.o break-catch-throw.o \ ++ findvar.o regcache.o cleanups.o \ ++ charset.o continuations.o corelow.o disasm.o dummy-frame.o dfp.o \ ++ source.o value.o eval.o valops.o valarith.o valprint.o printcmd.o \ ++ block.o symtab.o psymtab.o symfile.o symfile-debug.o symmisc.o \ ++ linespec.o dictionary.o \ ++ infcall.o \ ++ infcmd.o infrun.o \ ++ expprint.o environ.o stack.o thread.o \ ++ exceptions.o \ ++ filesystem.o \ ++ filestuff.o \ ++ inf-child.o \ ++ interps.o \ ++ minidebug.o \ ++ main.o \ ++ macrotab.o macrocmd.o macroexp.o macroscope.o \ ++ mi-common.o \ ++ event-loop.o event-top.o inf-loop.o completer.o \ ++ gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o gdb_obstack.o \ ++ osabi.o copying.o \ ++ memattr.o mem-break.o target.o target-dcache.o parse.o language.o \ ++ build-id.o buildsym.o \ ++ findcmd.o \ ++ std-regs.o \ ++ signals.o \ ++ exec.o reverse.o \ ++ bcache.o objfiles.o observer.o minsyms.o maint.o demangle.o \ ++ dbxread.o coffread.o coff-pe-read.o \ ++ dwarf2read.o mipsread.o stabsread.o corefile.o \ ++ dwarf2expr.o dwarf2loc.o dwarf2-frame.o dwarf2-frame-tailcall.o \ ++ ada-lang.o c-lang.o d-lang.o f-lang.o objc-lang.o \ ++ ada-tasks.o ada-varobj.o c-varobj.o \ ++ ui-out.o cli-out.o \ ++ varobj.o vec.o \ ++ go-lang.o go-valprint.o go-typeprint.o \ ++ jv-lang.o jv-valprint.o jv-typeprint.o jv-varobj.o \ ++ m2-lang.o opencl-lang.o p-lang.o p-typeprint.o p-valprint.o \ ++ sentinel-frame.o \ ++ complaints.o typeprint.o \ ++ ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o \ ++ ada-valprint.o c-valprint.o cp-valprint.o d-valprint.o f-valprint.o \ ++ m2-valprint.o \ ++ serial.o mdebugread.o top.o utils.o \ ++ ui-file.o \ ++ user-regs.o \ ++ frame.o frame-unwind.o doublest.o \ ++ frame-base.o \ ++ inline-frame.o \ ++ gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o \ ++ cp-namespace.o \ ++ reggroups.o regset.o \ ++ trad-frame.o \ ++ tramp-frame.o \ ++ solib.o solib-target.o \ ++ prologue-value.o memory-map.o memrange.o \ ++ xml-support.o xml-syscall.o xml-utils.o \ ++ target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o \ ++ inferior.o osdata.o gdb_usleep.o record.o record-full.o gcore.o \ ++ gdb_vecs.o jit.o progspace.o skip.o probe.o \ ++ common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o \ ++ format.o registry.o btrace.o record-btrace.o waitstatus.o ++ ++TSOBS = inflow.o ++ ++SUBDIRS = doc @subdirs@ data-directory $(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 = doc | testsuite | $(GNULIB_BUILDDIR) | data-directory ++ ++# For now, shortcut the "configure GDB for fewer languages" stuff. ++YYFILES = c-exp.c \ ++ cp-name-parser.c \ ++ ada-lex.c \ ++ ada-exp.c \ ++ jv-exp.c \ ++ f-exp.c go-exp.c m2-exp.c p-exp.c ++YYOBJ = c-exp.o \ ++ cp-name-parser.o \ ++ ada-exp.o \ ++ jv-exp.o \ ++ f-exp.o go-exp.o m2-exp.o p-exp.o ++ ++# Things which need to be built when making a distribution. ++ ++DISTSTUFF = $(YYFILES) ++ ++ ++# All generated files which can be included by another file. ++generated_files = config.h observer.h observer.inc ada-lex.c jit-reader.h \ ++ $(GNULIB_H) $(NAT_GENERATED_FILES) gcore ++ ++.c.o: ++ $(COMPILE) $< ++ $(POSTCOMPILE) ++ ++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 ++ ++check-perf: force ++ @if [ -f testsuite/Makefile ]; then \ ++ rootme=`pwd`; export rootme; \ ++ rootsrc=`cd $(srcdir); pwd`; export rootsrc; \ ++ cd testsuite; \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) check-perf; \ ++ else true; fi ++ ++# The idea is to parallelize testing of multilibs, for example: ++# make -j3 check//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu} ++# will run 3 concurrent sessions of check, eventually testing all 10 ++# combinations. GNU make is required for the % pattern to work, as is ++# a shell that expands alternations within braces. If GNU make is not ++# used, this rule will harmlessly fail to match. Used FORCE_PARALLEL to ++# prevent serialized checking due to the passed RUNTESTFLAGS. ++# FIXME: use config.status --config not --version, when available. ++check//%: force ++ @if [ -f testsuite/config.status ]; then \ ++ rootme=`pwd`; export rootme; \ ++ rootsrc=`cd $(srcdir); pwd`; export rootsrc; \ ++ target=`echo "$@" | sed 's,//.*,,'`; \ ++ variant=`echo "$@" | sed 's,^[^/]*//,,'`; \ ++ vardots=`echo "$$variant" | sed 's,/,.,g'`; \ ++ testdir=testsuite.$$vardots; \ ++ if [ ! -f $$testdir/Makefile ] && [ -f testsuite/config.status ]; then \ ++ configargs=`cd testsuite && ./config.status --version | \ ++ sed -n -e 's,"$$,,' -e 's,^ *with options ",,p'`; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $$testdir && \ ++ (cd $$testdir && \ ++ eval $(SHELL) "\"\$$rootsrc/testsuite/configure\" $$configargs" \ ++ "\"--srcdir=\$$rootsrc/testsuite\"" \ ++ ); \ ++ else :; fi && cd $$testdir && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) \ ++ RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \ ++ FORCE_PARALLEL=$(if $(FORCE_PARALLEL),1,$(if $(RUNTESTFLAGS),,1)) \ ++ "$$target"; \ ++ else true; fi ++ ++info install-info clean-info dvi pdf install-pdf html install-html: force ++ @$(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: $(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 ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \ ++ $(INSTALL_PROGRAM) gdb$(EXEEXT) \ ++ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(includedir)/gdb ; \ ++ $(INSTALL_DATA) jit-reader.h $(DESTDIR)$(includedir)/gdb/jit-reader.h ++ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \ ++ then \ ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo gcore | sed -e "$$t"` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=gcore ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \ ++ $(INSTALL_SCRIPT) gcore \ ++ $(DESTDIR)$(bindir)/$$transformed_name; \ ++ fi ++ @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do ++ ++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 ++ ++install-python: ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb ++ ++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 $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \ ++ $(DESTDIR)$(man1dir)/$$transformed_name.1 ++ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \ ++ then \ ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo gcore | sed -e "$$t"` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=gcore ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ rm -f $(DESTDIR)$(bindir)/$$transformed_name; \ ++ fi ++ @$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do ++ ++# The C++ name parser can be built standalone for testing. ++test-cp-name-parser.o: cp-name-parser.c ++ $(COMPILE) -DTEST_CPNAMES cp-name-parser.c ++ $(POSTCOMPILE) ++ ++test-cp-name-parser$(EXEEXT): test-cp-name-parser.o $(LIBIBERTY) ++ $(CC_LD) $(INTERNAL_LDFLAGS) -o test-cp-name-parser$(EXEEXT) \ ++ test-cp-name-parser.o $(LIBIBERTY) ++ ++# We do this by grepping through sources. If that turns out to be too slow, ++# maybe we could just require every .o file to have an initialization routine ++# of a given name (top.o -> _initialize_top, etc.). ++# ++# Formatting conventions: The name of the _initialize_* routines must start ++# in column zero, and must not be inside #if. ++# ++# Note that the set of files with init functions might change, or the names ++# of the functions might change, so this files needs to depend on all the ++# object files that will be linked into gdb. ++ ++# FIXME: There is a problem with this approach - init.c may force ++# unnecessary files to be linked in. ++ ++# FIXME: cagney/2002-06-09: gdb/564: gdb/563: Force the order so that ++# the first call is to _initialize_gdbtypes (implemented by explicitly ++# putting that function's name first in the init.l-tmp file). This is ++# a hack to ensure that all the architecture dependant global ++# builtin_type_* variables are initialized before anything else ++# (per-architecture code is called in the same order that it is ++# registered). The ``correct fix'' is to have all the builtin types ++# made part of the architecture and initialize them on-demand (using ++# gdbarch_data) just like everything else. The catch is that other ++# modules still take the address of these builtin types forcing them ++# to be variables, sigh! ++ ++# NOTE: cagney/2003-03-18: The sed pattern ``s|^\([^ /]...'' is ++# anchored on the first column and excludes the ``/'' character so ++# that it doesn't add the $(srcdir) prefix to any file that already ++# has an absolute path. It turns out that $(DEC)'s True64 make ++# automatically adds the $(srcdir) prefixes when it encounters files ++# in sub-directories such as cli/ and mi/. ++ ++# NOTE: cagney/2004-02-08: The ``case "$$fs" in'' eliminates ++# duplicates. Files in the gdb/ directory can end up appearing in ++# COMMON_OBS (as a .o file) and CONFIG_SRCS (as a .c file). ++ ++INIT_FILES = $(COMMON_OBS) $(TSOBS) $(CONFIG_SRCS) ++init.c: $(INIT_FILES) ++ @echo Making init.c ++ @rm -f init.c-tmp init.l-tmp ++ @touch init.c-tmp ++ @echo gdbtypes > init.l-tmp ++ @-LANG=C ; export LANG ; \ ++ LC_ALL=C ; export LC_ALL ; \ ++ echo $(INIT_FILES) | \ ++ tr ' ' '\012' | \ ++ sed \ ++ -e '/^gdbtypes.[co]$$/d' \ ++ -e '/^init.[co]$$/d' \ ++ -e '/xdr_ld.[co]$$/d' \ ++ -e '/xdr_ptrace.[co]$$/d' \ ++ -e '/xdr_rdb.[co]$$/d' \ ++ -e '/udr.[co]$$/d' \ ++ -e '/udip2soc.[co]$$/d' \ ++ -e '/udi2go32.[co]$$/d' \ ++ -e '/version.[co]$$/d' \ ++ -e '/^[a-z0-9A-Z_]*_[SU].[co]$$/d' \ ++ -e '/[a-z0-9A-Z_]*-exp.tab.[co]$$/d' \ ++ -e 's/\.[co]$$/.c/' \ ++ -e 's,signals\.c,common/signals\.c,' \ ++ -e 's|^\([^ /][^ ]*\)|$(srcdir)/\1|g' | \ ++ while read f; do \ ++ sed -n -e 's/^_initialize_\([a-z_0-9A-Z]*\).*/\1/p' $$f 2>/dev/null; \ ++ done | \ ++ while read f; do \ ++ case " $$fs " in \ ++ *" $$f "* ) ;; \ ++ * ) echo $$f ; fs="$$fs $$f";; \ ++ esac; \ ++ done >> 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" /* For initialize_file_ftype. */' >>init.c-tmp ++ @echo 'extern void initialize_all_files(void);' >>init.c-tmp ++ @sed -e 's/\(.*\)/extern initialize_file_ftype _initialize_\1;/' >init.c-tmp ++ @echo 'void' >>init.c-tmp ++ @echo 'initialize_all_files (void)' >>init.c-tmp ++ @echo '{' >>init.c-tmp ++ @sed -e 's/\(.*\)/ _initialize_\1 ();/' >init.c-tmp ++ @echo '}' >>init.c-tmp ++ @rm init.l-tmp ++ @mv init.c-tmp init.c ++ ++.PRECIOUS: init.c ++ ++# 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= $(COMMON_OBS) $(TSOBS) $(ADD_FILES) init.o ++libgdb.a: $(LIBGDB_OBS) ++ -rm -f libgdb.a ++ $(AR) q libgdb.a $(LIBGDB_OBS) ++ $(RANLIB) libgdb.a ++ ++# Removing the old gdb first works better if it is running, at least on SunOS. ++gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS) ++ rm -f gdb$(EXEEXT) ++ $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \ ++ -o gdb$(EXEEXT) gdb.o $(LIBGDB_OBS) \ ++ $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES) ++ ++# Convenience rule to handle recursion. ++$(LIBGNU) $(GNULIB_H): all-lib ++all-lib: $(GNULIB_BUILDDIR)/Makefile ++ @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do ++.PHONY: all-lib ++ ++# Convenience rule to handle recursion. ++.PHONY: all-data-directory ++all-data-directory: data-directory/Makefile ++ @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=data-directory subdir_do ++ ++# 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) ++ ++# 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. ++ ++GDB_NM_FILE = @GDB_NM_FILE@ ++TAGS: $(TAGFILES_NO_SRCDIR) $(TAGFILES_WITH_SRCDIR) ++ @echo Making TAGS ++ etags `(test -n "$(GDB_NM_FILE)" && echo "$(srcdir)/$(GDB_NM_FILE)")` \ ++ `(for i in $(DEPFILES) $(TAGFILES_NO_SRCDIR); do \ ++ echo $(srcdir)/$$i ; \ ++ done ; for i in $(TAGFILES_WITH_SRCDIR); do \ ++ echo $$i ; \ ++ done) | sed -e 's/\.o$$/\.c/'` \ ++ `find $(srcdir)/config -name '*.h' -print` ++ ++tags: TAGS ++ ++clean mostlyclean: $(CONFIG_CLEAN) ++ @$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(CLEANDIRS)" subdir_do ++ rm -f *.o *.a $(ADD_FILES) *~ init.c-tmp init.l-tmp version.c-tmp ++ rm -f init.c version.c observer.h observer.inc ++ rm -f gdb$(EXEEXT) core make.log ++ rm -f gdb[0-9]$(EXEEXT) ++ rm -f test-cp-name-parser$(EXEEXT) ++ rm -f xml-builtin.c stamp-xml ++ rm -f $(DEPDIR)/* ++ ++# This used to depend on c-exp.c m2-exp.c TAGS ++# I believe this is wrong; the makefile standards for distclean just ++# describe removing files; the only sort of "re-create a distribution" ++# functionality described is if the distributed files are unmodified. ++# NB: While GDBSERVER might be configured on native systems, it isn't ++# always included in SUBDIRS. Remove the gdbserver files explicitly. ++distclean: clean ++ @$(MAKE) $(FLAGS_TO_PASS) DO=distclean "DODIRS=$(CLEANDIRS)" subdir_do ++ rm -rf $(GNULIB_BUILDDIR) ++ rm -f gdbserver/config.status gdbserver/config.log ++ rm -f gdbserver/tm.h gdbserver/xm.h gdbserver/nm.h ++ rm -f gdbserver/Makefile gdbserver/config.cache ++ rm -f nm.h config.status config.h stamp-h gdb-gdb.gdb jit-reader.h ++ rm -f y.output yacc.acts yacc.tmp y.tab.h ++ rm -f config.log config.cache ++ rm -f Makefile ++ rm -rf $(DEPDIR) ++ ++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.c \ ++ cp-name-parser.c \ ++ ada-lex.c ada-exp.c \ ++ jv-exp.tab \ ++ f-exp.c go-exp.c m2-exp.c p-exp.c ++ rm -f TAGS $(INFOFILES) ++ rm -f $(YYFILES) ++ rm -f nm.h config.status ++ ++do-maintainer-clean: ++ @$(MAKE) $(FLAGS_TO_PASS) DO=maintainer-clean "DODIRS=$(CLEANDIRS)" \ ++ subdir_do ++ ++diststuff: $(DISTSTUFF) $(PACKAGE).pot $(CATALOGS) ++ cd doc; $(MAKE) $(MFLAGS) diststuff ++ ++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 ++ ++Makefile: Makefile.in config.status @frags@ ++ # Regenerate the Makefile and the tm.h / nm.h links. ++ CONFIG_FILES="Makefile" \ ++ CONFIG_COMMANDS= \ ++ CONFIG_HEADERS= \ ++ $(SHELL) config.status ++ ++$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status @frags@ ++ @cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \ ++ CONFIG_COMMANDS="depfiles" \ ++ CONFIG_HEADERS= \ ++ CONFIG_LINKS= \ ++ $(SHELL) config.status ++ ++data-directory/Makefile: data-directory/Makefile.in config.status @frags@ ++ CONFIG_FILES="data-directory/Makefile" \ ++ CONFIG_COMMANDS="depfiles" \ ++ CONFIG_HEADERS= \ ++ CONFIG_LINKS= \ ++ $(SHELL) config.status ++ ++.PHONY: run ++run: Makefile ++ ./gdb$(EXEEXT) --data-directory=`pwd`/data-directory $(GDBFLAGS) ++ ++jit-reader.h: $(srcdir)/jit-reader.in ++ $(SHELL) config.status $@ ++ ++gcore: $(srcdir)/gcore.in ++ $(SHELL) config.status $@ ++ ++config.h: stamp-h ; @true ++stamp-h: $(srcdir)/config.in config.status ++ CONFIG_HEADERS=config.h:config.in \ ++ CONFIG_COMMANDS="default depdir" \ ++ CONFIG_FILES= \ ++ CONFIG_LINKS= \ ++ $(SHELL) config.status ++ ++config.status: $(srcdir)/configure configure.tgt configure.host development.sh ++ $(SHELL) config.status --recheck ++ ++ACLOCAL = aclocal ++ACLOCAL_AMFLAGS = -I ../config ++ ++# Keep these in sync with the includes in acinclude.m4. ++aclocal_m4_deps = \ ++ configure.ac \ ++ acx_configure_dir.m4 \ ++ libmcheck.m4 \ ++ ../bfd/bfd.m4 \ ++ ../config/acinclude.m4 \ ++ ../config/plugins.m4 \ ++ ../config/lead-dot.m4 \ ++ ../config/override.m4 \ ++ ../config/largefile.m4 \ ++ ../config/gettext-sister.m4 \ ++ ../config/lib-ld.m4 \ ++ ../config/lib-prefix.m4 \ ++ ../config/lib-link.m4 \ ++ ../config/acx.m4 \ ++ ../config/tcl.m4 \ ++ ../config/depstand.m4 \ ++ ../config/lcmessage.m4 \ ++ ../config/codeset.m4 \ ++ ../config/zlib.m4 ++ ++$(srcdir)/aclocal.m4: @MAINTAINER_MODE_TRUE@ $(aclocal_m4_deps) ++ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) ++ ++AUTOCONF = autoconf ++configure_deps = $(srcdir)/configure.ac $(srcdir)/aclocal.m4 ++$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(configure_deps) ++ cd $(srcdir) && $(AUTOCONF) ++ ++AUTOHEADER = autoheader ++$(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(configure_deps) ++ cd $(srcdir) && $(AUTOHEADER) ++ rm -f stamp-h ++ touch $@ ++ ++# 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: ++ ++# 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)/../COPYING3 $(srcdir)/copying.awk ++ awk -f $(srcdir)/copying.awk \ ++ < $(srcdir)/../COPYING3 > $(srcdir)/copying.tmp ++ mv $(srcdir)/copying.tmp $(srcdir)/copying.c ++ ++version.c: Makefile version.in $(srcdir)/../bfd/version.h $(srcdir)/common/create-version.sh ++ $(SHELL) $(srcdir)/common/create-version.sh $(srcdir) \ ++ $(host_alias) $(target_alias) version.c ++ ++observer.h: observer.sh doc/observer.texi ++ ${srcdir}/observer.sh h ${srcdir}/doc/observer.texi observer.h ++ ++observer.inc: observer.sh doc/observer.texi ++ ${srcdir}/observer.sh inc ${srcdir}/doc/observer.texi observer.inc ++ ++lint: $(LINTFILES) ++ $(LINT) $(INCLUDE_CFLAGS) $(LINTFLAGS) $(LINTFILES) \ ++ `echo $(DEPFILES) $(CONFIG_OBS) | 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= ++ ++ALLDEPFILES = \ ++ aarch64-tdep.c aarch64-linux-tdep.c aarch64-newlib-tdep.c \ ++ aarch64-linux-nat.c \ ++ aix-thread.c \ ++ alpha-nat.c alphabsd-nat.c alpha-linux-nat.c \ ++ alpha-tdep.c alpha-mdebug-tdep.c \ ++ alpha-linux-tdep.c alpha-osf1-tdep.c \ ++ alphabsd-tdep.c alphafbsd-tdep.c alphanbsd-tdep.c alphaobsd-tdep.c \ ++ amd64-nat.c amd64-tdep.c \ ++ amd64bsd-nat.c amd64fbsd-nat.c amd64fbsd-tdep.c \ ++ amd64nbsd-nat.c amd64nbsd-tdep.c \ ++ amd64obsd-nat.c amd64obsd-tdep.c \ ++ amd64-darwin-tdep.c \ ++ amd64-dicos-tdep.c \ ++ amd64-linux-nat.c amd64-linux-tdep.c \ ++ amd64-sol2-tdep.c \ ++ arm-linux-nat.c arm-linux-tdep.c arm-symbian-tdep.c arm-tdep.c \ ++ armnbsd-nat.c armbsd-tdep.c armnbsd-tdep.c armobsd-tdep.c \ ++ avr-tdep.c \ ++ bfin-linux-tdep.c bfin-tdep.c \ ++ bsd-uthread.c bsd-kvm.c \ ++ core-regset.c \ ++ dcache.c dicos-tdep.c darwin-nat.c \ ++ exec.c \ ++ fbsd-nat.c \ ++ fork-child.c \ ++ glibc-tdep.c \ ++ go32-nat.c h8300-tdep.c \ ++ hppa-tdep.c hppa-hpux-tdep.c hppa-hpux-nat.c \ ++ hppa-linux-tdep.c hppa-linux-nat.c \ ++ hppabsd-nat.c hppabsd-tdep.c \ ++ hppaobsd-tdep.c \ ++ hppanbsd-nat.c hppanbsd-tdep.c \ ++ i386-tdep.c i386-linux-nat.c \ ++ i386v4-nat.c i386-cygwin-tdep.c \ ++ i386bsd-nat.c i386bsd-tdep.c i386fbsd-nat.c i386fbsd-tdep.c \ ++ i386nbsd-nat.c i386nbsd-tdep.c i386obsd-nat.c i386obsd-tdep.c \ ++ i387-tdep.c \ ++ i386-darwin-tdep.c i386-darwin-nat.c \ ++ i386-dicos-tdep.c \ ++ i386-linux-tdep.c i386-nat.c \ ++ i386-sol2-nat.c i386-sol2-tdep.c \ ++ i386gnu-nat.c i386gnu-tdep.c \ ++ ia64-hpux-nat.c ia64-hpux-tdep.c \ ++ ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c ia64-vms-tdep.c \ ++ inf-ptrace.c inf-ttrace.c \ ++ irix5-nat.c \ ++ ia64-libunwind-tdep.c \ ++ linux-fork.c \ ++ linux-tdep.c \ ++ linux-record.c \ ++ lm32-tdep.c \ ++ m68hc11-tdep.c \ ++ m32r-tdep.c \ ++ m32r-linux-nat.c m32r-linux-tdep.c \ ++ m68k-tdep.c \ ++ m68kbsd-nat.c m68kbsd-tdep.c \ ++ m68klinux-nat.c m68klinux-tdep.c \ ++ m88k-tdep.c m88kbsd-nat.c \ ++ microblaze-tdep.c microblaze-linux-tdep.c \ ++ mingw-hdep.c \ ++ mips-linux-nat.c mips-linux-tdep.c \ ++ mips-irix-tdep.c \ ++ mips-tdep.c \ ++ mipsnbsd-nat.c mipsnbsd-tdep.c \ ++ mips64obsd-nat.c mips64obsd-tdep.c \ ++ msp430-tdep.c \ ++ nios2-tdep.c nios2-linux-tdep.c \ ++ nbsd-nat.c nbsd-tdep.c obsd-tdep.c \ ++ solib-osf.c \ ++ somread.c solib-som.c \ ++ posix-hdep.c \ ++ ppc-sysv-tdep.c ppc-linux-nat.c ppc-linux-tdep.c ppc64-tdep.c \ ++ ppcfbsd-nat.c ppcfbsd-tdep.c \ ++ ppcnbsd-nat.c ppcnbsd-tdep.c \ ++ ppcobsd-nat.c ppcobsd-tdep.c \ ++ procfs.c \ ++ ravenscar-thread.c \ ++ remote-m32r-sdi.c remote-mips.c \ ++ remote-sim.c \ ++ dcache.c \ ++ rl78-tdep.c \ ++ rs6000-nat.c rs6000-tdep.c solib-aix.c ppc-ravenscar-thread.c \ ++ rs6000-lynx178-tdep.c \ ++ rx-tdep.c \ ++ s390-linux-tdep.c s390-linux-nat.c \ ++ score-tdep.c \ ++ ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \ ++ sh-tdep.c sh64-tdep.c shnbsd-tdep.c shnbsd-nat.c \ ++ sol2-tdep.c \ ++ solib-irix.c solib-svr4.c \ ++ sparc-linux-nat.c sparc-linux-tdep.c \ ++ sparc-sol2-nat.c sparc-sol2-tdep.c sparc64-sol2-tdep.c \ ++ sparc-nat.c sparc-tdep.c sparc64-linux-nat.c sparc64-linux-tdep.c \ ++ sparc64-nat.c sparc64-tdep.c sparc64fbsd-nat.c sparc64fbsd-tdep.c \ ++ sparc64nbsd-nat.c sparc64nbsd-tdep.c sparc64obsd-tdep.c \ ++ sparcnbsd-nat.c sparcnbsd-tdep.c sparcobsd-tdep.c \ ++ sparc-ravenscar-thread.c \ ++ spu-linux-nat.c spu-tdep.c spu-multiarch.c solib-spu.c \ ++ tilegx-linux-nat.c tilegx-tdep.c tilegx-linux-tdep.c \ ++ v850-tdep.c \ ++ vax-nat.c vax-tdep.c vaxbsd-nat.c vaxnbsd-tdep.c \ ++ windows-nat.c windows-tdep.c \ ++ xcoffread.c \ ++ xstormy16-tdep.c \ ++ xtensa-tdep.c xtensa-config.c \ ++ xtensa-linux-tdep.c xtensa-linux-nat.c xtensa-xtregs.c ++ ++# Some files need explicit build rules (due to -Werror problems) or due ++# to sub-directory fun 'n' games. ++ ++# FIXME: cagney/2003-08-10: "monitor.c" gets -Wformat-nonliteral ++# errors. It turns out that that is the least of monitor.c's ++# problems. The function print_vsprintf appears to be using ++# va_arg(long) to extract CORE_ADDR parameters - something that ++# definitly will not work. "monitor.c" needs to be rewritten so that ++# it doesn't use format strings and instead uses callbacks. ++monitor.o: $(srcdir)/monitor.c ++ $(COMPILE.pre) $(INTERNAL_CFLAGS) $(GDB_WARN_CFLAGS_NO_FORMAT) \ ++ $(COMPILE.post) $(srcdir)/monitor.c ++ $(POSTCOMPILE) ++ ++# Do not try to build "printcmd.c" with -Wformat-nonliteral. It manually ++# checks format strings. ++printcmd.o: $(srcdir)/printcmd.c ++ $(COMPILE.pre) $(INTERNAL_CFLAGS) $(GDB_WARN_CFLAGS_NO_FORMAT) \ ++ $(COMPILE.post) $(srcdir)/printcmd.c ++ $(POSTCOMPILE) ++ ++# ada-exp.c can appear in srcdir, for releases; or in ., for ++# development builds. ++ADA_EXP_C = `if test -f ada-exp.c; then echo ada-exp.c; else echo $(srcdir)/ada-exp.c; fi` ++ ++# Some versions of flex give output that triggers ++# -Wold-style-definition. ++ada-exp.o: ada-exp.c ++ $(COMPILE.pre) $(INTERNAL_CFLAGS) $(GDB_WARN_CFLAGS_NO_DEFS) \ ++ $(COMPILE.post) $(ADA_EXP_C) ++ $(POSTCOMPILE) ++ ++# Message files. Based on code in gcc/Makefile.in. ++ ++# Rules for generating translated message descriptions. Disabled by ++# autoconf if the tools are not available. ++ ++.SUFFIXES: .po .gmo .pox .pot ++.PHONY: all-po install-po uninstall-po clean-po update-po $(PACKAGE).pot ++ ++all-po: $(CATALOGS) ++ ++# This notation should be acceptable to all Make implementations used ++# by people who are interested in updating .po files. ++update-po: $(CATALOGS:.gmo=.pox) ++ ++# N.B. We do not attempt to copy these into $(srcdir). The snapshot ++# script does that. ++.po.gmo: ++ -test -d po || mkdir po ++ $(GMSGFMT) --statistics -o $@ $< ++ ++# The new .po has to be gone over by hand, so we deposit it into ++# build/po with a different extension. If build/po/$(PACKAGE).pot ++# exists, use it (it was just created), else use the one in srcdir. ++.po.pox: ++ -test -d po || mkdir po ++ $(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \ ++ then echo po/$(PACKAGE).pot; \ ++ else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@ ++ ++# This rule has to look for .gmo modules in both srcdir and the cwd, ++# and has to check that we actually have a catalog for each language, ++# in case they weren't built or included with the distribution. ++install-po: ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(datadir) ++ cats="$(CATALOGS)"; for cat in $$cats; do \ ++ lang=`basename $$cat | sed 's/\.gmo$$//'`; \ ++ if [ -f $$cat ]; then :; \ ++ elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \ ++ else continue; \ ++ fi; \ ++ dir=$(localedir)/$$lang/LC_MESSAGES; \ ++ echo $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$$dir; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$$dir || exit 1; \ ++ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ done ++uninstall-po: ++ cats="$(CATALOGS)"; for cat in $$cats; do \ ++ lang=`basename $$cat | sed 's/\.gmo$$//'`; \ ++ if [ -f $$cat ]; then :; \ ++ elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \ ++ else continue; \ ++ fi; \ ++ dir=$(localedir)/$$lang/LC_MESSAGES; \ ++ rm -f $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ done ++# Delete po/*.gmo only if we are not building in the source directory. ++clean-po: ++ -if [ ! -f Makefile.in ]; then rm -f po/*.gmo; fi ++ ++# Rule for regenerating the message template (gdb.pot). Instead of ++# forcing everyone to edit POTFILES.in, which proved impractical, this ++# rule has no dependencies and always regenerates gdb.pot. This is ++# relatively harmless since the .po files do not directly depend on ++# it. The .pot file is left in the build directory. Since GDB's ++# Makefile lacks a cannonical list of sources (missing xm, tm and nm ++# files) force this rule. ++$(PACKAGE).pot: po/$(PACKAGE).pot ++po/$(PACKAGE).pot: force ++ -test -d po || mkdir po ++ sh -e $(srcdir)/po/gdbtext $(XGETTEXT) $(PACKAGE) . $(srcdir) ++ ++ ++# ++# YACC/LEX dependencies ++# ++# LANG-exp.c is generated in objdir from LANG-exp.y if it doesn't ++# exist in srcdir, then compiled in objdir to LANG-exp.o. If we ++# said LANG-exp.c rather than ./c-exp.c some makes would ++# sometimes re-write it into $(srcdir)/c-exp.c. Remove bogus ++# decls for malloc/realloc/free which conflict with everything else. ++# Strictly speaking c-exp.c should therefore depend on ++# Makefile.in, but that was a pretty big annoyance. ++ ++.SUFFIXES: .y .l ++.y.c: ++ rm -f $@ $@.tmp ++ $(SHELL) $(YLWRAP) $< y.tab.c $@ -- $(YACC) $(YFLAGS) && mv $@ $@.tmp \ ++ || (rm -f $@; false) ++ sed -e '/extern.*malloc/d' \ ++ -e '/extern.*realloc/d' \ ++ -e '/extern.*free/d' \ ++ -e '/include.*malloc.h/d' \ ++ -e 's/\([^x]\)malloc/\1xmalloc/g' \ ++ -e 's/\([^x]\)realloc/\1xrealloc/g' \ ++ -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \ ++ -e 's/\([ \t;,(]\)free$$/\1xfree/g' \ ++ -e '/^#line.*y.tab.c/d' \ ++ -e "s/^\(#line.*\)`basename $<`/\1`echo $<|sed 's/\//\\\\\//g'`/" \ ++ < $@.tmp > $@ ++ rm -f $@.tmp ++.l.c: ++ if [ "$(FLEX)" ] && $(FLEX) --version >/dev/null 2>&1; then \ ++ $(FLEX) -o$@ $< && \ ++ rm -f $@.new && \ ++ sed -e '/extern.*malloc/d' \ ++ -e '/extern.*realloc/d' \ ++ -e '/extern.*free/d' \ ++ -e '/include.*malloc.h/d' \ ++ -e 's/\([^x]\)malloc/\1xmalloc/g' \ ++ -e 's/\([^x]\)realloc/\1xrealloc/g' \ ++ -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \ ++ -e 's/\([ \t;,(]\)free$$/\1xfree/g' \ ++ -e 's/yy_flex_xrealloc/yyxrealloc/g' \ ++ < $@ > $@.new && \ ++ rm -f $@ && \ ++ mv $@.new $@; \ ++ elif [ -f $@ ]; then \ ++ echo "Warning: $*.c older than $*.l and flex not available."; \ ++ else \ ++ echo "$@ missing and flex not available."; \ ++ false; \ ++ fi ++ ++.PRECIOUS: ada-lex.c ++ ++# XML rules ++ ++xml-builtin.c: stamp-xml; @true ++stamp-xml: $(srcdir)/features/feature_to_c.sh Makefile $(XMLFILES) ++ rm -f xml-builtin.tmp ++ AWK="$(AWK)" \ ++ $(SHELL) $(srcdir)/features/feature_to_c.sh \ ++ xml-builtin.tmp $(XMLFILES) ++ $(SHELL) $(srcdir)/../move-if-change xml-builtin.tmp xml-builtin.c ++ echo stamp > stamp-xml ++ ++.PRECIOUS: xml-builtin.c ++ ++# ++# gdb/cli/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++cli-cmds.o: $(srcdir)/cli/cli-cmds.c ++ $(COMPILE) $(srcdir)/cli/cli-cmds.c ++ $(POSTCOMPILE) ++ ++cli-decode.o: $(srcdir)/cli/cli-decode.c ++ $(COMPILE) $(srcdir)/cli/cli-decode.c ++ $(POSTCOMPILE) ++ ++cli-dump.o: $(srcdir)/cli/cli-dump.c ++ $(COMPILE) $(srcdir)/cli/cli-dump.c ++ $(POSTCOMPILE) ++ ++cli-interp.o: $(srcdir)/cli/cli-interp.c ++ $(COMPILE) $(srcdir)/cli/cli-interp.c ++ $(POSTCOMPILE) ++ ++cli-logging.o: $(srcdir)/cli/cli-logging.c ++ $(COMPILE) $(srcdir)/cli/cli-logging.c ++ $(POSTCOMPILE) ++ ++cli-script.o: $(srcdir)/cli/cli-script.c ++ $(COMPILE) $(srcdir)/cli/cli-script.c ++ $(POSTCOMPILE) ++ ++cli-setshow.o: $(srcdir)/cli/cli-setshow.c ++ $(COMPILE) $(srcdir)/cli/cli-setshow.c ++ $(POSTCOMPILE) ++ ++cli-utils.o: $(srcdir)/cli/cli-utils.c ++ $(COMPILE) $(srcdir)/cli/cli-utils.c ++ $(POSTCOMPILE) ++ ++ ++# ++# GDBTK sub-directory ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the mi directory. ++ ++all-gdbtk: insight$(EXEEXT) ++ ++install-gdbtk: ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo insight | sed -e $$t` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=insight ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir); \ ++ $(INSTALL_PROGRAM) insight$(EXEEXT) \ ++ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(GDBTK_LIBRARY) ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(libdir)/insight$(GDBTK_VERSION) ; \ ++ $(INSTALL_DATA) $(srcdir)/gdbtk/plugins/plugins.tcl \ ++ $(DESTDIR)$(libdir)/insight$(GDBTK_VERSION)/plugins.tcl ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/images \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/images2 ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/help \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/help/images \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/help/trace ; \ ++ cd $(srcdir)/gdbtk/library ; \ ++ for i in *.tcl *.itcl *.ith *.itb images/*.gif images2/*.gif images/icons.txt images2/icons.txt tclIndex help/*.html help/trace/*.html help/trace/index.toc help/images/*.gif help/images/*.png; \ ++ do \ ++ $(INSTALL_DATA) $$i $(DESTDIR)$(GDBTK_LIBRARY)/$$i ; \ ++ done ; ++ ++uninstall-gdbtk: ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo insight | sed -e $$t` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=insight ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ ++ rm -rf $(DESTDIR)$(GDBTK_LIBRARY) ++ ++clean-gdbtk: ++ rm -f insight$(EXEEXT) ++ ++# Removing the old gdb first works better if it is running, at least on SunOS. ++insight$(EXEEXT): gdbtk-main.o libgdb.a $(ADD_DEPS) \ ++ $(CDEPS) $(TDEPLIBS) ++ rm -f insight$(EXEEXT) ++ $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \ ++ -o insight$(EXEEXT) gdbtk-main.o libgdb.a \ ++ $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES) ++ ++gdbres.o: $(srcdir)/gdbtk/gdb.rc $(srcdir)/gdbtk/gdbtool.ico ++ $(WINDRES) --include $(srcdir)/gdbtk $(srcdir)/gdbtk/gdb.rc gdbres.o ++ ++all_gdbtk_cflags = $(IDE_CFLAGS) $(ITCL_CFLAGS) \ ++ $(ITK_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) \ ++ $(GDBTK_CFLAGS) \ ++ -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\" \ ++ -DSRC_DIR=\"$(GDBTK_SRC_DIR)\" ++ ++gdbtk.o: $(srcdir)/gdbtk/generic/gdbtk.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk.c ++ $(POSTCOMPILE) ++ ++gdbtk-bp.o: $(srcdir)/gdbtk/generic/gdbtk-bp.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-bp.c ++ $(POSTCOMPILE) ++ ++gdbtk-cmds.o: $(srcdir)/gdbtk/generic/gdbtk-cmds.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-cmds.c ++ $(POSTCOMPILE) ++ ++gdbtk-hooks.o: $(srcdir)/gdbtk/generic/gdbtk-hooks.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-hooks.c ++ $(POSTCOMPILE) ++ ++gdbtk-interp.o: $(srcdir)/gdbtk/generic/gdbtk-interp.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-interp.c ++ $(POSTCOMPILE) ++ ++gdbtk-main.o: $(srcdir)/gdbtk/generic/gdbtk-main.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-main.c ++ $(POSTCOMPILE) ++ ++gdbtk-register.o: $(srcdir)/gdbtk/generic/gdbtk-register.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-register.c ++ $(POSTCOMPILE) ++ ++gdbtk-stack.o: $(srcdir)/gdbtk/generic/gdbtk-stack.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-stack.c ++ $(POSTCOMPILE) ++ ++gdbtk-varobj.o: $(srcdir)/gdbtk/generic/gdbtk-varobj.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-varobj.c ++ $(POSTCOMPILE) ++ ++gdbtk-wrapper.o: $(srcdir)/gdbtk/generic/gdbtk-wrapper.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-wrapper.c ++ $(POSTCOMPILE) ++ ++ ++# ++# gdb/mi/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++mi-cmd-break.o: $(srcdir)/mi/mi-cmd-break.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-break.c ++ $(POSTCOMPILE) ++ ++mi-cmd-catch.o: $(srcdir)/mi/mi-cmd-catch.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-catch.c ++ $(POSTCOMPILE) ++ ++mi-cmd-disas.o: $(srcdir)/mi/mi-cmd-disas.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-disas.c ++ $(POSTCOMPILE) ++ ++mi-cmd-env.o: $(srcdir)/mi/mi-cmd-env.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-env.c ++ $(POSTCOMPILE) ++ ++mi-cmd-file.o: $(srcdir)/mi/mi-cmd-file.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-file.c ++ $(POSTCOMPILE) ++ ++mi-cmd-info.o: $(srcdir)/mi/mi-cmd-info.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-info.c ++ $(POSTCOMPILE) ++ ++mi-cmds.o: $(srcdir)/mi/mi-cmds.c ++ $(COMPILE) $(srcdir)/mi/mi-cmds.c ++ $(POSTCOMPILE) ++ ++mi-cmd-stack.o: $(srcdir)/mi/mi-cmd-stack.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-stack.c ++ $(POSTCOMPILE) ++ ++mi-cmd-target.o: $(srcdir)/mi/mi-cmd-target.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-target.c ++ $(POSTCOMPILE) ++ ++mi-cmd-var.o: $(srcdir)/mi/mi-cmd-var.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-var.c ++ $(POSTCOMPILE) ++ ++mi-console.o: $(srcdir)/mi/mi-console.c ++ $(COMPILE) $(srcdir)/mi/mi-console.c ++ $(POSTCOMPILE) ++ ++mi-getopt.o: $(srcdir)/mi/mi-getopt.c ++ $(COMPILE) $(srcdir)/mi/mi-getopt.c ++ $(POSTCOMPILE) ++ ++mi-interp.o: $(srcdir)/mi/mi-interp.c ++ $(COMPILE) $(srcdir)/mi/mi-interp.c ++ $(POSTCOMPILE) ++ ++mi-main.o: $(srcdir)/mi/mi-main.c ++ $(COMPILE) $(srcdir)/mi/mi-main.c ++ $(POSTCOMPILE) ++ ++mi-out.o: $(srcdir)/mi/mi-out.c ++ $(COMPILE) $(srcdir)/mi/mi-out.c ++ $(POSTCOMPILE) ++ ++mi-parse.o: $(srcdir)/mi/mi-parse.c ++ $(COMPILE) $(srcdir)/mi/mi-parse.c ++ $(POSTCOMPILE) ++ ++mi-symbol-cmds.o: $(srcdir)/mi/mi-symbol-cmds.c ++ $(COMPILE) $(srcdir)/mi/mi-symbol-cmds.c ++ $(POSTCOMPILE) ++ ++mi-common.o: $(srcdir)/mi/mi-common.c ++ $(COMPILE) $(srcdir)/mi/mi-common.c ++ $(POSTCOMPILE) ++ ++# gdb/common/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++signals.o: $(srcdir)/common/signals.c ++ $(COMPILE) $(srcdir)/common/signals.c ++ $(POSTCOMPILE) ++ ++common-utils.o: ${srcdir}/common/common-utils.c ++ $(COMPILE) $(srcdir)/common/common-utils.c ++ $(POSTCOMPILE) ++ ++gdb_vecs.o: ${srcdir}/common/gdb_vecs.c ++ $(COMPILE) $(srcdir)/common/gdb_vecs.c ++ $(POSTCOMPILE) ++ ++xml-utils.o: ${srcdir}/common/xml-utils.c ++ $(COMPILE) $(srcdir)/common/xml-utils.c ++ $(POSTCOMPILE) ++ ++ptid.o: ${srcdir}/common/ptid.c ++ $(COMPILE) $(srcdir)/common/ptid.c ++ $(POSTCOMPILE) ++ ++buffer.o: ${srcdir}/common/buffer.c ++ $(COMPILE) $(srcdir)/common/buffer.c ++ $(POSTCOMPILE) ++ ++filestuff.o: $(srcdir)/common/filestuff.c ++ $(COMPILE) $(srcdir)/common/filestuff.c ++ $(POSTCOMPILE) ++ ++format.o: ${srcdir}/common/format.c ++ $(COMPILE) $(srcdir)/common/format.c ++ $(POSTCOMPILE) ++ ++linux-osdata.o: ${srcdir}/common/linux-osdata.c ++ $(COMPILE) $(srcdir)/common/linux-osdata.c ++ $(POSTCOMPILE) ++ ++linux-procfs.o: $(srcdir)/common/linux-procfs.c ++ $(COMPILE) $(srcdir)/common/linux-procfs.c ++ $(POSTCOMPILE) ++ ++linux-ptrace.o: $(srcdir)/common/linux-ptrace.c ++ $(COMPILE) $(srcdir)/common/linux-ptrace.c ++ $(POSTCOMPILE) ++ ++common-agent.o: $(srcdir)/common/agent.c ++ $(COMPILE) $(srcdir)/common/agent.c ++ $(POSTCOMPILE) ++ ++vec.o: ${srcdir}/common/vec.c ++ $(COMPILE) $(srcdir)/common/vec.c ++ $(POSTCOMPILE) ++ ++linux-btrace.o: ${srcdir}/common/linux-btrace.c ++ $(COMPILE) $(srcdir)/common/linux-btrace.c ++ $(POSTCOMPILE) ++ ++mips-linux-watch.o: ${srcdir}/common/mips-linux-watch.c ++ $(COMPILE) $(srcdir)/common/mips-linux-watch.c ++ $(POSTCOMPILE) ++ ++# ++# gdb/target/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++waitstatus.o: ${srcdir}/target/waitstatus.c ++ $(COMPILE) $(srcdir)/target/waitstatus.c ++ $(POSTCOMPILE) ++ ++# gdb/nat/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++linux-waitpid.o: ${srcdir}/nat/linux-waitpid.c ++ $(COMPILE) $(srcdir)/nat/linux-waitpid.c ++ $(POSTCOMPILE) ++ ++# ++# gdb/tui/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++tui.o: $(srcdir)/tui/tui.c ++ $(COMPILE) $(srcdir)/tui/tui.c ++ $(POSTCOMPILE) ++ ++tui-command.o: $(srcdir)/tui/tui-command.c ++ $(COMPILE) $(srcdir)/tui/tui-command.c ++ $(POSTCOMPILE) ++ ++tui-data.o: $(srcdir)/tui/tui-data.c ++ $(COMPILE) $(srcdir)/tui/tui-data.c ++ $(POSTCOMPILE) ++ ++tui-disasm.o: $(srcdir)/tui/tui-disasm.c ++ $(COMPILE) $(srcdir)/tui/tui-disasm.c ++ $(POSTCOMPILE) ++ ++tui-file.o: $(srcdir)/tui/tui-file.c ++ $(COMPILE) $(srcdir)/tui/tui-file.c ++ $(POSTCOMPILE) ++ ++tui-hooks.o: $(srcdir)/tui/tui-hooks.c ++ $(COMPILE) $(srcdir)/tui/tui-hooks.c ++ $(POSTCOMPILE) ++ ++tui-interp.o: $(srcdir)/tui/tui-interp.c ++ $(COMPILE) $(srcdir)/tui/tui-interp.c ++ $(POSTCOMPILE) ++ ++tui-io.o: $(srcdir)/tui/tui-io.c ++ $(COMPILE) $(srcdir)/tui/tui-io.c ++ $(POSTCOMPILE) ++ ++tui-layout.o: $(srcdir)/tui/tui-layout.c ++ $(COMPILE) $(srcdir)/tui/tui-layout.c ++ $(POSTCOMPILE) ++ ++tui-out.o: $(srcdir)/tui/tui-out.c ++ $(COMPILE) $(srcdir)/tui/tui-out.c ++ $(POSTCOMPILE) ++ ++tui-regs.o: $(srcdir)/tui/tui-regs.c ++ $(COMPILE) $(srcdir)/tui/tui-regs.c ++ $(POSTCOMPILE) ++ ++tui-source.o: $(srcdir)/tui/tui-source.c ++ $(COMPILE) $(srcdir)/tui/tui-source.c ++ $(POSTCOMPILE) ++ ++tui-stack.o: $(srcdir)/tui/tui-stack.c ++ $(COMPILE) $(srcdir)/tui/tui-stack.c ++ $(POSTCOMPILE) ++ ++tui-win.o: $(srcdir)/tui/tui-win.c ++ $(COMPILE) $(srcdir)/tui/tui-win.c ++ $(POSTCOMPILE) ++ ++tui-windata.o: $(srcdir)/tui/tui-windata.c ++ $(COMPILE) $(srcdir)/tui/tui-windata.c ++ $(POSTCOMPILE) ++ ++tui-wingeneral.o: $(srcdir)/tui/tui-wingeneral.c ++ $(COMPILE) $(srcdir)/tui/tui-wingeneral.c ++ $(POSTCOMPILE) ++ ++tui-winsource.o: $(srcdir)/tui/tui-winsource.c ++ $(COMPILE) $(srcdir)/tui/tui-winsource.c ++ $(POSTCOMPILE) ++ ++# ++# gdb/python/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++# Flags needed to compile Python code ++PYTHON_CFLAGS=@PYTHON_CFLAGS@ ++ ++python.o: $(srcdir)/python/python.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/python.c ++ $(POSTCOMPILE) ++ ++py-arch.o: $(srcdir)/python/py-arch.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-arch.c ++ $(POSTCOMPILE) ++ ++py-auto-load.o: $(srcdir)/python/py-auto-load.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-auto-load.c ++ $(POSTCOMPILE) ++ ++py-block.o: $(srcdir)/python/py-block.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-block.c ++ $(POSTCOMPILE) ++ ++py-bpevent.o: $(srcdir)/python/py-bpevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-bpevent.c ++ $(POSTCOMPILE) ++ ++py-breakpoint.o: $(srcdir)/python/py-breakpoint.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-breakpoint.c ++ $(POSTCOMPILE) ++ ++py-cmd.o: $(srcdir)/python/py-cmd.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-cmd.c ++ $(POSTCOMPILE) ++ ++py-continueevent.o: $(srcdir)/python/py-continueevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-continueevent.c ++ $(POSTCOMPILE) ++ ++py-event.o: $(srcdir)/python/py-event.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-event.c ++ $(POSTCOMPILE) ++ ++py-evtregistry.o: $(srcdir)/python/py-evtregistry.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-evtregistry.c ++ $(POSTCOMPILE) ++ ++py-evts.o: $(srcdir)/python/py-evts.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-evts.c ++ $(POSTCOMPILE) ++ ++py-exitedevent.o: $(srcdir)/python/py-exitedevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-exitedevent.c ++ $(POSTCOMPILE) ++ ++py-finishbreakpoint.o: $(srcdir)/python/py-finishbreakpoint.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-finishbreakpoint.c ++ $(POSTCOMPILE) ++ ++py-frame.o: $(srcdir)/python/py-frame.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-frame.c ++ $(POSTCOMPILE) ++ ++py-framefilter.o: $(srcdir)/python/py-framefilter.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-framefilter.c ++ $(POSTCOMPILE) ++ ++py-function.o: $(srcdir)/python/py-function.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-function.c ++ $(POSTCOMPILE) ++ ++py-gdb-readline.o: $(srcdir)/python/py-gdb-readline.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-gdb-readline.c ++ $(POSTCOMPILE) ++ ++py-inferior.o: $(srcdir)/python/py-inferior.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-inferior.c ++ $(POSTCOMPILE) ++ ++py-infthread.o: $(srcdir)/python/py-infthread.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-infthread.c ++ $(POSTCOMPILE) ++ ++py-lazy-string.o: $(srcdir)/python/py-lazy-string.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-lazy-string.c ++ $(POSTCOMPILE) ++ ++py-linetable.o: $(srcdir)/python/py-linetable.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-linetable.c ++ $(POSTCOMPILE) ++ ++py-newobjfileevent.o: $(srcdir)/python/py-newobjfileevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-newobjfileevent.c ++ $(POSTCOMPILE) ++ ++py-objfile.o: $(srcdir)/python/py-objfile.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-objfile.c ++ $(POSTCOMPILE) ++ ++py-param.o: $(srcdir)/python/py-param.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-param.c ++ $(POSTCOMPILE) ++ ++py-prettyprint.o: $(srcdir)/python/py-prettyprint.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-prettyprint.c ++ $(POSTCOMPILE) ++ ++py-progspace.o: $(srcdir)/python/py-progspace.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-progspace.c ++ $(POSTCOMPILE) ++ ++py-signalevent.o: $(srcdir)/python/py-signalevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-signalevent.c ++ $(POSTCOMPILE) ++ ++py-stopevent.o: $(srcdir)/python/py-stopevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-stopevent.c ++ $(POSTCOMPILE) ++ ++py-symbol.o: $(srcdir)/python/py-symbol.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-symbol.c ++ $(POSTCOMPILE) ++ ++py-symtab.o: $(srcdir)/python/py-symtab.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-symtab.c ++ $(POSTCOMPILE) ++ ++py-threadevent.o: $(srcdir)/python/py-threadevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-threadevent.c ++ $(POSTCOMPILE) ++ ++py-type.o: $(srcdir)/python/py-type.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-type.c ++ $(POSTCOMPILE) ++ ++py-utils.o: $(srcdir)/python/py-utils.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-utils.c ++ $(POSTCOMPILE) ++ ++py-value.o: $(srcdir)/python/py-value.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-value.c ++ $(POSTCOMPILE) ++ ++# ++# 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 = gdb.o $(LIBGDB_OBS) gdbtk-main.o \ ++ test-cp-name-parser.o ++ ++# 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)) ++ ++### end of the gdb Makefile.in. +diff -Nbaur gdb-7.7/sim/common/Make-common.in gdb-7.7-arm/sim/common/Make-common.in +--- gdb-7.7/sim/common/Make-common.in 2014-01-08 09:23:36.000000000 +0000 ++++ gdb-7.7-arm/sim/common/Make-common.in 2014-02-16 19:43:34.000000000 +0000 +@@ -415,10 +415,8 @@ + # 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@override COMPILE.post = -c -o $@ ++@GMAKE_TRUE@override POSTCOMPILE = + @GMAKE_TRUE@else + @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ + @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) +diff -Nbaur gdb-7.7/sim/common/Make-common.in.orig gdb-7.7-arm/sim/common/Make-common.in.orig +--- gdb-7.7/sim/common/Make-common.in.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gdb-7.7-arm/sim/common/Make-common.in.orig 2014-01-08 09:23:36.000000000 +0000 +@@ -0,0 +1,625 @@ ++# Makefile fragment for common parts of all simulators. ++# Copyright 1997-2014 Free Software Foundation, Inc. ++# Contributed by Cygnus Support. ++ ++# 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 . ++ ++# This Makefile fragment consists of two separate parts. ++# They are merged into the final Makefile at points denoted by ++# "## COMMON_PRE_CONFIG_FRAG" and "## COMMON_POST_CONFIG_FRAG". ++# ++# The target Makefile should look like: ++# ++#># Copyright blah blah ++#> ++#>## COMMON_PRE_CONFIG_FRAG ++#> ++#># Any overrides necessary for the SIM_FOO config vars. ++#>SIM_FOO = ... ++#> ++#>## COMMON_POST_CONFIG_FRAG ++#> ++#># Rules to build target specific .o's. ++ ++## COMMON_PRE_CONFIG_FRAG ++ ++VPATH = @srcdir@:$(srccom) ++srcdir = @srcdir@ ++srccom = $(srcdir)/../common ++srcroot = $(srcdir)/../.. ++srcsim = $(srcdir)/.. ++ ++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@ ++datarootdir = @datarootdir@ ++mandir = @mandir@ ++man1dir = $(mandir)/man1 ++infodir = @infodir@ ++includedir = @includedir@ ++ ++lt_cv_dlopen_libs = @lt_cv_dlopen_libs@ ++# This can be referenced by the gettext configuration code. ++top_builddir = .. ++ ++EXEEXT = @EXEEXT@ ++SHELL = @SHELL@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_DATA = @INSTALL_DATA@ ++ ++CC = @CC@ ++CC_FOR_BUILD = @CC_FOR_BUILD@ ++CFLAGS = @CFLAGS@ ++SIM_BSWAP = @sim_bswap@ ++SIM_CFLAGS = @sim_cflags@ ++SIM_DEBUG = @sim_debug@ ++SIM_TRACE = @sim_trace@ ++SIM_PROFILE = @sim_profile@ ++ ++SIM_ASSERT = @sim_assert@ ++SIM_ALIGNMENT = @sim_alignment@ ++SIM_BITSIZE = @sim_bitsize@ ++SIM_DEFAULT_MODEL = @sim_default_model@ ++SIM_ENDIAN = @sim_endian@ ++SIM_ENVIRONMENT = @sim_environment@ ++SIM_FLOAT = @sim_float@ ++SIM_HW_CFLAGS = @sim_hw_cflags@ ++SIM_HW_OBJS = @sim_hw_objs@ ++SIM_HW = @sim_hw@ ++SIM_HOSTENDIAN = @sim_hostendian@ ++SIM_INLINE = @sim_inline@ ++SIM_PACKAGES = @sim_packages@ ++SIM_REGPARM = @sim_regparm@ ++SIM_RESERVED_BITS = @sim_reserved_bits@ ++SIM_SCACHE = @sim_scache@ ++SIM_SMP = @sim_smp@ ++SIM_STDCALL = @sim_stdcall@ ++SIM_XOR_ENDIAN = @sim_xor_endian@ ++WARN_CFLAGS = @WARN_CFLAGS@ ++WERROR_CFLAGS = @WERROR_CFLAGS@ ++SIM_WARN_CFLAGS = $(WARN_CFLAGS) ++SIM_WERROR_CFLAGS = $(WERROR_CFLAGS) ++ ++HDEFINES = @HDEFINES@ ++TDEFINES = ++ ++AR = @AR@ ++AR_FLAGS = rc ++RANLIB = @RANLIB@ ++MAKEINFO = makeinfo ++ ++# Dependency tracking information. ++DEPMODE = @CCDEPMODE@ ++DEPDIR = @DEPDIR@ ++depcomp = $(SHELL) $(srcroot)/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) $(ALL_CFLAGS) $(COMPILE.post) ++POSTCOMPILE = @true ++ ++# Each simulator's Makefile.in defines one or more of these variables ++# to override our settings as necessary. There is no need to define these ++# in the simulator's Makefile.in if one is using the default value. In fact ++# it's preferable not to. ++ ++# List of object files, less common parts. ++SIM_OBJS = ++# List of extra dependencies. ++# Generally this consists of simulator specific files included by sim-main.h. ++SIM_EXTRA_DEPS = ++# List of flags to always pass to $(CC). ++SIM_EXTRA_CFLAGS = ++# List of extra libraries to link with. ++SIM_EXTRA_LIBS = ++# List of extra program dependencies. ++SIM_EXTRA_LIBDEPS = ++# List of main object files for `run'. ++SIM_RUN_OBJS = run.o ++# Dependency of `all' to build any extra files. ++SIM_EXTRA_ALL = ++# Dependency of `install' to install any extra files. ++SIM_EXTRA_INSTALL = ++# Dependency of `clean' to clean any extra files. ++SIM_EXTRA_CLEAN = ++# Likewise `distclean' ++SIM_EXTRA_DISTCLEAN = ++ ++# Every time a new general purpose source file was added every target's ++# Makefile.in needed to be updated to include the file in SIM_OBJS. ++# This doesn't scale. ++# This variable specifies all the generic stuff common to the newer simulators. ++# Things like sim-reason.o can't go here as the cpu may provide its own ++# (though hopefully in time that won't be so). Things like sim-bits.o can go ++# here. Some files are used by all simulators (e.g. callback.o). ++# Those files are specified in LIB_OBJS below. ++ ++SIM_COMMON_HW_OBJS = \ ++ hw-alloc.o \ ++ hw-base.o \ ++ hw-device.o \ ++ hw-events.o \ ++ hw-handles.o \ ++ hw-instances.o \ ++ hw-ports.o \ ++ hw-properties.o \ ++ hw-tree.o \ ++ sim-hw.o \ ++ ++SIM_NEW_COMMON_OBJS = \ ++ sim-arange.o \ ++ sim-bits.o \ ++ sim-command.o \ ++ sim-config.o \ ++ sim-core.o \ ++ sim-endian.o \ ++ sim-events.o \ ++ sim-fpu.o \ ++ sim-io.o \ ++ sim-info.o \ ++ sim-load.o \ ++ sim-memopt.o \ ++ sim-module.o \ ++ sim-options.o \ ++ sim-profile.o \ ++ sim-signal.o \ ++ sim-trace.o \ ++ sim-utils.o \ ++ sim-watch.o \ ++ \ ++ $(SIM_HW_OBJS) \ ++ ++# cgen-sim.h and the headers it includes ++CGEN_SIM_DEPS = \ ++ $(srccom)/cgen-sim.h \ ++ $(srccom)/cgen-defs.h \ ++ $(srccom)/cgen-scache.h \ ++ $(srccom)/cgen-fpu.h \ ++ $(srccom)/cgen-par.h \ ++ $(srccom)/cgen-cpu.h \ ++ $(srccom)/cgen-trace.h \ ++ cpuall.h ++ ++# Add this to SIM_EXTRA_DEPS. ++CGEN_INCLUDE_DEPS = \ ++ $(CGEN_SIM_DEPS) \ ++ $(srccom)/cgen-engine.h \ ++ $(srccom)/cgen-types.h \ ++ $(srcdir)/../../include/opcode/cgen.h ++ ++## End COMMON_PRE_CONFIG_FRAG ++ ++## COMMON_POST_CONFIG_FRAG ++ ++CONFIG_CFLAGS = \ ++ @DEFS@ \ ++ $(SIM_CFLAGS) \ ++ $(SIM_DEBUG) \ ++ $(SIM_DEFAULT_MODEL) \ ++ $(SIM_TRACE) \ ++ $(SIM_PROFILE) \ ++ $(SIM_BSWAP) \ ++ $(SIM_ASSERT) \ ++ $(SIM_ALIGNMENT) \ ++ $(SIM_BITSIZE) \ ++ $(SIM_ENDIAN) \ ++ $(SIM_ENVIRONMENT) \ ++ $(SIM_FLOAT) \ ++ $(SIM_HW_CFLAGS) \ ++ $(SIM_HOSTENDIAN) \ ++ $(SIM_INLINE) \ ++ $(SIM_PACKAGES) \ ++ $(SIM_REGPARM) \ ++ $(SIM_RESERVED_BITS) \ ++ $(SIM_SCACHE) \ ++ $(SIM_SMP) \ ++ $(SIM_STDCALL) \ ++ $(SIM_WARN_CFLAGS) \ ++ $(SIM_WERROR_CFLAGS) \ ++ $(SIM_XOR_ENDIAN) \ ++ $(SIM_HARDWARE) \ ++ $(SIM_EXTRA_CFLAGS) \ ++ $(HDEFINES) $(TDEFINES) ++CSEARCH = -I. -I$(srcdir) -I../common -I$(srccom) \ ++ -I../../include -I$(srcroot)/include \ ++ -I../../bfd -I$(srcroot)/bfd \ ++ -I../../opcodes -I$(srcroot)/opcodes \ ++ @INCINTL@ ++ALL_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) $(CFLAGS) ++BUILD_CFLAGS = -g -O $(CSEARCH) ++ ++COMMON_DEP_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) ++ ++LIBIBERTY_LIB = ../../libiberty/libiberty.a ++BFD_LIB = ../../bfd/libbfd.a ++@PLUGINS_TRUE@LIBDL = @lt_cv_dlopen_libs@ ++OPCODES_LIB = ../../opcodes/libopcodes.a ++LIBINTL = @LIBINTL@ ++LIBINTL_DEP = @LIBINTL_DEP@ ++CONFIG_LIBS = @LIBS@ ++LIBDEPS = $(BFD_LIB) $(OPCODES_LIB) $(LIBINTL_DEP) $(LIBIBERTY_LIB) \ ++ $(SIM_EXTRA_LIBDEPS) ++EXTRA_LIBS = $(BFD_LIB) $(OPCODES_LIB) $(LIBINTL) $(LIBIBERTY_LIB) \ ++ $(CONFIG_LIBS) $(SIM_EXTRA_LIBS) $(LIBDL) ++ ++LIB_OBJS = callback.o syscall.o targ-map.o version.o $(SIM_OBJS) ++ ++RUNTESTFLAGS = ++ ++callback_h = $(srcroot)/include/gdb/callback.h ++remote_sim_h = $(srcroot)/include/gdb/remote-sim.h ++ ++all: $(SIM_EXTRA_ALL) libsim.a run$(EXEEXT) .gdbinit ++ ++libsim.a: $(LIB_OBJS) ++ rm -f libsim.a ++ $(AR) $(AR_FLAGS) libsim.a $(LIB_OBJS) ++ $(RANLIB) libsim.a ++ ++run$(EXEEXT): $(SIM_RUN_OBJS) libsim.a $(LIBDEPS) ++ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o run$(EXEEXT) \ ++ $(SIM_RUN_OBJS) libsim.a $(EXTRA_LIBS) ++ ++# FIXME: Ideally, callback.o and friends live in a library outside of ++# both the gdb and simulator source trees (e.g. devo/remote. Not ++# devo/libremote because this directory would contain more than just ++# a library). ++ ++gentmap: Makefile $(srccom)/gentmap.c targ-vals.def ++ $(CC_FOR_BUILD) $(srccom)/gentmap.c -o gentmap $(BUILD_CFLAGS) $(NL_TARGET) ++ ++targ-vals.h targ-map.c: stamp-tvals ++stamp-tvals: gentmap ++ rm -f tmp-tvals.h tmp-tmap.c ++ ./gentmap -h >tmp-tvals.h ++ $(SHELL) $(srcroot)/move-if-change tmp-tvals.h targ-vals.h ++ ./gentmap -c >tmp-tmap.c ++ $(SHELL) $(srcroot)/move-if-change tmp-tmap.c targ-map.c ++ touch stamp-tvals ++ ++version.c: Makefile $(srccom)/create-version.sh ../../bfd/version.h ../../gdb/version.in ++ $(SHELL) $(srccom)/create-version.sh $(srcsim) $(host_alias) $(target_alias) version.c ++ ++# ++# Rules for building sim-* components. Triggered by listing the corresponding ++# .o file in the list of simulator targets. ++# ++ ++sim_main_headers = \ ++ sim-main.h \ ++ $(sim-assert_h) \ ++ $(sim-base_h) \ ++ $(sim-cpu_h) \ ++ $(sim-engine_h) \ ++ $(sim-events_h) \ ++ $(sim-memopt_h) \ ++ $(sim-model_h) \ ++ $(sim-module_h) \ ++ $(sim-profile_h) \ ++ $(sim-trace_h) \ ++ $(sim-watch_h) \ ++ $(sim-basics_h) \ ++ $(SIM_EXTRA_DEPS) ++ ++# Exported version of sim_main_headers. ++SIM_MAIN_DEPS = \ ++ $(sim_main_headers) ++ ++sim-alu_h = $(srccom)/sim-alu.h ++sim-arange_h = $(srccom)/sim-arange.h \ ++ $(srccom)/sim-arange.c ++sim-assert_h = $(srccom)/sim-assert.h ++sim-base_h = $(srccom)/sim-base.h \ ++ $(sim-module_h) \ ++ $(sim-trace_h) \ ++ $(sim-core_h) \ ++ $(sim-events_h) \ ++ $(sim-profile_h) \ ++ $(sim-model_h) \ ++ $(sim-io_h) \ ++ $(sim-engine_h) \ ++ $(sim-watch_h) \ ++ $(sim-memopt_h) \ ++ $(sim-cpu_h) ++sim-basics_h = $(srccom)/sim-basics.h \ ++ ../common/cconfig.h \ ++ tconfig.h \ ++ $(sim-config_h) \ ++ $(callback_h) \ ++ $(sim-inline_h) \ ++ $(sim-types_h) \ ++ $(sim-bits_h) \ ++ $(sim-endian_h) \ ++ $(sim-signal_h) \ ++ $(sim-arange_h) \ ++ $(sim-utils_h) ++sim-bits_h = $(srccom)/sim-bits.h \ ++ $(srccom)/sim-bits.c ++sim-config_h = $(srccom)/sim-config.h ++sim-core_h = $(srccom)/sim-core.h ++sim-cpu_h = $(srccom)/sim-cpu.h ++sim-endian_h = $(srccom)/sim-endian.h \ ++ $(srccom)/sim-endian.c ++sim-engine_h = $(srccom)/sim-engine.h ++sim-events_h = $(srccom)/sim-events.h ++sim-fpu_h = $(srccom)/sim-fpu.h ++sim-hw_h = $(srccom)/sim-hw.h ++sim-inline_h = $(srccom)/sim-inline.h ++sim-io_h = $(srccom)/sim-io.h ++sim-memopt_h = $(srccom)/sim-memopt.h ++sim-model_h = $(srccom)/sim-model.h ++sim-module_h = $(srccom)/sim-module.h ++sim-n-bits_h = $(srccom)/sim-n-bits.h ++sim-n-core_h = $(srccom)/sim-n-core.h ++sim-n-endian_h = $(srccom)/sim-n-endian.h ++sim-options_h = $(srccom)/sim-options.h ++sim-profile_h = $(srccom)/sim-profile.h ++sim-signal_h = $(srccom)/sim-signal.h ++sim-trace_h = $(srccom)/sim-trace.h ++sim-types_h = $(srccom)/sim-types.h ++sim-utils_h = $(srccom)/sim-utils.h ++sim-watch_h = $(srccom)/sim-watch.h ++ ++hw-alloc_h = $(srccom)/hw-alloc.h ++hw-base_h = $(srccom)/hw-base.h ++hw-device_h = $(srccom)/hw-device.h ++hw-events_h = $(srccom)/hw-events.h ++hw-handles_h = $(srccom)/hw-handles.h ++hw-instances_h = $(srccom)/hw-instances.h ++hw-ports_h = $(srccom)/hw-ports.h ++hw-properties_h = $(srccom)/hw-properties.h ++hw-tree_h = $(srccom)/hw-tree.h ++ ++hw_main_headers = \ ++ $(srccom)/hw-main.h \ ++ $(hw-alloc_h) \ ++ $(hw-base_h) \ ++ $(hw-device_h) \ ++ $(hw-events_h) \ ++ $(hw-instances_h) \ ++ $(hw-handles_h) \ ++ $(hw-ports_h) \ ++ $(hw-properties_h) \ ++ ++# ++# 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 ++ ++all_object_files = $(LIB_OBJS) $(SIM_RUN_OBJS) ++generated_files = \ ++ $(SIM_EXTRA_DEPS) \ ++ hw-config.h \ ++ targ-map.c \ ++ targ-vals.h \ ++ version.c ++ ++# 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)) ++ ++BUILT_SRC_FROM_COMMON= \ ++ sim-inline.c ++ ++sim-inline.c: $(srccom)/sim-inline.c ++ rm -f $@ tmp-$@ ++ echo "# 1 \"$(srccom)/$@\"" > tmp-$@ ++ cat $(srccom)/$@ >> tmp-$@ ++ $(SHELL) $(srcdir)/../../move-if-change tmp-$@ $@ ++ ++# FIXME This is one very simple-minded way of generating the file hw-config.h ++hw-config.h: Makefile.in $(srccom)/Make-common.in config.status Makefile ++ rm -f tmp-hw.h ++ echo "/* generated by Makefile */" > tmp-hw.h ++ sim_hw="$(SIM_HW)"; \ ++ for hw in $$sim_hw ; do \ ++ echo "extern const struct hw_descriptor dv_$${hw}_descriptor[];" ; \ ++ done >> tmp-hw.h ++ echo "const struct hw_descriptor *hw_descriptors[] = {" >> tmp-hw.h ++ sim_hw="$(SIM_HW)"; \ ++ for hw in $$sim_hw ; do \ ++ echo " dv_$${hw}_descriptor," ; \ ++ done >> tmp-hw.h ++ echo " NULL," >> tmp-hw.h ++ echo "};" >> tmp-hw.h ++ mv tmp-hw.h hw-config.h ++ ++test-hw-events: $(srccom)/hw-events.c libsim.a ++ $(CC) $(ALL_CFLAGS) -DMAIN -o test-hw-events$(EXEEXT) \ ++ $(srccom)/hw-events.c libsim.a $(EXTRA_LIBS) ++ ++# CGEN support. ++ ++# For use in Makefile.in for cpu-specific files. ++CGEN_MAIN_CPU_DEPS = \ ++ $(SIM_MAIN_DEPS) \ ++ $(srccom)/cgen-ops.h \ ++ $(srccom)/cgen-mem.h ++ ++# Support targets. ++ ++install: install-common $(SIM_EXTRA_INSTALL) ++ ++install-common: installdirs ++ n=`echo run | sed '$(program_transform_name)'`; \ ++ $(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT) ++ n=`echo libsim.a | sed s/libsim.a/lib$(target_alias)-sim.a/`; \ ++ $(INSTALL_DATA) libsim.a $(DESTDIR)$(libdir)/$$n ; \ ++ ( cd $(DESTDIR)$(libdir) ; $(RANLIB) $$n ) ++ ++installdirs: ++ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir) ++ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir) ++ ++check: ++ cd ../testsuite && $(MAKE) check RUNTESTFLAGS="$(RUNTESTFLAGS)" ++ ++info: ++clean-info: ++install-info: ++ ++.NOEXPORT: ++MAKEOVERRIDES= ++ ++tags etags: TAGS ++ ++# Macros like EXTERN_SIM_CORE confuse tags. ++# And the sim-n-foo.h files create functions that can't be found either. ++TAGS: force ++ cd $(srcdir) && \ ++ etags --regex '/^\([[:lower:]_]+\) (/\1/' --regex '/^\/[*] TAGS: .*/' \ ++ *.[ch] ../common/*.[ch] ++ ++clean: $(SIM_EXTRA_CLEAN) ++ rm -f *.[oa] *~ core ++ rm -f run$(EXEEXT) libsim.a ++ rm -f gentmap targ-map.c targ-vals.h stamp-tvals ++ if [ ! -f Make-common.in ] ; then \ ++ rm -f $(BUILT_SRC_FROM_COMMON) ; \ ++ fi ++ rm -f tmp-mloop.hin tmp-mloop.h tmp-mloop.cin tmp-mloop.c ++ ++distclean mostlyclean maintainer-clean realclean: clean $(SIM_EXTRA_DISTCLEAN) ++ rm -f TAGS ++ rm -f Makefile config.cache config.log config.status .gdbinit ++ rm -f tconfig.h config.h stamp-h ++ rm -f targ-vals.def ++ ++.c.o: ++ $(COMPILE) $< ++ $(POSTCOMPILE) ++ ++# Dummy target to force execution of dependent targets. ++force: ++ ++Makefile: Makefile.in $(srccom)/Make-common.in config.status ++ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++config.status: configure ++ $(SHELL) ./config.status --recheck ++ ++config.h: stamp-h ; @true ++stamp-h: config.in config.status ++ CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status ++ ++.gdbinit: # config.status $(srccom)/gdbinit.in ++ CONFIG_FILES=$@:../common/gdbinit.in CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++# CGEN support ++ ++CGENDIR = @cgendir@ ++CGEN = "`if [ -f ../../guile/libguile/guile ]; then echo ../../guile/libguile/guile; else echo guile ; fi` -l $(CGENDIR)/guile.scm -s" ++CGENFLAGS = -v ++CGEN_CPU_DIR = $(CGENDIR)/cpu ++ ++# Most ports use the files here instead of cgen/cpu. ++CPU_DIR = $(srcroot)/cpu ++ ++CGEN_READ_SCM = $(CGENDIR)/sim.scm ++CGEN_ARCH_SCM = $(CGENDIR)/sim-arch.scm ++CGEN_CPU_SCM = $(CGENDIR)/sim-cpu.scm $(CGENDIR)/sim-model.scm ++CGEN_DECODE_SCM = $(CGENDIR)/sim-decode.scm ++CGEN_DESC_SCM = $(CGENDIR)/desc.scm $(CGENDIR)/desc-cpu.scm ++ ++# Various choices for which cpu specific files to generate. ++# These are passed to cgen.sh in the "extrafiles" argument. ++CGEN_CPU_EXTR = /extr/ ++CGEN_CPU_READ = /read/ ++CGEN_CPU_WRITE = /write/ ++CGEN_CPU_SEM = /sem/ ++CGEN_CPU_SEMSW = /semsw/ ++ ++CGEN_FLAGS_TO_PASS = \ ++ CGEN='$(CGEN)' \ ++ CGENFLAGS="$(CGENFLAGS)" ++ ++# We store the generated files in the source directory until we decide to ++# ship a Scheme interpreter with gdb/binutils. Maybe we never will. ++ ++cgen-arch: force ++ $(SHELL) $(srccom)/cgen.sh arch $(srcdir) \ ++ $(CGEN) $(CGENDIR) "$(CGENFLAGS)" \ ++ $(arch) "$(FLAGS)" ignored "$(isa)" $(mach) ignored \ ++ $(archfile) ignored ++ ++cgen-cpu: force ++ $(SHELL) $(srccom)/cgen.sh cpu $(srcdir) \ ++ $(CGEN) $(CGENDIR) "$(CGENFLAGS)" \ ++ $(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" \ ++ $(archfile) "$(EXTRAFILES)" ++ ++cgen-defs: force ++ $(SHELL) $(srccom)/cgen.sh defs $(srcdir) \ ++ $(CGEN) $(CGENDIR) "$(CGENFLAGS)" \ ++ $(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" \ ++ $(archfile) ignored ++ ++cgen-decode: force ++ $(SHELL) $(srccom)/cgen.sh decode $(srcdir) \ ++ $(CGEN) $(CGENDIR) "$(CGENFLAGS)" \ ++ $(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" \ ++ $(archfile) "$(EXTRAFILES)" ++ ++cgen-cpu-decode: force ++ $(SHELL) $(srccom)/cgen.sh cpu-decode $(srcdir) \ ++ $(CGEN) $(CGENDIR) "$(CGENFLAGS)" \ ++ $(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" \ ++ $(archfile) "$(EXTRAFILES)" ++ ++cgen-desc: force ++ $(SHELL) $(srccom)/cgen.sh desc $(srcdir) \ ++ $(CGEN) $(CGENDIR) "$(CGENFLAGS)" \ ++ $(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" \ ++ $(archfile) ignored $(opcfile) ++ ++## End COMMON_POST_CONFIG_FRAG diff --git a/select_toolchain.sh b/select_toolchain.sh index b4efa67..a9d26b1 100755 --- a/select_toolchain.sh +++ b/select_toolchain.sh @@ -30,10 +30,10 @@ done case "$VERSION" in "1" ) - GCC_VER=4.8.1 - BINUTILS_VER=2.23.1 + GCC_VER=4.8.2 + BINUTILS_VER=2.24 NEWLIB_VER=2.0.0 - GDB_VER=7.6.1 + GDB_VER=7.7 basedir='dkarm-eabi' package=devkitARM target=arm-none-eabi