e1a54304 |
MAIN_MAKEFILE=1 |
3f17751e |
include ffbuild/config.mak |
bde51e6a |
|
f038cf3c |
vpath %.c $(SRC_PATH) |
006d2ab4 |
vpath %.cpp $(SRC_PATH) |
f038cf3c |
vpath %.h $(SRC_PATH) |
064963bd |
vpath %.inc $(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) |
f1ab71b0 |
vpath %.cu $(SRC_PATH)
vpath %.ptx $(SRC_PATH) |
bd9d4a6b |
vpath %/fate_config.sh.template $(SRC_PATH) |
bde51e6a |
|
14478b6c |
TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch |
0d0b81f9 |
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options |
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 |
a1a84f69 |
|
122de16d |
SKIPHEADERS = compat/w32pthreads.h |
9b55e2e7 |
|
c833c203 |
# first so "all" becomes default target
all: all-yes
|
3e105d08 |
include $(SRC_PATH)/tools/Makefile |
3f17751e |
include $(SRC_PATH)/ffbuild/common.mak |
bde51e6a |
FF_EXTRALIBS := $(FFEXTRALIBS)
FF_DEP_LIBS := $(DEP_LIBS) |
3ae0e721 |
FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS) |
bde51e6a |
|
3794062a |
$(TOOLS): %$(EXESUF): %.o |
7cb1d9e2 |
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(EXTRALIBS-$(*F)) $(EXTRALIBS) $(ELIBS) |
28e1c979 |
|
5b499bf4 |
target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
|
1a30bf60 |
tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS) |
802d94c3 |
tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)
tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS) |
5b499bf4 |
tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS) |
802d94c3 |
|
7c9e2b29 |
CONFIGURABLE_COMPONENTS = \
$(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \
$(SRC_PATH)/libavcodec/bitstream_filters.c \ |
3735d55a |
$(SRC_PATH)/libavcodec/parsers.c \ |
7c9e2b29 |
$(SRC_PATH)/libavformat/protocols.c \
|
3f17751e |
config.h: ffbuild/.config
ffbuild/.config: $(CONFIGURABLE_COMPONENTS) |
9d0b3042 |
@-tput bold 2>/dev/null |
4104cc56 |
@-printf '\nWARNING: $(?) newer than config.h, rerun configure\n\n' |
9d0b3042 |
@-tput sgr0 2>/dev/null |
86601915 |
|
533339bd |
SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS \ |
121604b0 |
HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \ |
8675bcb0 |
ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \ |
fd502f4f |
ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS \ |
a27401a0 |
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS \ |
387cbe01 |
MMI-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 |
3f17751e |
include $(SRC_PATH)/ffbuild/library.mak |
bde51e6a |
endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
|
fd5f4ac0 |
include $(SRC_PATH)/fftools/Makefile |
ab81f24a |
include $(SRC_PATH)/doc/Makefile |
acb0dea2 |
include $(SRC_PATH)/doc/examples/Makefile |
ab81f24a |
|
fd5f4ac0 |
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) |
ff6de6b1 |
ifeq ($(STRIPTYPE),direct)
$(STRIP) -o $@ $<
else |
325c918f |
$(CP) $< $@
$(STRIP) $@ |
ff6de6b1 |
endif |
325c918f |
|
fd5f4ac0 |
%$(PROGSSUF)_g$(EXESUF): $(FF_DEP_LIBS) |
bb0babd7 |
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) |
bde51e6a |
|
3f17751e |
VERSION_SH = $(SRC_PATH)/ffbuild/version.sh |
f038cf3c |
GIT_LOG = $(SRC_PATH)/.git/logs/HEAD |
6a53fffd |
|
3f17751e |
.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/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 |
|
623ffe8c |
install: install-libs install-headers |
d7a72d25 |
install-libs: install-libs-yes |
bde51e6a |
|
cafd9d66 |
install-data: $(DATA_FILES)
$(Q)mkdir -p "$(DATADIR)" |
fd676deb |
$(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)" |
a1a84f69 |
|
fbf77b5a |
uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig |
d3cb93b3 |
uninstall-data: |
50e10cbd |
$(RM) -r "$(DATADIR)" |
d3cb93b3 |
|
698a183e |
clean:: |
50e10cbd |
$(RM) $(CLEANSUFFIXES) |
cbcdb2d8 |
$(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES)) |
840ecc9e |
$(RM) -r coverage-html |
14bf59c1 |
$(RM) -rf coverage.info coverage.info.in lcov |
bde51e6a |
|
e7e7d56a |
distclean:: clean |
3f17751e |
$(RM) .version avversion.h config.asm config.h mapfile \
ffbuild/.config ffbuild/config.* libavutil/avconfig.h \
version.h libavutil/ffversion.h libavcodec/codec_names.h \ |
7e8eba2d |
libavcodec/bsf_list.c libavformat/protocol_list.c \ |
0694d870 |
libavcodec/codec_list.c libavcodec/parser_list.c \ |
d8ae4061 |
libavformat/muxer_list.c libavformat/demuxer_list.c |
e740c3fb |
ifeq ($(SRC_LINK),src)
$(RM) src
endif |
bc517be6 |
$(RM) -rf doc/examples/pc-uninstalled |
bde51e6a |
|
9d0b3042 |
config: |
e528cdac |
$(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) |
0c3b2d65 |
|
5adc1f14 |
build: all alltools examples testprogs |
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:
|
d1d6230e |
.PHONY: all all-yes alltools build check config testprogs
.PHONY: *clean install* uninstall* |