diff --git a/Makefile b/Makefile index 4d6f3664e6..1c68273f99 100644 --- a/Makefile +++ b/Makefile @@ -54,9 +54,12 @@ endif OBJS = ffmpeg.o ffserver.o SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.s) +DEPS = $(OBJS:.o=.d) all: lib $(PROG) $(VHOOK) +-include $(DEPS) + lib: $(MAKE) -C libavcodec all $(MAKE) -C libavformat all @@ -80,6 +83,10 @@ ffplay: ffmpeg$(EXE) %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< +%.d: %.c + @echo $@ \\ > $@ + $(CC) $(CFLAGS) -MM $< >> $@ + videohook: $(MAKE) -C vhook all @@ -108,7 +115,7 @@ clean: $(CLEANVHOOK) $(MAKE) -C libavcodec clean $(MAKE) -C libavformat clean $(MAKE) -C tests clean - rm -f *.o *~ .depend gmon.out TAGS ffmpeg_g$(EXE) $(PROG) + rm -f *.o *.d *~ .depend gmon.out TAGS ffmpeg_g$(EXE) $(PROG) clean-vhook: $(MAKE) -C vhook clean diff --git a/libavcodec/Makefile b/libavcodec/Makefile index d68422ed92..bf6aecda98 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -89,6 +89,7 @@ OBJS += ppc/dsputil_altivec.o ppc/mpegvideo_altivec.o ppc/idct_altivec.o \ endif SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) +DEPS := $(OBJS:.o=.d) OBJS := $(OBJS) $(ASM_OBJS) LIB= $(LIBPREF)avcodec$(LIBSUF) @@ -116,6 +117,12 @@ dsputil.o: dsputil.c dsputil.h %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< +%.d: %.c + @echo $@ \\ > $@ + $(CC) $(CFLAGS) -MM $< >> $@ + +-include $(DEPS) + %.o: %.S $(CC) $(CFLAGS) -c -o $@ $< @@ -137,7 +144,7 @@ depend: $(CC) -MM $(CFLAGS) $(SRCS) 1>.depend clean: - rm -f *.o *~ .depend $(LIB) $(SLIB) *.so i386/*.o i386/*~ \ + rm -f *.o *.d *~ .depend $(LIB) $(SLIB) *.so i386/*.o i386/*~ \ armv4l/*.o armv4l/*~ \ mlib/*.o mlib/*~ \ alpha/*.o alpha/*~ \ diff --git a/libavformat/Makefile b/libavformat/Makefile index 9ff067c531..0ecdcc2cc7 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -50,6 +50,8 @@ endif LIB= $(LIBPREF)avformat$(LIBSUF) +DEPS= $(OBJS:.o=.d) + all: $(LIB) $(LIB): $(OBJS) @@ -70,9 +72,15 @@ installlib: all %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< +%.d: %.c + @echo $@ \\ > $@ + $(CC) $(CFLAGS) -MM $< >> $@ + +-include $(DEPS) + # BeOS: remove -Wall to get rid of all the "multibyte constant" warnings %.o: %.cpp g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $< clean: - rm -f *.o *~ *.a $(LIB) + rm -f *.o *.d *~ *.a $(LIB) diff --git a/vhook/Makefile b/vhook/Makefile index 898dbb4b6b..5e9023a6ef 100644 --- a/vhook/Makefile +++ b/vhook/Makefile @@ -15,18 +15,25 @@ endif all: $(HOOKS) +DEPS= $(HOOKS:.so=.d) + install: install -s -m 755 $(HOOKS) $(INSTDIR) imlib2.so: imlib2.o $(CC) -g -o $@ $(SHFLAGS) $< -lImlib2 - rm $< %.so: %.o $(CC) -g -o $@ $(SHFLAGS) $< +%.d: %.c + @echo $@ \\ > $@ + $(CC) $(CFLAGS) -MM $< >> $@ + +-include $(DEPS) + %.html: %.texi texi2html -monolithic -number $< clean: - rm -f *.o *.so *~ + rm -f *.o *.d *.so *~