Originally committed as revision 12775 to svn://svn.ffmpeg.org/ffmpeg/trunk
Måns Rullgård authored on 2008/04/10 05:48:17... | ... |
@@ -14,7 +14,7 @@ PROGS-$(CONFIG_FFSERVER) += ffserver |
14 | 14 |
|
15 | 15 |
PROGS = $(addsuffix $(EXESUF), $(PROGS-yes)) |
16 | 16 |
PROGS_G = $(addsuffix _g$(EXESUF), $(PROGS-yes)) |
17 |
-PROGS_SRCS = $(addsuffix .c, $(PROGS-yes)) cmdutils.c |
|
17 |
+OBJS = $(addsuffix .o, $(PROGS-yes)) cmdutils.o |
|
18 | 18 |
MANPAGES = $(addprefix doc/, $(addsuffix .1, $(PROGS-yes))) |
19 | 19 |
|
20 | 20 |
BASENAMES = ffmpeg ffplay ffserver |
... | ... |
@@ -52,8 +52,6 @@ $(PROGS): %$(EXESUF): %_g$(EXESUF) |
52 | 52 |
cp -p $< $@ |
53 | 53 |
$(STRIP) $@ |
54 | 54 |
|
55 |
-.depend: version.h $(PROGS_SRCS) |
|
56 |
- |
|
57 | 55 |
SUBDIR_VARS := OBJS ASM_OBJS CPP_OBJS FFLIBS CLEANFILES |
58 | 56 |
|
59 | 57 |
define RESET |
... | ... |
@@ -89,9 +87,7 @@ output_example$(EXESUF): output_example.o $(DEP_LIBS) |
89 | 89 |
tools/%$(EXESUF): tools/%.c |
90 | 90 |
$(CC) $(CFLAGS) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS) |
91 | 91 |
|
92 |
-ffplay.o .depend: CFLAGS += $(SDL_CFLAGS) |
|
93 |
- |
|
94 |
-ffmpeg.o ffplay.o ffserver.o: version.h |
|
92 |
+ffplay.o: CFLAGS += $(SDL_CFLAGS) |
|
95 | 93 |
|
96 | 94 |
VHOOKCFLAGS += $(filter-out -mdynamic-no-pic,$(CFLAGS)) |
97 | 95 |
|
... | ... |
@@ -113,7 +109,7 @@ LIBS_drawtext$(SLIBSUF) = `freetype-config --libs` |
113 | 113 |
|
114 | 114 |
VHOOKCFLAGS += $(VHOOKCFLAGS-yes) |
115 | 115 |
|
116 |
-vhook/%.o: CFLAGS:=$(VHOOKCFLAGS) |
|
116 |
+vhook/%.o vhook/%.d: CFLAGS:=$(VHOOKCFLAGS) |
|
117 | 117 |
|
118 | 118 |
# vhooks compile fine without libav*, but need them nonetheless. |
119 | 119 |
videohook: $(DEP_LIBS) $(HOOKS) |
... | ... |
@@ -121,10 +117,8 @@ videohook: $(DEP_LIBS) $(HOOKS) |
121 | 121 |
vhook/%$(SLIBSUF): vhook/%.o |
122 | 122 |
$(CC) $(LDFLAGS) -o $@ $(VHOOKSHFLAGS) $< $(VHOOKLIBS) $(LIBS_$(@F)) |
123 | 123 |
|
124 |
-.vhookdep: $(ALLHOOKS_SRCS) version.h |
|
125 |
- $(VHOOK_DEPEND_CMD) > $@ |
|
126 |
- |
|
127 |
-depend dep: .vhookdep |
|
124 |
+VHOOK_DEPS = $(HOOKS:$(SLIBSUF)=.d) |
|
125 |
+depend dep: $(VHOOK_DEPS) |
|
128 | 126 |
|
129 | 127 |
documentation: $(addprefix doc/, ffmpeg-doc.html faq.html ffserver-doc.html \ |
130 | 128 |
ffplay-doc.html general.html hooks.html \ |
... | ... |
@@ -176,7 +170,7 @@ clean:: |
176 | 176 |
rm -f vhook/*.o vhook/*~ vhook/*.so vhook/*.dylib vhook/*.dll |
177 | 177 |
|
178 | 178 |
distclean:: |
179 |
- rm -f .vhookdep version.h config.* *.pc |
|
179 |
+ rm -f version.h config.* *.pc vhook/*.d |
|
180 | 180 |
|
181 | 181 |
# regression tests |
182 | 182 |
|
... | ... |
@@ -352,4 +346,4 @@ tests/seek_test$(EXESUF): tests/seek_test.c $(DEP_LIBS) |
352 | 352 |
.PHONY: codectest libavtest seektest test-server fulltest test |
353 | 353 |
.PHONY: $(CODEC_TESTS) $(LAVF_TESTS) regtest-ref swscale-error |
354 | 354 |
|
355 |
--include .vhookdep |
|
355 |
+-include $(VHOOK_DEPS) |
... | ... |
@@ -24,6 +24,15 @@ CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ |
24 | 24 |
%.ho: %.h |
25 | 25 |
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $< |
26 | 26 |
|
27 |
+%.d: %.c |
|
28 |
+ $(DEPEND_CMD) > $@ |
|
29 |
+ |
|
30 |
+%.d: %.S |
|
31 |
+ $(DEPEND_CMD) > $@ |
|
32 |
+ |
|
33 |
+%.d: %.cpp |
|
34 |
+ $(DEPEND_CMD) > $@ |
|
35 |
+ |
|
27 | 36 |
install: install-libs install-headers |
28 | 37 |
|
29 | 38 |
uninstall: uninstall-libs uninstall-headers |
... | ... |
@@ -51,7 +60,8 @@ TESTS := $(addprefix $(SUBDIR),$(TESTS)) |
51 | 51 |
ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h)) |
52 | 52 |
checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) |
53 | 53 |
|
54 |
-depend dep: $(SUBDIR).depend |
|
54 |
+DEPS := $(OBJS:.o=.d) |
|
55 |
+depend dep: $(DEPS) |
|
55 | 56 |
|
56 | 57 |
CLEANFILES += *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ |
57 | 58 |
*.def *.dll.a *.exp *.ho *.map |
... | ... |
@@ -63,18 +73,15 @@ $(SUBDIR)%: $(SUBDIR)%.o $(LIBNAME) |
63 | 63 |
$(SUBDIR)%-test$(EXESUF): $(SUBDIR)%.c $(LIBNAME) |
64 | 64 |
$(CC) $(CFLAGS) $(FFLDFLAGS) -DTEST -o $$@ $$^ $(FFEXTRALIBS) |
65 | 65 |
|
66 |
-$(SUBDIR).depend: $(SRCS) |
|
67 |
- $(DEPEND_CMD) > $$@ |
|
68 |
- |
|
69 | 66 |
clean:: |
70 | 67 |
rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES)) |
71 | 68 |
|
72 | 69 |
distclean:: clean |
73 |
- rm -f $(SUBDIR).depend |
|
70 |
+ rm -f $(DEPS) |
|
74 | 71 |
endef |
75 | 72 |
|
76 | 73 |
$(eval $(RULES)) |
77 | 74 |
|
78 | 75 |
tests: $(TESTS) |
79 | 76 |
|
80 |
--include $(SUBDIR).depend |
|
77 |
+-include $(DEPS) |
... | ... |
@@ -940,8 +940,7 @@ SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' |
940 | 940 |
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' |
941 | 941 |
|
942 | 942 |
# gcc stupidly only outputs the basename of targets with -MM |
943 |
-DEPEND_CMD='$(CC) -MM $(CFLAGS) $(filter-out %.h,$$^) | sed "s,[0-9a-z._-]*: \($(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,;s,^.*:,\$$$$(SUBDIR)&,"' |
|
944 |
-VHOOK_DEPEND_CMD='$(CC) -MM $(VHOOKCFLAGS) $(filter-out %.h,$^) | sed "s,^\([a-z]\),vhook/\\1,"' |
|
943 |
+DEPEND_CMD='$(CC) $(CFLAGS) -MM -MG $< | sed "1s,^,$(@D)/,"' |
|
945 | 944 |
|
946 | 945 |
# find source path |
947 | 946 |
source_path="`dirname \"$0\"`" |
... | ... |
@@ -1983,7 +1982,6 @@ echo "SLIBPREF=$SLIBPREF" >> config.mak |
1983 | 1983 |
echo "SLIBSUF=$SLIBSUF" >> config.mak |
1984 | 1984 |
echo "EXESUF=$EXESUF" >> config.mak |
1985 | 1985 |
echo "DEPEND_CMD=$DEPEND_CMD" >> config.mak |
1986 |
-echo "VHOOK_DEPEND_CMD=$VHOOK_DEPEND_CMD" >> config.mak |
|
1987 | 1986 |
|
1988 | 1987 |
if enabled bigendian; then |
1989 | 1988 |
echo "WORDS_BIGENDIAN=yes" >> config.mak |