build: rework rules for things in the tools dir
authorMans Rullgard <mans@mansr.com>
Sun, 10 Jul 2011 19:26:25 +0000 (20:26 +0100)
committerMans Rullgard <mans@mansr.com>
Sun, 10 Jul 2011 20:13:38 +0000 (21:13 +0100)
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@mansr.com>
Makefile
common.mak
libavfilter/Makefile
libavformat/Makefile
subdir.mak
tests/Makefile

index 9f7b436..720936a 100644 (file)
--- 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)
index bd21046..da51495 100644 (file)
@@ -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))
 
index 0201607..1a6fd9b 100644 (file)
@@ -62,4 +62,6 @@ OBJS-$(CONFIG_NULLSINK_FILTER)               += vsink_nullsink.o
 
 DIRS = x86
 
+TOOLS = graph2dot lavfi-showfiltfmts
+
 include $(SRC_PATH)/subdir.mak
index a20db26..ca337e0 100644 (file)
@@ -335,6 +335,7 @@ OBJS-$(CONFIG_JACK_INDEV)                += timefilter.o
 
 EXAMPLES  = metadata output
 TESTPROGS = timefilter
+TOOLS     = pktdumper probetest
 
 include $(SRC_PATH)/subdir.mak
 
index 3a38daf..a88955b 100644 (file)
@@ -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)
index 431a404..501a72f 100644 (file)
@@ -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