Fix dependency tracking for objects in subdirectories

On irc, Pedro pointed out that dependencies for objects in
subdirectories didn't seem to be working.

The bug was that the "-include" for .deps files was using the wrong file
name for subdirectory objects; e.g., for cli/cli-decode.o it was trying
to open .deps/cli/cli-decode.o, whereas the correct file is
cli/.deps/cli-decode.o.

This patch changes how the dep files are found.  Tested by touching a
source file and rebuilding cli/cli-decode.o.

2017-12-01  Tom Tromey  <tom@tromey.com>

	* Makefile.in (all_deps_files): New variable.
	Include .Po files using all_deps_files.
This commit is contained in:
Tom Tromey 2017-11-30 11:49:27 -07:00
parent 2ee0c9b3ee
commit d0df06af9b
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-12-01 Tom Tromey <tom@tromey.com>
* Makefile.in (all_deps_files): New variable.
Include .Po files using all_deps_files.
2017-12-01 Joel Brobecker <brobecker@adacore.com>
* MAINTAINERS: Update list of maintainers, moving those who

View File

@ -2644,6 +2644,10 @@ endif
all_object_files = gdb.o $(LIBGDB_OBS) gdbtk-main.o \
test-cp-name-parser.o
# All the .deps files to include.
all_deps_files = $(foreach dep,$(patsubst %.o,%.Po,$(all_object_files)),\
$(dir $(dep))/$(DEPDIR)/$(notdir $(dep)))
# 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.
@ -2654,7 +2658,7 @@ $(all_object_files) : $(generated_files)
endif
# Dependencies.
-include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files))
-include $(all_deps_files)
# Disable implicit make rules.
include $(srcdir)/disable-implicit-rules.mk