From 1896ac4abfe2528e3b22a988acf389a7652c3ef6 Mon Sep 17 00:00:00 2001 From: Christophe Gisquet Date: Thu, 8 Oct 2015 12:30:51 +0200 Subject: [PATCH] build system: fix dependency generation When trying to build the binary dct-test under MSYS2/Win64, the makefile rule does not have the SUBDIR in the target for its object file. Consequently, modifications to various include files (e.g. C ones) do not trigger a recompilation. When tracing the dependency generating, the dependency generation has this strange content (linebreak inserted): sed -e "/^#.*/d" -e "s,^[[:space:]]*dct\\.o,libavcodec/dct.o," \ > libavcodec/dct-test.d For some reason, the $(*F) has weird content. It looks simpler to use $(@F) instead of $(*F)\\.o, although this was tested on one single version of make. Signed-off-by: Michael Niedermayer --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 4802092ac0..dba7d4678f 100755 --- a/configure +++ b/configure @@ -2984,7 +2984,7 @@ target_path='$(CURDIR)' # since the object filename is not given with the -MM flag, the compiler # is only able to print the basename, and we must add the path ourselves -DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>/dev/null | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)' +DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>/dev/null | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(@F),$(@D)/$(@F)," > $(@:.o=.d)' DEPFLAGS='-MM' # find source path