]> xenbits.xensource.com Git - xen.git/commitdiff
tools: fix dependency file generation
authorJan Beulich <jbeulich@suse.com>
Thu, 23 May 2013 08:15:55 +0000 (10:15 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 23 May 2013 08:15:55 +0000 (10:15 +0200)
There is a small set of places where files in subdirectories get
compiled from the parent directory. Dependency file wise this is no
problem as long as the files use names distinct without regard to the
directories they sit in, and tools/console/ violates this (in having
two main.c files). Hence we need to avoid losing the directory name,
both to ensure the two compiler instances don't simultaneously write
to the same file (happening of which is what triggered me looking
into this) and to guarantee dependencies for all files will be seen
by make on an incremental rebuild.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
master commit: 4d788e164d6556d931bc3e0a69e36b8cf7280794
master date: 2013-05-21 10:16:30 +0200

tools/Rules.mk

index f4e84c1b7760a3bb29d2803df36ca0bfd5d2d4a7..e83f682751a29ac0b32c8166bd5a239242987992 100644 (file)
@@ -62,7 +62,7 @@ SHLIB_libxenlight  = -Wl,-rpath-link=$(XEN_XENLIGHT)
 CFLAGS += -D__XEN_TOOLS__
 
 # Get gcc to generate the dependencies for us.
-CFLAGS += -MMD -MF .$(@F).d
+CFLAGS += -MMD -MF .$(if $(filter-out .,$(@D)),$(subst /,@,$(@D))@)$(@F).d
 DEPS = .*.d
 
 ifneq ($(XEN_OS),NetBSD)