[FFmpeg-cvslog] build: rework rules for things in the tools dir

Mans Rullgard git at videolan.org
Mon Jul 11 05:52:41 CEST 2011


ffmpeg | branch: master | Mans Rullgard <mans at mansr.com> | Sun Jul 10 20:26:25 2011 +0100| [28e1c97916b026c8785f54ec591718379b251bbb] | committer: Mans Rullgard

build: rework rules for things in the tools dir

Declaring tools associated with each library in their respective
makefiles allows these tools to easily depend on the correct
prerequisites and link against the libs they need.

Signed-off-by: Mans Rullgard <mans at mansr.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=28e1c97916b026c8785f54ec591718379b251bbb
---

 Makefile             |   21 ++++++++-------------
 common.mak           |    6 ++++++
 libavfilter/Makefile |    2 ++
 libavformat/Makefile |    1 +
 subdir.mak           |    4 ++--
 tests/Makefile       |    3 ---
 6 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/Makefile b/Makefile
index 9f7b436..720936a 100644
--- a/Makefile
+++ b/Makefile
@@ -58,6 +58,8 @@ PROGS      := $(PROGS-yes:%=%$(EXESUF))
 OBJS        = $(PROGS-yes:%=%.o) cmdutils.o
 TESTTOOLS   = audiogen videogen rotozoom tiny_psnr base64
 HOSTPROGS  := $(TESTTOOLS:%=tests/%)
+TOOLS       = qt-faststart trasher
+TOOLS-$(CONFIG_ZLIB) += cws2fws
 
 BASENAMES   = ffmpeg ffplay ffprobe ffserver
 ALLPROGS    = $(BASENAMES:%=%$(EXESUF))
@@ -86,6 +88,11 @@ FF_DEP_LIBS  := $(DEP_LIBS)
 
 all: $(FF_DEP_LIBS) $(PROGS)
 
+$(TOOLS): %$(EXESUF): %.o
+	$(LD) $(LDFLAGS) -o $@ $< $(ELIBS)
+
+tools/cws2fws$(EXESUF): ELIBS = -lz
+
 config.h: .config
 .config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))
 	@-tput bold 2>/dev/null
@@ -94,7 +101,7 @@ config.h: .config
 
 SUBDIR_VARS := OBJS FFLIBS CLEANFILES DIRS TESTPROGS EXAMPLES SKIPHEADERS \
                ALTIVEC-OBJS MMX-OBJS NEON-OBJS X86-OBJS YASM-OBJS-FFT YASM-OBJS \
-               HOSTPROGS BUILT_HEADERS TESTOBJS ARCH_HEADERS ARMV6-OBJS
+               HOSTPROGS BUILT_HEADERS TESTOBJS ARCH_HEADERS ARMV6-OBJS TOOLS
 
 define RESET
 $(1) :=
@@ -116,18 +123,6 @@ ffserver$(EXESUF): FF_LDFLAGS += $(FFSERVERLDFLAGS)
 $(PROGS): %$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS)
 	$(LD) $(FF_LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS)
 
-TOOLS     = cws2fws graph2dot lavfi-showfiltfmts pktdumper probetest qt-faststart trasher
-TOOLOBJS := $(TOOLS:%=tools/%.o)
-TOOLS    := $(TOOLS:%=tools/%$(EXESUF))
-
-alltools: $(TOOLS)
-
-tools/%$(EXESUF): tools/%.o
-	$(LD) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS)
-
-$(TOOLOBJS): %.o: %.c | tools
-	$(CC) $(CPPFLAGS) $(CFLAGS) -c $(CC_O) $<
-
 OBJDIRS += tools
 
 -include $(wildcard tools/*.d)
diff --git a/common.mak b/common.mak
index bd21046..da51495 100644
--- a/common.mak
+++ b/common.mak
@@ -20,6 +20,9 @@ TESTOBJS  := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o)
 TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF))
 HOSTOBJS  := $(HOSTPROGS:%=$(SUBDIR)%.o)
 HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))
+TOOLS     += $(TOOLS-yes)
+TOOLOBJS  := $(TOOLS:%=tools/%.o)
+TOOLS     := $(TOOLS:%=tools/%$(EXESUF))
 
 DEP_LIBS := $(foreach NAME,$(FFLIBS),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME))
 
@@ -28,6 +31,8 @@ SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-)
 SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%)
 checkheaders: $(filter-out $(SKIPHEADERS:.h=.ho),$(ALLHEADERS:.h=.ho))
 
+alltools: $(TOOLS)
+
 $(HOSTOBJS): %.o: %.c
 	$(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
 
@@ -37,6 +42,7 @@ $(HOSTPROGS): %$(HOSTEXESUF): %.o
 $(OBJS):     | $(dir $(OBJS))
 $(HOSTOBJS): | $(dir $(HOSTOBJS))
 $(TESTOBJS): | $(dir $(TESTOBJS))
+$(TOOLOBJS): | tools
 
 OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS))
 
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 0201607..1a6fd9b 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -62,4 +62,6 @@ OBJS-$(CONFIG_NULLSINK_FILTER)               += vsink_nullsink.o
 
 DIRS = x86
 
+TOOLS = graph2dot lavfi-showfiltfmts
+
 include $(SRC_PATH)/subdir.mak
diff --git a/libavformat/Makefile b/libavformat/Makefile
index a20db26..ca337e0 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -335,6 +335,7 @@ OBJS-$(CONFIG_JACK_INDEV)                += timefilter.o
 
 EXAMPLES  = metadata output
 TESTPROGS = timefilter
+TOOLS     = pktdumper probetest
 
 include $(SRC_PATH)/subdir.mak
 
diff --git a/subdir.mak b/subdir.mak
index 3a38daf..a88955b 100644
--- a/subdir.mak
+++ b/subdir.mak
@@ -34,7 +34,7 @@ install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static
 install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared
 
 define RULES
-$(SUBDIR)%$(EXESUF): $(SUBDIR)%.o
+$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o
 	$$(LD) $(FFLDFLAGS) -o $$@ $$^ -l$(FULLNAME) $(FFEXTRALIBS) $$(ELIBS)
 
 $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
@@ -91,7 +91,7 @@ endef
 
 $(eval $(RULES))
 
-$(EXAMPLES) $(TESTPROGS): $(THIS_LIB) $(DEP_LIBS)
+$(EXAMPLES) $(TESTPROGS) $(TOOLS): $(THIS_LIB) $(DEP_LIBS)
 
 examples: $(EXAMPLES)
 testprogs: $(TESTPROGS)
diff --git a/tests/Makefile b/tests/Makefile
index 431a404..501a72f 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -31,9 +31,6 @@ tests/data/asynth1.sw tests/vsynth%/00.pgm: TAG = GEN
 tests/seek_test$(EXESUF): tests/seek_test.o $(FF_DEP_LIBS)
 	$(LD) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS)
 
-tools/lavfi-showfiltfmts$(EXESUF): tools/lavfi-showfiltfmts.o $(FF_DEP_LIBS)
-	$(LD) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS)
-
 include $(SRC_PATH)/tests/fate.mak
 include $(SRC_PATH)/tests/fate2.mak
 



More information about the ffmpeg-cvslog mailing list