1 include avbuild
/config.mak
7 vpath
%.asm
$(SRC_PATH
)
9 vpath
%.texi
$(SRC_PATH
)
13 ECHO
= printf
"$(1)\t%s\n" $(2)
14 BRIEF
= CC HOSTCC HOSTLD AS X86ASM AR LD
15 SILENT
= DEPCC DEPHOSTCC DEPAS DEPX86ASM RANLIB RM STRIP
17 M
= @
$(call ECHO
,$(TAG
),$@
);
18 $(foreach VAR
,$(BRIEF
), \
19 $(eval
override $(VAR
) = @
$$(call ECHO
,$(VAR
),$$(MSG
)); $($(VAR
))))
20 $(foreach VAR
,$(SILENT
),$(eval
override $(VAR
) = @
$($(VAR
))))
21 $(eval INSTALL
= @
$(call ECHO
,INSTALL
,$$(^
:$(SRC_PATH
)/%=%)); $(INSTALL
))
24 ALLFFLIBS
= avcodec avdevice avfilter avformat avresample avutil swscale
26 IFLAGS
:= -I.
-I
$(SRC_PATH
)
27 CPPFLAGS
:= $(IFLAGS
) $(CPPFLAGS
)
29 CCFLAGS
= $(CPPFLAGS
) $(CFLAGS
)
30 OBJCFLAGS
+= $(EOBJCFLAGS
)
31 OBJCCFLAGS
= $(CPPFLAGS
) $(CFLAGS
) $(OBJCFLAGS
)
32 ASFLAGS
:= $(CPPFLAGS
) $(ASFLAGS
)
33 X86ASMFLAGS
+= $(IFLAGS
:%=%/) -I
$(<D
)/ -Pconfig.asm
34 HOSTCCFLAGS
= $(IFLAGS
) $(HOSTCPPFLAGS
) $(HOSTCFLAGS
)
35 LDFLAGS
:= $(ALLFFLIBS
:%=$(LD_PATH
)lib
%) $(LDFLAGS
)
39 $($(1)) $($(1)FLAGS
) $($(1)_DEPFLAGS
) $($(1)_C
) $($(1)_O
) $<
42 COMPILE_C
= $(call COMPILE
,CC
)
43 COMPILE_S
= $(call COMPILE
,AS
)
44 COMPILE_M
= $(call COMPILE
,OBJCC
)
45 COMPILE_X86ASM
= $(call COMPILE
,X86ASM
)
46 COMPILE_HOSTC
= $(call COMPILE
,HOSTCC
)
62 -$(STRIP
) $(STRIPFLAGS
) $@
65 $(CC
) $(CCFLAGS
) $(CC_E
) $<
68 $(Q
)echo
'#include "$*.h"' >$@
70 %.c
%.h
%.
pc %.ver
%.version
: TAG
= GEN
72 TESTTOOLS
= audiogen videogen rotozoom tiny_psnr base64
73 HOSTPROGS
:= $(TESTTOOLS
:%=tests
/%) doc
/print_options
75 # $(FFLIBS-yes) needs to be in linking order
76 FFLIBS-
$(CONFIG_AVDEVICE
) += avdevice
77 FFLIBS-
$(CONFIG_AVFILTER
) += avfilter
78 FFLIBS-
$(CONFIG_AVFORMAT
) += avformat
79 FFLIBS-
$(CONFIG_AVCODEC
) += avcodec
80 FFLIBS-
$(CONFIG_AVRESAMPLE
) += avresample
81 FFLIBS-
$(CONFIG_SWSCALE
) += swscale
85 DATA_FILES
:= $(wildcard $(SRC_PATH
)/presets
/*.avpreset
)
87 SKIPHEADERS
= compat
/w32pthreads.h
89 # first so "all" becomes default target
92 include $(SRC_PATH
)/tools
/Makefile
93 include $(SRC_PATH
)/avbuild
/common.mak
95 FF_EXTRALIBS
:= $(FFEXTRALIBS
)
96 FF_DEP_LIBS
:= $(DEP_LIBS
)
97 FF_STATIC_DEP_LIBS
:= $(STATIC_DEP_LIBS
)
99 $(TOOLS
): %$(EXESUF
): %.o
100 $(LD
) $(LDFLAGS
) $(LDEXEFLAGS
) $(LD_O
) $^
$(EXTRALIBS-
$(*F
)) $(EXTRALIBS
) $(ELIBS
)
102 CONFIGURABLE_COMPONENTS
= \
103 $(wildcard $(FFLIBS
:%=$(SRC_PATH
)/lib
%/all*.c
)) \
104 $(SRC_PATH
)/libavcodec
/bitstream_filters.c \
105 $(SRC_PATH
)/libavformat
/protocols.c \
107 config.h
: avbuild
/.config
108 avbuild
/.config
: $(CONFIGURABLE_COMPONENTS
)
109 @
-tput bold
2>/dev
/null
110 @
-printf
'\nWARNING: $(?) newer than config.h, rerun configure\n\n'
111 @
-tput sgr0
2>/dev
/null
113 SUBDIR_VARS
:= CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS \
114 HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
115 ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \
116 ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS \
117 OBJS HOSTOBJS TESTOBJS
125 $(foreach V
,$(SUBDIR_VARS
),$(eval
$(call RESET
,$(V
))))
127 include $(SRC_PATH
)/$(1)/Makefile
128 -include $(SRC_PATH
)/$(1)/$(ARCH
)/Makefile
129 -include $(SRC_PATH
)/$(1)/$(INTRINSICS
)/Makefile
130 include $(SRC_PATH
)/avbuild
/library.mak
133 $(foreach D
,$(FFLIBS
),$(eval
$(call DOSUBDIR
,lib
$(D
))))
135 include $(SRC_PATH
)/avtools
/Makefile
136 include $(SRC_PATH
)/doc
/Makefile
137 include $(SRC_PATH
)/doc
/examples
/Makefile
139 $(PROGS
): %$(EXESUF
): $(FF_DEP_LIBS
)
140 $(LD
) $(LDFLAGS
) $(LDEXEFLAGS
) $(LD_O
) $(OBJS-
$*) $(FF_EXTRALIBS
)
142 VERSION_SH
= $(SRC_PATH
)/avbuild
/version.sh
143 GIT_LOG
= $(SRC_PATH
)/.git
/logs
/HEAD
145 .version
: $(wildcard $(GIT_LOG
)) $(VERSION_SH
) avbuild
/config.mak
148 libavutil
/utils.o
: avversion.h
149 avversion.h .version
:
150 $(M
)$(VERSION_SH
) $(SRC_PATH
) avversion.h
$(EXTRA_VERSION
)
153 # force version.sh to run whenever version might have changed
156 install: install-libs install-headers
158 install-libs
: install-libs-yes
160 install-data
: $(DATA_FILES
)
161 $(Q
)mkdir
-p
"$(DATADIR)"
162 $(INSTALL
) -m
644 $(DATA_FILES
) "$(DATADIR)"
164 uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig
167 $(RM
) -r
"$(DATADIR)"
170 $(RM
) $(CLEANSUFFIXES
)
171 $(RM
) $(addprefix compat
/,$(CLEANSUFFIXES
)) $(addprefix compat
/*/,$(CLEANSUFFIXES
))
172 $(RM
) -rf coverage.
info lcov
175 $(RM
) .version avversion.h config.asm config.h mapfile \
176 avbuild
/.config avbuild
/config.
* libavutil
/avconfig.h \
177 libavcodec
/bsf_list.c libavformat
/protocol_list.c
180 $(SRC_PATH
)/configure
$(value LIBAV_CONFIGURATION
)
182 build
: all alltools checkheaders examples testprogs
183 check: all alltools checkheaders examples testprogs fate
185 include $(SRC_PATH
)/tests
/Makefile
190 # Dummy rule to stop make trying to rebuild removed or renamed headers
194 # Disable suffix rules. Most of the builtin rules are suffix rules,
195 # so this saves some time on slow systems.
198 .PHONY
: all all-yes alltools build
check config testprogs
199 .PHONY
: *clean install* uninstall*