1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00

build: Separate building programs linking against libav* from building av*

This will allow cleaner integration of building example programs.
This commit is contained in:
Diego Biurrun 2013-11-02 16:44:18 +01:00
parent 09cd0a3176
commit 14abeaa43d
2 changed files with 24 additions and 21 deletions

View File

@ -56,14 +56,20 @@ COMPILE_S = $(call COMPILE,AS)
%.c %.h: TAG = GEN %.c %.h: TAG = GEN
PROGS-$(CONFIG_AVCONV) += avconv AVPROGS-$(CONFIG_AVCONV) += avconv
PROGS-$(CONFIG_AVPLAY) += avplay AVPROGS-$(CONFIG_AVPLAY) += avplay
PROGS-$(CONFIG_AVPROBE) += avprobe AVPROGS-$(CONFIG_AVPROBE) += avprobe
PROGS-$(CONFIG_AVSERVER) += avserver AVPROGS-$(CONFIG_AVSERVER) += avserver
PROGS := $(PROGS-yes:%=%$(EXESUF)) AVPROGS := $(AVPROGS-yes:%=%$(EXESUF))
PROGS += $(AVPROGS)
OBJS-avconv = avconv_opt.o avconv_filter.o AVBASENAMES = avconv avplay avprobe avserver
ALLAVPROGS = $(AVBASENAMES:%=%$(EXESUF))
$(foreach prog,$(ALLAVPROGS),$(eval OBJS-$(prog) += cmdutils.o))
OBJS-avconv += avconv_opt.o avconv_filter.o
OBJS-avconv-$(HAVE_VDPAU_X11) += avconv_vdpau.o OBJS-avconv-$(HAVE_VDPAU_X11) += avconv_vdpau.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64
@ -71,10 +77,6 @@ HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
TOOLS = qt-faststart trasher TOOLS = qt-faststart trasher
TOOLS-$(CONFIG_ZLIB) += cws2fws TOOLS-$(CONFIG_ZLIB) += cws2fws
BASENAMES = avconv avplay avprobe avserver
ALLPROGS = $(BASENAMES:%=%$(EXESUF))
ALLMANPAGES = $(BASENAMES:%=%.1)
FFLIBS-$(CONFIG_AVDEVICE) += avdevice FFLIBS-$(CONFIG_AVDEVICE) += avdevice
FFLIBS-$(CONFIG_AVFILTER) += avfilter FFLIBS-$(CONFIG_AVFILTER) += avfilter
FFLIBS-$(CONFIG_AVFORMAT) += avformat FFLIBS-$(CONFIG_AVFORMAT) += avformat
@ -93,7 +95,7 @@ include $(SRC_PATH)/common.mak
FF_EXTRALIBS := $(FFEXTRALIBS) FF_EXTRALIBS := $(FFEXTRALIBS)
FF_DEP_LIBS := $(DEP_LIBS) FF_DEP_LIBS := $(DEP_LIBS)
all: $(PROGS) all: $(AVPROGS)
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS) $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
@ -129,7 +131,7 @@ endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
define DOPROG define DOPROG
OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS) $(OBJS-$(1)-yes) OBJS-$(1) += $(1).o $(EXEOBJS) $(OBJS-$(1)-yes)
$(1)$(EXESUF): $$(OBJS-$(1)) $(1)$(EXESUF): $$(OBJS-$(1))
$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) $$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1))
$(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) $(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1))
@ -137,7 +139,7 @@ $(1)$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1))
-include $$(OBJS-$(1):.o=.d) -include $$(OBJS-$(1):.o=.d)
endef endef
$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P)))) $(foreach P,$(PROGS),$(eval $(call DOPROG,$(P))))
$(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS) $(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
@ -159,7 +161,7 @@ version.h .version:
# force version.sh to run whenever version might have changed # force version.sh to run whenever version might have changed
-include .version -include .version
ifdef PROGS ifdef AVPROGS
install: install-progs install-data install: install-progs install-data
endif endif
@ -170,9 +172,9 @@ install-libs: install-libs-yes
install-progs-yes: install-progs-yes:
install-progs-$(CONFIG_SHARED): install-libs install-progs-$(CONFIG_SHARED): install-libs
install-progs: install-progs-yes $(PROGS) install-progs: install-progs-yes $(AVPROGS)
$(Q)mkdir -p "$(BINDIR)" $(Q)mkdir -p "$(BINDIR)"
$(INSTALL) -c -m 755 $(PROGS) "$(BINDIR)" $(INSTALL) -c -m 755 $(AVPROGS) "$(BINDIR)"
install-data: $(DATA_FILES) install-data: $(DATA_FILES)
$(Q)mkdir -p "$(DATADIR)" $(Q)mkdir -p "$(DATADIR)"
@ -181,13 +183,13 @@ install-data: $(DATA_FILES)
uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
uninstall-progs: uninstall-progs:
$(RM) $(addprefix "$(BINDIR)/", $(ALLPROGS)) $(RM) $(addprefix "$(BINDIR)/", $(ALLAVPROGS))
uninstall-data: uninstall-data:
$(RM) -r "$(DATADIR)" $(RM) -r "$(DATADIR)"
clean:: clean::
$(RM) $(ALLPROGS) $(RM) $(ALLAVPROGS)
$(RM) $(CLEANSUFFIXES) $(RM) $(CLEANSUFFIXES)
$(RM) $(CLEANSUFFIXES:%=tools/%) $(RM) $(CLEANSUFFIXES:%=tools/%)
$(RM) -rf coverage.info lcov $(RM) -rf coverage.info lcov

View File

@ -1,6 +1,7 @@
MANPAGES = $(PROGS-yes:%=doc/%.1) ALLMANPAGES = $(AVBASENAMES:%=%.1)
PODPAGES = $(PROGS-yes:%=doc/%.pod) MANPAGES = $(AVPROGS-yes:%=doc/%.1)
HTMLPAGES = $(PROGS-yes:%=doc/%.html) \ PODPAGES = $(AVPROGS-yes:%=doc/%.pod)
HTMLPAGES = $(AVPROGS-yes:%=doc/%.html) \
doc/developer.html \ doc/developer.html \
doc/faq.html \ doc/faq.html \
doc/fate.html \ doc/fate.html \