summaryrefslogtreecommitdiff
path: root/ffmpeg/Makefile
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-09-05 17:57:22 +0100
committerTim Redfern <tim@eclectronics.org>2013-09-05 17:57:22 +0100
commit8992cb1d0d07edc33d274f6d7924ecdf6f83d994 (patch)
tree3a2c86846b7eec8137c1507e623fc7018f13d453 /ffmpeg/Makefile
parent741fb4b9e135cfb161a749db88713229038577bb (diff)
making act segmenter
Diffstat (limited to 'ffmpeg/Makefile')
-rw-r--r--ffmpeg/Makefile193
1 files changed, 193 insertions, 0 deletions
diff --git a/ffmpeg/Makefile b/ffmpeg/Makefile
new file mode 100644
index 0000000..07821d1
--- /dev/null
+++ b/ffmpeg/Makefile
@@ -0,0 +1,193 @@
+MAIN_MAKEFILE=1
+include config.mak
+
+vpath %.c $(SRC_PATH)
+vpath %.cpp $(SRC_PATH)
+vpath %.h $(SRC_PATH)
+vpath %.S $(SRC_PATH)
+vpath %.asm $(SRC_PATH)
+vpath %.v $(SRC_PATH)
+vpath %.texi $(SRC_PATH)
+vpath %/fate_config.sh.template $(SRC_PATH)
+
+PROGS-$(CONFIG_FFMPEG) += ffmpeg
+PROGS-$(CONFIG_FFPLAY) += ffplay
+PROGS-$(CONFIG_FFPROBE) += ffprobe
+PROGS-$(CONFIG_FFSERVER) += ffserver
+
+PROGS := $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
+INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
+
+OBJS = cmdutils.o $(EXEOBJS)
+OBJS-ffmpeg = ffmpeg_opt.o ffmpeg_filter.o
+TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64
+HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
+TOOLS = qt-faststart trasher
+TOOLS-$(CONFIG_ZLIB) += cws2fws
+
+BASENAMES = ffmpeg ffplay ffprobe ffserver
+ALLPROGS = $(BASENAMES:%=%$(PROGSSUF)$(EXESUF))
+ALLPROGS_G = $(BASENAMES:%=%$(PROGSSUF)_g$(EXESUF))
+ALLMANPAGES = $(BASENAMES:%=%.1)
+
+FFLIBS-$(CONFIG_AVDEVICE) += avdevice
+FFLIBS-$(CONFIG_AVFILTER) += avfilter
+FFLIBS-$(CONFIG_AVFORMAT) += avformat
+FFLIBS-$(CONFIG_AVRESAMPLE) += avresample
+FFLIBS-$(CONFIG_AVCODEC) += avcodec
+FFLIBS-$(CONFIG_POSTPROC) += postproc
+FFLIBS-$(CONFIG_SWRESAMPLE)+= swresample
+FFLIBS-$(CONFIG_SWSCALE) += swscale
+
+FFLIBS := avutil
+
+DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd
+EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile $(SRC_PATH)/doc/examples/README
+
+SKIPHEADERS = cmdutils_common_opts.h
+
+include $(SRC_PATH)/common.mak
+
+FF_EXTRALIBS := $(FFEXTRALIBS)
+FF_DEP_LIBS := $(DEP_LIBS)
+
+all: $(PROGS)
+
+$(PROGS): %$(EXESUF): %_g$(EXESUF)
+ $(CP) $< $@
+ $(STRIP) $@
+
+$(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
+ $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
+
+tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
+
+config.h: .config
+.config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))
+ @-tput bold 2>/dev/null
+ @-printf '\nWARNING: $(?F) newer than config.h, rerun configure\n\n'
+ @-tput sgr0 2>/dev/null
+
+SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
+ HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
+ ARMV5TE-OBJS ARMV6-OBJS VFP-OBJS NEON-OBJS \
+ ALTIVEC-OBJS VIS-OBJS \
+ MMX-OBJS YASM-OBJS \
+ MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \
+ OBJS HOSTOBJS TESTOBJS
+
+define RESET
+$(1) :=
+$(1)-yes :=
+endef
+
+define DOSUBDIR
+$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
+SUBDIR := $(1)/
+include $(SRC_PATH)/$(1)/Makefile
+-include $(SRC_PATH)/$(1)/$(ARCH)/Makefile
+include $(SRC_PATH)/library.mak
+endef
+
+$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
+
+define DOPROG
+OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS)
+$(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1))
+$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1))
+$(1)$(PROGSSUF)_g$(EXESUF): LDFLAGS += $(LDFLAGS-$(1))
+$(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1))
+-include $$(OBJS-$(1):.o=.d)
+endef
+
+$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P))))
+
+%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS)
+ $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
+
+OBJDIRS += tools
+
+-include $(wildcard tools/*.d)
+
+VERSION_SH = $(SRC_PATH)/version.sh
+GIT_LOG = $(SRC_PATH)/.git/logs/HEAD
+
+.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) config.mak
+.version: M=@
+
+version.h .version:
+ $(M)$(VERSION_SH) $(SRC_PATH) version.h $(EXTRA_VERSION)
+ $(Q)touch .version
+
+# force version.sh to run whenever version might have changed
+-include .version
+
+ifdef PROGS
+install: install-progs install-data
+endif
+
+install: install-libs install-headers
+
+install-libs: install-libs-yes
+
+install-progs-yes:
+install-progs-$(CONFIG_SHARED): install-libs
+
+install-progs: install-progs-yes $(PROGS)
+ $(Q)mkdir -p "$(BINDIR)"
+ $(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)"
+
+install-data: $(DATA_FILES) $(EXAMPLES_FILES)
+ $(Q)mkdir -p "$(DATADIR)/examples"
+ $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)"
+ $(INSTALL) -m 644 $(EXAMPLES_FILES) "$(DATADIR)/examples"
+
+uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
+
+uninstall-progs:
+ $(RM) $(addprefix "$(BINDIR)/", $(ALLPROGS))
+
+uninstall-data:
+ $(RM) -r "$(DATADIR)"
+
+clean::
+ $(RM) $(ALLPROGS) $(ALLPROGS_G)
+ $(RM) $(CLEANSUFFIXES)
+ $(RM) $(CLEANSUFFIXES:%=tools/%)
+ $(RM) coverage.info
+ $(RM) -r coverage-html
+
+distclean::
+ $(RM) $(DISTCLEANSUFFIXES)
+ $(RM) config.* .version version.h libavutil/avconfig.h libavcodec/codec_names.h
+
+config:
+ $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)
+
+# Without the sed genthml thinks "libavutil" and "./libavutil" are two different things
+coverage.info: $(wildcard *.gcda *.gcno */*.gcda */*.gcno */*/*.gcda */*/*.gcno)
+ $(Q)lcov -c -d . -b . | sed -e 's#/./#/#g' > $@
+
+coverage-html: coverage.info
+ $(Q)mkdir -p $@
+ $(Q)genhtml -o $@ $<
+ $(Q)touch $@
+
+check: all alltools examples testprogs fate
+
+include $(SRC_PATH)/doc/Makefile
+include $(SRC_PATH)/tests/Makefile
+
+$(sort $(OBJDIRS)):
+ $(Q)mkdir -p $@
+
+# Dummy rule to stop make trying to rebuild removed or renamed headers
+%.h:
+ @:
+
+# Disable suffix rules. Most of the builtin rules are suffix rules,
+# so this saves some time on slow systems.
+.SUFFIXES:
+
+.PHONY: all all-yes alltools check *clean config install*
+.PHONY: testprogs uninstall*