e1a54304 |
MAIN_MAKEFILE=1 |
bde51e6a |
include config.mak
|
f038cf3c |
vpath %.c $(SRC_PATH) |
006d2ab4 |
vpath %.cpp $(SRC_PATH) |
f038cf3c |
vpath %.h $(SRC_PATH)
vpath %.S $(SRC_PATH)
vpath %.asm $(SRC_PATH)
vpath %.v $(SRC_PATH)
vpath %.texi $(SRC_PATH) |
bd9d4a6b |
vpath %/fate_config.sh.template $(SRC_PATH) |
bde51e6a |
PROGS-$(CONFIG_FFMPEG) += ffmpeg
PROGS-$(CONFIG_FFPLAY) += ffplay |
336ce917 |
PROGS-$(CONFIG_FFPROBE) += ffprobe |
bde51e6a |
PROGS-$(CONFIG_FFSERVER) += ffserver
|
95d1af11 |
PROGS := $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF)) |
c975cfae |
INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF)) |
c2626492 |
|
80521c19 |
OBJS = cmdutils.o $(EXEOBJS) |
11a1033c |
OBJS-ffmpeg = ffmpeg_opt.o ffmpeg_filter.o |
3d157bf3 |
TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 |
0d0b81f9 |
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options |
28e1c979 |
TOOLS = qt-faststart trasher
TOOLS-$(CONFIG_ZLIB) += cws2fws |
bde51e6a |
|
def67895 |
BASENAMES = ffmpeg ffplay ffprobe ffserver |
33d90770 |
ALLPROGS = $(BASENAMES:%=%$(PROGSSUF)$(EXESUF))
ALLPROGS_G = $(BASENAMES:%=%$(PROGSSUF)_g$(EXESUF)) |
583fcb52 |
ALLMANPAGES = $(BASENAMES:%=%.1) |
bde51e6a |
|
5a0f7131 |
FFLIBS-$(CONFIG_AVDEVICE) += avdevice |
bde51e6a |
FFLIBS-$(CONFIG_AVFILTER) += avfilter |
5a0f7131 |
FFLIBS-$(CONFIG_AVFORMAT) += avformat |
c8af852b |
FFLIBS-$(CONFIG_AVRESAMPLE) += avresample |
97d5fa38 |
FFLIBS-$(CONFIG_AVCODEC) += avcodec |
bde51e6a |
FFLIBS-$(CONFIG_POSTPROC) += postproc |
b5875b91 |
FFLIBS-$(CONFIG_SWRESAMPLE)+= swresample |
5a0f7131 |
FFLIBS-$(CONFIG_SWSCALE) += swscale |
bde51e6a |
|
5a0f7131 |
FFLIBS := avutil |
bde51e6a |
|
29c1b258 |
DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd |
7ca102a7 |
EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile $(SRC_PATH)/doc/examples/README |
a1a84f69 |
|
9b55e2e7 |
SKIPHEADERS = cmdutils_common_opts.h
|
57b4a3dd |
include $(SRC_PATH)/common.mak |
bde51e6a |
FF_EXTRALIBS := $(FFEXTRALIBS)
FF_DEP_LIBS := $(DEP_LIBS)
|
c83ef636 |
all: $(PROGS) |
bde51e6a |
|
95d1af11 |
$(PROGS): %$(EXESUF): %_g$(EXESUF)
$(CP) $< $@
$(STRIP) $@ |
b1ca9642 |
|
80521c19 |
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS) |
28e1c979 |
|
7baa115a |
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB) |
28e1c979 |
|
86601915 |
config.h: .config |
f038cf3c |
.config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) |
9d0b3042 |
@-tput bold 2>/dev/null
@-printf '\nWARNING: $(?F) newer than config.h, rerun configure\n\n'
@-tput sgr0 2>/dev/null |
86601915 |
|
e7e19b15 |
SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \ |
121604b0 |
HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \ |
b3267559 |
ARMV5TE-OBJS ARMV6-OBJS VFP-OBJS NEON-OBJS \ |
ca411fc1 |
ALTIVEC-OBJS VIS-OBJS \ |
5864eb42 |
MMX-OBJS YASM-OBJS \ |
3827a86e |
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \ |
24d3796d |
OBJS HOSTOBJS TESTOBJS |
bde51e6a |
define RESET
$(1) :=
$(1)-yes :=
endef
define DOSUBDIR
$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
SUBDIR := $(1)/ |
57b4a3dd |
include $(SRC_PATH)/$(1)/Makefile |
07a873a2 |
-include $(SRC_PATH)/$(1)/$(ARCH)/Makefile |
144904e9 |
include $(SRC_PATH)/library.mak |
bde51e6a |
endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
|
baac24e6 |
define DOPROG |
80521c19 |
OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS) |
8227d36b |
$(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) |
baac24e6 |
$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) |
95d1af11 |
$(1)$(PROGSSUF)_g$(EXESUF): LDFLAGS += $(LDFLAGS-$(1))
$(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) |
baac24e6 |
-include $$(OBJS-$(1):.o=.d)
endef
$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P)))) |
bde51e6a |
|
8227d36b |
%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS) |
07b3790d |
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) |
bde51e6a |
|
5e27ec28 |
OBJDIRS += tools
|
08df7f86 |
-include $(wildcard tools/*.d) |
bde51e6a |
|
f038cf3c |
VERSION_SH = $(SRC_PATH)/version.sh
GIT_LOG = $(SRC_PATH)/.git/logs/HEAD |
6a53fffd |
|
faa6f1c3 |
.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) config.mak |
6a53fffd |
.version: M=@
version.h .version: |
0853a2b4 |
$(M)$(VERSION_SH) $(SRC_PATH) version.h $(EXTRA_VERSION) |
6a53fffd |
$(Q)touch .version
# force version.sh to run whenever version might have changed
-include .version |
36798f1b |
|
623ffe8c |
ifdef PROGS
install: install-progs install-data
endif
install: install-libs install-headers |
d7a72d25 |
install-libs: install-libs-yes |
bde51e6a |
|
151c5841 |
install-progs-yes: |
623ffe8c |
install-progs-$(CONFIG_SHARED): install-libs
install-progs: install-progs-yes $(PROGS) |
63611f31 |
$(Q)mkdir -p "$(BINDIR)" |
c975cfae |
$(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)" |
bde51e6a |
|
0cc9ee5f |
install-data: $(DATA_FILES) $(EXAMPLES_FILES)
$(Q)mkdir -p "$(DATADIR)/examples" |
fd676deb |
$(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)" |
0cc9ee5f |
$(INSTALL) -m 644 $(EXAMPLES_FILES) "$(DATADIR)/examples" |
a1a84f69 |
|
f87b03b5 |
uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data |
d3cb93b3 |
uninstall-progs: |
50e10cbd |
$(RM) $(addprefix "$(BINDIR)/", $(ALLPROGS)) |
d3cb93b3 |
uninstall-data: |
50e10cbd |
$(RM) -r "$(DATADIR)" |
d3cb93b3 |
|
698a183e |
clean:: |
b1ca9642 |
$(RM) $(ALLPROGS) $(ALLPROGS_G) |
50e10cbd |
$(RM) $(CLEANSUFFIXES) |
40321376 |
$(RM) $(CLEANSUFFIXES:%=tools/%) |
840ecc9e |
$(RM) coverage.info
$(RM) -r coverage-html |
bde51e6a |
distclean:: |
50e10cbd |
$(RM) $(DISTCLEANSUFFIXES) |
7621c353 |
$(RM) config.* .version version.h libavutil/avconfig.h libavcodec/codec_names.h |
bde51e6a |
|
9d0b3042 |
config: |
e528cdac |
$(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) |
0c3b2d65 |
|
840ecc9e |
# 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 $@
|
7c8b5d1d |
check: all alltools examples testprogs fate |
4982e1dd |
|
57b4a3dd |
include $(SRC_PATH)/doc/Makefile
include $(SRC_PATH)/tests/Makefile |
d29d9ccc |
|
5e27ec28 |
$(sort $(OBJDIRS)):
$(Q)mkdir -p $@
|
8d853efe |
# 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:
|
06e4b983 |
.PHONY: all all-yes alltools check *clean config install* |
698a183e |
.PHONY: testprogs uninstall* |