From c1c3933a98133bebbcaf1e0a0883ced9d9bcda1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= <mans@mansr.com>
Date: Sat, 8 Aug 2009 18:27:22 +0000
Subject: [PATCH] Generate dependencies when object files are built

Originally committed as revision 19608 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 common.mak | 15 +++------------
 configure  |  2 +-
 2 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/common.mak b/common.mak
index b1277e1ba0..4f7abe79dd 100644
--- a/common.mak
+++ b/common.mak
@@ -21,25 +21,16 @@ ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale
 CPPFLAGS := -DHAVE_AV_CONFIG_H -I$(BUILD_ROOT_REL) -I$(SRC_PATH) $(CPPFLAGS)
 
 %.o: %.c
+	$(DEPEND_CMD)
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(LIBOBJFLAGS) -c $(CC_O) $<
 
 %.o: %.S
+	$(DEPEND_CMD)
 	$(AS) $(CPPFLAGS) $(ASFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
 
 %.ho: %.h
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $<
 
-%.d: %.c
-	$(DEPEND_CMD)
-
-%.d: %.S
-	$(DEPEND_CMD)
-
-%.d: %.cpp
-	$(DEPEND_CMD)
-
-%.o: %.d
-
 %$(EXESUF): %.c
 
 SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
@@ -83,4 +74,4 @@ CLEANSUFFIXES     = *.o *~ *.ho *.map
 DISTCLEANSUFFIXES = *.d *.pc
 LIBSUFFIXES       = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp
 
--include $(DEPS)
+-include $(wildcard $(DEPS))
diff --git a/configure b/configure
index 5674b4e3ba..3e92424f35 100755
--- a/configure
+++ b/configure
@@ -1309,7 +1309,7 @@ target_path='.'
 
 # gcc stupidly only outputs the basename of targets with -MM, but we need the
 # full relative path for objects in subdirectories for non-recursive Make.
-DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $@'
+DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)'
 DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -MM'
 
 # find source path