e1a54304 |
MAIN_MAKEFILE=1 |
bde51e6a |
include config.mak
|
f038cf3c |
vpath %.c $(SRC_PATH) |
006d2ab4 |
vpath %.cpp $(SRC_PATH) |
f038cf3c |
vpath %.h $(SRC_PATH) |
9595f367 |
vpath %.m $(SRC_PATH) |
f038cf3c |
vpath %.S $(SRC_PATH)
vpath %.asm $(SRC_PATH) |
56572787 |
vpath %.rc $(SRC_PATH) |
f038cf3c |
vpath %.v $(SRC_PATH)
vpath %.texi $(SRC_PATH) |
bd9d4a6b |
vpath %/fate_config.sh.template $(SRC_PATH) |
bde51e6a |
|
5ded4332 |
AVPROGS-$(CONFIG_FFMPEG) += ffmpeg
AVPROGS-$(CONFIG_FFPLAY) += ffplay
AVPROGS-$(CONFIG_FFPROBE) += ffprobe
AVPROGS-$(CONFIG_FFSERVER) += ffserver |
bde51e6a |
|
5ded4332 |
AVPROGS := $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF))
INSTPROGS = $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF)) |
14abeaa4 |
PROGS += $(AVPROGS) |
c2626492 |
|
5ded4332 |
AVBASENAMES = ffmpeg ffplay ffprobe ffserver
ALLAVPROGS = $(AVBASENAMES:%=%$(PROGSSUF)$(EXESUF))
ALLAVPROGS_G = $(AVBASENAMES:%=%$(PROGSSUF)_g$(EXESUF)) |
c2626492 |
|
5ded4332 |
$(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog) += cmdutils.o)) |
64f73acd |
$(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog)-$(CONFIG_OPENCL) += cmdutils_opencl.o)) |
bb524924 |
|
5ded4332 |
OBJS-ffmpeg += ffmpeg_opt.o ffmpeg_filter.o |
3e641b48 |
OBJS-ffmpeg-$(HAVE_VDPAU_X11) += ffmpeg_vdpau.o |
21c7e996 |
OBJS-ffmpeg-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.o |
5460ab73 |
OBJS-ffmpeg-$(CONFIG_VDA) += ffmpeg_vda.o |
f524d2e4 |
OBJS-ffserver += ffserver_config.o |
7671dd7c |
|
06414648 |
TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 |
0d0b81f9 |
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options |
8400368f |
TOOLS = qt-faststart trasher uncoded_frame |
28e1c979 |
TOOLS-$(CONFIG_ZLIB) += cws2fws |
bde51e6a |
|
5e2ba41d |
# $(FFLIBS-yes) needs to be in linking order
FFLIBS-$(CONFIG_AVDEVICE) += avdevice
FFLIBS-$(CONFIG_AVFILTER) += avfilter
FFLIBS-$(CONFIG_AVFORMAT) += avformat
FFLIBS-$(CONFIG_AVCODEC) += avcodec |
c8af852b |
FFLIBS-$(CONFIG_AVRESAMPLE) += avresample |
fcb5849a |
FFLIBS-$(CONFIG_POSTPROC) += postproc
FFLIBS-$(CONFIG_SWRESAMPLE) += swresample |
5e2ba41d |
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 |
|
90f9a583 |
SKIPHEADERS = cmdutils_common_opts.h compat/w32pthreads.h |
9b55e2e7 |
|
57b4a3dd |
include $(SRC_PATH)/common.mak |
bde51e6a |
FF_EXTRALIBS := $(FFEXTRALIBS)
FF_DEP_LIBS := $(DEP_LIBS)
|
14abeaa4 |
all: $(AVPROGS) |
bde51e6a |
|
80521c19 |
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS) |
bb0babd7 |
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) |
28e1c979 |
|
7baa115a |
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB) |
8400368f |
tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)
tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS) |
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 \ |
8675bcb0 |
ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \ |
b4dd424d |
ALTIVEC-OBJS MMX-OBJS YASM-OBJS \ |
35a7170e |
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MSA-OBJS \ |
4a7b5067 |
LOONGSON3-OBJS OBJS SLIBOBJS 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 |
d45ebd48 |
-include $(SRC_PATH)/$(1)/$(INTRINSICS)/Makefile |
144904e9 |
include $(SRC_PATH)/library.mak |
bde51e6a |
endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
|
ab81f24a |
include $(SRC_PATH)/doc/Makefile
|
baac24e6 |
define DOPROG |
14abeaa4 |
OBJS-$(1) += $(1).o $(EXEOBJS) $(OBJS-$(1)-yes) |
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
|
875f9aea |
$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(PROGSSUF)$(EXESUF)=)))) |
bde51e6a |
|
4ae87554 |
ffprobe.o cmdutils.o libavcodec/utils.o libavformat/utils.o libavdevice/avdevice.o libavfilter/avfilter.o libavutil/utils.o libpostproc/postprocess.o libswresample/swresample.o libswscale/utils.o : libavutil/ffversion.h |
4d0ac9ae |
|
875f9aea |
$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF) |
325c918f |
$(CP) $< $@
$(STRIP) $@
|
8227d36b |
%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS) |
bb0babd7 |
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(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=@
|
82b2e9cb |
libavutil/ffversion.h .version:
$(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION) |
6a53fffd |
$(Q)touch .version
# force version.sh to run whenever version might have changed
-include .version |
36798f1b |
|
14abeaa4 |
ifdef AVPROGS |
623ffe8c |
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
|
14abeaa4 |
install-progs: install-progs-yes $(AVPROGS) |
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: |
14abeaa4 |
$(RM) $(addprefix "$(BINDIR)/", $(ALLAVPROGS)) |
d3cb93b3 |
uninstall-data: |
50e10cbd |
$(RM) -r "$(DATADIR)" |
d3cb93b3 |
|
698a183e |
clean:: |
5ded4332 |
$(RM) $(ALLAVPROGS) $(ALLAVPROGS_G) |
50e10cbd |
$(RM) $(CLEANSUFFIXES) |
40321376 |
$(RM) $(CLEANSUFFIXES:%=tools/%) |
840ecc9e |
$(RM) -r coverage-html |
a862c7d3 |
$(RM) -rf coverage.info lcov |
bde51e6a |
distclean:: |
50e10cbd |
$(RM) $(DISTCLEANSUFFIXES) |
16f4e2ab |
$(RM) config.* .config libavutil/avconfig.h .version version.h libavutil/ffversion.h libavcodec/codec_names.h |
bde51e6a |
|
9d0b3042 |
config: |
e528cdac |
$(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) |
0c3b2d65 |
|
7c8b5d1d |
check: all alltools examples testprogs fate |
4982e1dd |
|
57b4a3dd |
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* |