Work around gcc stupidity: With -MM gcc outputs just the basename of files as
authorDiego Biurrun <diego@biurrun.de>
Sun, 9 Mar 2008 18:29:41 +0000 (18:29 +0000)
committerDiego Biurrun <diego@biurrun.de>
Sun, 9 Mar 2008 18:29:41 +0000 (18:29 +0000)
target name. This breaks when compiling targets in subdirectories, so prepend
the subdirectory name to the target name.

Originally committed as revision 12398 to svn://svn.ffmpeg.org/ffmpeg/trunk

common.mak

index 780f61e..46cac9f 100644 (file)
@@ -61,8 +61,9 @@ $(SLIBNAME_WITH_MAJOR): $(OBJS)
 ALLHEADERS = $(subst $(LIBSRC)/,,$(wildcard $(LIBSRC)/*.h))
 checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho))
 
+# gcc stupidly only outputs the basename of targets with -MM
 depend dep: $(SRCS)
-       $(CC) -MM $(CFLAGS) $^ 1>.depend
+       $(CC) -MM $(CFLAGS) $^ | sed 's,[0-9a-z._-]*: \([a-z0-9]*/\).*,\1&,' 1>.depend
 
 clean::
        rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \