From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24578 invoked by alias); 7 Aug 2008 05:50:29 -0000 Received: (qmail 24263 invoked by uid 22791); 7 Aug 2008 05:50:23 -0000 X-Spam-Check-By: sourceware.org Received: from merkur.ins.uni-bonn.de (HELO merkur.ins.uni-bonn.de) (131.220.223.13) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 07 Aug 2008 05:49:15 +0000 Received: from localhost.localdomain (xdsl-87-78-134-157.netcologne.de [87.78.134.157]) by merkur.ins.uni-bonn.de (Postfix) with ESMTP id D6BDB40000E12; Thu, 7 Aug 2008 07:49:10 +0200 (CEST) Received: from ralf by localhost.localdomain with local (Exim 4.63) (envelope-from ) id 1KQyMb-0006wG-T4; Thu, 07 Aug 2008 07:48:42 +0200 Date: Thu, 07 Aug 2008 05:50:00 -0000 From: Ralf Wildenhues To: Tom Tromey Cc: gdb-patches@sources.redhat.com Subject: Re: RFA: automatic dependency tracking Message-ID: <20080807054840.GA26651@ins.uni-bonn.de> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-08/txt/msg00145.txt.bz2 Hello, this is a review of a slightly more updated patch Tom sent me: * Tom Tromey wrote on Tue, Jul 22, 2008 at 12:13:28AM CEST: > This patch implements automatic dependency tracking for gdb. > For the non-GNU make case, this patch yields somewhat worse results -- > dependencies are not tracked. [ChangeLog] > (cli-decode.o, cli-dump.o, cli-interp.o, cli-logging.o, > cli-script.o, cli-setshow.o, cli-utils.o): Likewise. Missing cli-cmds.o. > --- Makefile.in 28 Jul 2008 17:53:52 -0000 1.1041 > +++ Makefile.in 31 Jul 2008 14:41:27 -0000 > @@ -83,6 +83,18 @@ > # 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 the GNUMakefile if GNU make is s/by the GNUMakefile/by GNU make-specific code below/ FWIW the file, if used, is called GNUmakefile (lower-case 'm'); I've been bitten by that before, caused much head-scratching. > +# used. The overrides implement dependency tracking. > +COMPILE.pre = $(CC) > +COMPILE.post = -c -o $@ > +COMPILE = $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post) > +POSTCOMPILE = OK, so I gather that non-GNU make users won't have correct header dependencies any more (I saw you stated that earlier). BSD make will complain about a rule command $(POSTCOMPILE) when the macro expands to empty; let's set it to '@true' instead. > @@ -1113,10 +827,13 @@ > > DISTSTUFF = $(YYFILES) > > -# Prevent Sun make from putting in the machine type. Setting > -# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1. > + > +# All generated files which can be included by another file. > +generated_files = config.h observer.h observer.inc ada-lex.c > + > hpux-thread.o: $(srcdir)/hpux-thread.c > - $(CC) -c $(INTERNAL_CFLAGS) -I$(srcdir)/osf-share \ > - -I$(srcdir)/osf-share/HP800 -I/usr/include/dce \ > - $(srcdir)/hpux-thread.c > + $(COMPILE) -I$(srcdir)/osf-share -I$(srcdir)/osf-share/HP800 \ > + -I/usr/include/dce $< BSD make barfs over $< outside of inference rules. > + $(POSTCOMPILE) > # 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. Have you thought of simply compiling the object file in the sub directory? That's not a bad option; and the makefile has already been assuming that the compiler understands '-c -o' anyway. Likewise gdbtk/, mi/, signals/, tui/ > -cli-cmds.o: $(srcdir)/cli/cli-cmds.c $(defs_h) $(readline_h) \ > - $(readline_tilde_h) $(completer_h) $(target_h) $(gdb_wait_h) \ > - $(gdb_regex_h) $(gdb_string_h) $(gdb_vfork_h) $(linespec_h) \ > - $(expression_h) $(frame_h) $(value_h) $(language_h) $(filenames_h) \ > - $(objfiles_h) $(source_h) $(disasm_h) $(ui_out_h) $(top_h) \ > - $(cli_decode_h) $(cli_script_h) $(cli_setshow_h) $(cli_cmds_h) \ > - $(tui_h) > - $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-cmds.c [...] > +cli-cmds.o: $(srcdir)/cli/cli-cmds.c > + $(COMPILE) $< > + $(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 = This POSTCOMPILE can remain empty I suppose, unless an older GNU make dislikes that too. > +@GMAKE_TRUE@endif > + > +# A list of all the objects we might care about in this build, for > +# dependency tracking. > +all_object_files = gdb.o tui-main.o $(LIBGDB_OBS) gdbtk-main.o \ > + test-cp-name-parser.o > + > +@GMAKE_TRUE@$(all_object_files): | $(generated_files) This order-only dependency requires make 3.80 or newer. I've looked whether it could be eliminated: the problem is only header files which do not exist before any compilation. - config.h exists after config.status has run, - observer.h observer.inc ada-lex.c don't exist. The last three could be dealt with using explicit dependencies whereever they are included, or triggering their build at config.status time (probably not nice to do this for ada-lex.c). Not sure if you want to change this, but I guess the documentation should otherwise be updated to reflect that GNU make < 3.80 can't be used. (Or you disable GMAKE_TRUE for that...) > +# Dependencies. > +@GMAKE_TRUE@-include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files)) > + > +@GMAKE_FALSE@$(all_object_files) : $(generated_files) > > ### end of the gdb Makefile.in. > --- acinclude.m4 26 Jun 2008 15:51:27 -0000 1.20 > +++ acinclude.m4 31 Jul 2008 14:41:28 -0000 > @@ -20,6 +20,9 @@ > dnl For ACX_PKGVERSION and ACX_BUGURL. > sinclude(../config/acx.m4) > > +dnl For dependency tracking macros. > +sinclude([../config/depstand.m4]) Why sinclude? Shouldn't aclocal fail if the file cannot be included? (Just curious, really; I see this is done with other files, too.) > --- configure.ac 27 Jul 2008 21:18:50 -0000 1.76 > +++ configure.ac 31 Jul 2008 14:41:28 -0000 > @@ -35,6 +35,21 @@ > AC_CONFIG_AUX_DIR(..) > AC_CANONICAL_SYSTEM > > +# Dependency checking. > +ZW_CREATE_DEPDIR > +ZW_PROG_COMPILER_DEPENDENCIES([CC]) > + > +# Check for the 'make' the user wants to use. > +AC_CHECK_PROGS(MAKE, make) > +MAKE_IS_GNU= > +case "`$MAKE --version 2>&1 | sed 1q`" in > + *GNU*) > + MAKE_IS_GNU=yes > + ;; > +esac > +AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes) > +AC_PROG_MAKE_SET > + > dnl List of object files and targets accumulated by configure. > > CONFIG_OBS= While trying to build with BSD make, I found a couple more issues: $^ is not portable (used in gdbserver/Makefile.in). Also, relying on a hash before backslash-newline to also comment out the following line is not portable either (but you can put a hash at the start of the next); this happens with MAINTAINER_MODE_TRUE in the copying.c rule. Adding the patch below on top of yours should fix all these issues. Hope that helps. I started building the archer tree on AIX, but seeing other, independent issues that need help first, am stopping now. Cheers, Ralf gdb/ChangeLog: 2008-08-07 Ralf Wildenhues * Makefile.in (POSTCOMPILE): Set to '@true' for non-GNU make. ($(srcdir)/copying.c): Avoid backslash-newline after comment sign (@MAINTAINER_MODE_TRUE@). (hpux-thread.o, main.o, monitor.o, printcmd.o, procfs.o): Do not use $< in explicit rule. (cli-cmds.o, cli-decode.o, cli-dump.o, cli-interp.o, cli-logging.o, cli-script.o, cli-setshow.o, cli-utils.o): Likewise. (gdbtk.o, gdbtk-bp.o, gdbtk-cmds.o, gdbtk-hooks.o, gdbtk-interp.o, gdbtk-main.o, gdbtk-register.o, gdbtk-stack.o, gdbtk-varobj.o, gdbtk-wrapper.o): Likewise. (mi-cmd-break.o, mi-cmd-disas.o, mi-cmd-env.o, mi-cmd-file.o, mi-cmds.o, mi-cmd-stack.o, mi-cmd-target.o, mi-cmd-var.o, mi-console.o, mi-getopt.o, mi-interp.o, mi-main.o, mi-out.o, mi-parse.o, mi-symbol-cmds.o, mi-common.o, signals.o, tui.o, 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-main.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): Likewise. gdb/gdbserver/ChangeLog: 2008-08-07 Ralf Wildenhues * gdb/gdbserver/Makefile.in (GDBREPLAY_OBS): New variable. (gdbreplay$(EXEEXT)): Use it to avoid unportable $^. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index c3351a9..4aa29f6 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -93,7 +93,7 @@ depcomp = $(SHELL) $(srcdir)/../depcomp COMPILE.pre = $(CC) COMPILE.post = -c -o $@ COMPILE = $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post) -POSTCOMPILE = +POSTCOMPILE = @true # Directory containing source files. srcdir = @srcdir@ @@ -1199,8 +1199,7 @@ 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 +$(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 @@ -1333,12 +1332,12 @@ ALLDEPFILES = \ hpux-thread.o: $(srcdir)/hpux-thread.c $(COMPILE) -I$(srcdir)/osf-share -I$(srcdir)/osf-share/HP800 \ - -I/usr/include/dce $< + -I/usr/include/dce $(srcdir)/hpux-thread.c $(POSTCOMPILE) # main.o needs an explicit build rule to get TARGET_SYSTEM_ROOT and BINDIR. main.o: $(srcdir)/main.c - $(COMPILE) $(TARGET_SYSTEM_ROOT_DEFINE) -DBINDIR=\"$(bindir)\" $< + $(COMPILE) $(TARGET_SYSTEM_ROOT_DEFINE) -DBINDIR=\"$(bindir)\" $(srcdir)/main.c $(POSTCOMPILE) # FIXME: cagney/2003-08-10: "monitor.c" gets -Wformat-nonliteral @@ -1348,20 +1347,20 @@ main.o: $(srcdir)/main.c # 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_WARN_CFLAGS) $(COMPILE.post) $< + $(COMPILE.pre) $(INTERNAL_WARN_CFLAGS) $(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_BASE) $(GDB_WARN_CFLAGS_NO_FORMAT) \ - $(GDB_WERROR_CFLAGS) $(COMPILE.post) $< + $(GDB_WERROR_CFLAGS) $(COMPILE.post) $(srcdir)/printcmd.c $(POSTCOMPILE) # FIXME: Procfs.o gets -Wformat errors because things like pid_t don't # match output format strings. procfs.o: $(srcdir)/procfs.c - $(COMPILE.pre) $(INTERNAL_WARN_CFLAGS) $(COMPILE.post) $< + $(COMPILE.pre) $(INTERNAL_WARN_CFLAGS) $(COMPILE.post) $(srcdir)/procfs.c $(POSTCOMPILE) # Message files. Based on code in gcc/Makefile.in. @@ -1510,35 +1509,35 @@ stamp-xml: $(srcdir)/features/feature_to_c.sh Makefile $(XMLFILES) # or try to compile the object file into the sub-directory. cli-cmds.o: $(srcdir)/cli/cli-cmds.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-cmds.c $(POSTCOMPILE) cli-decode.o: $(srcdir)/cli/cli-decode.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-decode.c $(POSTCOMPILE) cli-dump.o: $(srcdir)/cli/cli-dump.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-dump.c $(POSTCOMPILE) cli-interp.o: $(srcdir)/cli/cli-interp.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-interp.c $(POSTCOMPILE) cli-logging.o: $(srcdir)/cli/cli-logging.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-logging.c $(POSTCOMPILE) cli-script.o: $(srcdir)/cli/cli-script.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-script.c $(POSTCOMPILE) cli-setshow.o: $(srcdir)/cli/cli-setshow.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-setshow.c $(POSTCOMPILE) cli-utils.o: $(srcdir)/cli/cli-utils.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/cli/cli-utils.c $(POSTCOMPILE) @@ -1612,43 +1611,43 @@ all_gdbtk_cflags = $(IDE_CFLAGS) $(ITCL_CFLAGS) \ -DSRC_DIR=\"$(GDBTK_SRC_DIR)\" gdbtk.o: $(srcdir)/gdbtk/generic/gdbtk.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk.c $(POSTCOMPILE) gdbtk-bp.o: $(srcdir)/gdbtk/generic/gdbtk-bp.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-bp.c $(POSTCOMPILE) gdbtk-cmds.o: $(srcdir)/gdbtk/generic/gdbtk-cmds.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-cmds.c $(POSTCOMPILE) gdbtk-hooks.o: $(srcdir)/gdbtk/generic/gdbtk-hooks.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-hooks.c $(POSTCOMPILE) gdbtk-interp.o: $(srcdir)/gdbtk/generic/gdbtk-interp.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-interp.c $(POSTCOMPILE) gdbtk-main.o: $(srcdir)/gdbtk/generic/gdbtk-main.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-main.c $(POSTCOMPILE) gdbtk-register.o: $(srcdir)/gdbtk/generic/gdbtk-register.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-register.c $(POSTCOMPILE) gdbtk-stack.o: $(srcdir)/gdbtk/generic/gdbtk-stack.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-stack.c $(POSTCOMPILE) gdbtk-varobj.o: $(srcdir)/gdbtk/generic/gdbtk-varobj.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-varobj.c $(POSTCOMPILE) gdbtk-wrapper.o: $(srcdir)/gdbtk/generic/gdbtk-wrapper.c - $(COMPILE) $(all_gdbtk_cflags) $< + $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-wrapper.c $(POSTCOMPILE) @@ -1659,67 +1658,67 @@ gdbtk-wrapper.o: $(srcdir)/gdbtk/generic/gdbtk-wrapper.c # or try to compile the object file into the sub-directory. mi-cmd-break.o: $(srcdir)/mi/mi-cmd-break.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmd-break.c $(POSTCOMPILE) mi-cmd-disas.o: $(srcdir)/mi/mi-cmd-disas.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmd-disas.c $(POSTCOMPILE) mi-cmd-env.o: $(srcdir)/mi/mi-cmd-env.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmd-env.c $(POSTCOMPILE) mi-cmd-file.o: $(srcdir)/mi/mi-cmd-file.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmd-file.c $(POSTCOMPILE) mi-cmds.o: $(srcdir)/mi/mi-cmds.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmds.c $(POSTCOMPILE) mi-cmd-stack.o: $(srcdir)/mi/mi-cmd-stack.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmd-stack.c $(POSTCOMPILE) mi-cmd-target.o: $(srcdir)/mi/mi-cmd-target.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmd-target.c $(POSTCOMPILE) mi-cmd-var.o: $(srcdir)/mi/mi-cmd-var.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-cmd-var.c $(POSTCOMPILE) mi-console.o: $(srcdir)/mi/mi-console.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-console.c $(POSTCOMPILE) mi-getopt.o: $(srcdir)/mi/mi-getopt.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-getopt.c $(POSTCOMPILE) mi-interp.o: $(srcdir)/mi/mi-interp.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-interp.c $(POSTCOMPILE) mi-main.o: $(srcdir)/mi/mi-main.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-main.c $(POSTCOMPILE) mi-out.o: $(srcdir)/mi/mi-out.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-out.c $(POSTCOMPILE) mi-parse.o: $(srcdir)/mi/mi-parse.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-parse.c $(POSTCOMPILE) mi-symbol-cmds.o: $(srcdir)/mi/mi-symbol-cmds.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-symbol-cmds.c $(POSTCOMPILE) mi-common.o: $(srcdir)/mi/mi-common.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/mi/mi-common.c $(POSTCOMPILE) # @@ -1729,7 +1728,7 @@ mi-common.o: $(srcdir)/mi/mi-common.c # or try to compile the object file into the sub-directory. signals.o: $(srcdir)/signals/signals.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/signals/signals.c $(POSTCOMPILE) # @@ -1739,75 +1738,75 @@ signals.o: $(srcdir)/signals/signals.c # or try to compile the object file into the sub-directory. tui.o: $(srcdir)/tui/tui.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui.c $(POSTCOMPILE) tui-command.o: $(srcdir)/tui/tui-command.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-command.c $(POSTCOMPILE) tui-data.o: $(srcdir)/tui/tui-data.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-data.c $(POSTCOMPILE) tui-disasm.o: $(srcdir)/tui/tui-disasm.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-disasm.c $(POSTCOMPILE) tui-file.o: $(srcdir)/tui/tui-file.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-file.c $(POSTCOMPILE) tui-hooks.o: $(srcdir)/tui/tui-hooks.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-hooks.c $(POSTCOMPILE) tui-interp.o: $(srcdir)/tui/tui-interp.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-interp.c $(POSTCOMPILE) tui-io.o: $(srcdir)/tui/tui-io.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-io.c $(POSTCOMPILE) tui-layout.o: $(srcdir)/tui/tui-layout.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-layout.c $(POSTCOMPILE) tui-main.o: $(srcdir)/tui/tui-main.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-main.c $(POSTCOMPILE) tui-out.o: $(srcdir)/tui/tui-out.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-out.c $(POSTCOMPILE) tui-regs.o: $(srcdir)/tui/tui-regs.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-regs.c $(POSTCOMPILE) tui-source.o: $(srcdir)/tui/tui-source.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-source.c $(POSTCOMPILE) tui-stack.o: $(srcdir)/tui/tui-stack.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-stack.c $(POSTCOMPILE) tui-win.o: $(srcdir)/tui/tui-win.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-win.c $(POSTCOMPILE) tui-windata.o: $(srcdir)/tui/tui-windata.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-windata.c $(POSTCOMPILE) tui-wingeneral.o: $(srcdir)/tui/tui-wingeneral.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-wingeneral.c $(POSTCOMPILE) tui-winsource.o: $(srcdir)/tui/tui-winsource.c - $(COMPILE) $< + $(COMPILE) $(srcdir)/tui/tui-winsource.c $(POSTCOMPILE) diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 7034361..9a197af 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -146,6 +146,7 @@ OBS = inferiors.o regcache.o remote-utils.o server.o signals.o target.o \ mem-break.o hostio.o \ $(XML_BUILTIN) \ $(DEPFILES) $(LIBOBJS) +GDBREPLAY_OBS = gdbreplay.o version.o GDBSERVER_LIBS = @GDBSERVER_LIBS@ XM_CLIBS = @LIBS@ @@ -194,9 +195,9 @@ gdbserver$(EXEEXT): $(OBS) ${ADD_DEPS} ${CDEPS} ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbserver$(EXEEXT) $(OBS) \ $(GDBSERVER_LIBS) $(XM_CLIBS) -gdbreplay$(EXEEXT): gdbreplay.o version.o +gdbreplay$(EXEEXT): $(GDBREPLAY_OBS) rm -f gdbreplay$(EXEEXT) - ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbreplay$(EXEEXT) $^ \ + ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbreplay$(EXEEXT) $(GDBREPLAY_OBS) \ $(XM_CLIBS) # Put the proper machine-specific files first, so M-. on a machine