This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: RFA: automatic dependency tracking
- From: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 7 Aug 2008 07:48:41 +0200
- Subject: Re: RFA: automatic dependency tracking
- References: <m3fxq2rilz.fsf@fleche.redhat.com>
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 <Ralf.Wildenhues@gmx.de>
* 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 <Ralf.Wildenhues@gmx.de>
* 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