6 vpath
%.asm
$(SRC_PATH
)
8 vpath
%.texi
$(SRC_PATH
)
12 ECHO
= printf
"$(1)\t%s\n" $(2)
13 BRIEF
= CC AS YASM AR LD HOSTCC
14 SILENT
= DEPCC YASMDEP RM RANLIB
16 M
= @
$(call ECHO
,$(TAG
),$@
);
17 $(foreach VAR
,$(BRIEF
), \
18 $(eval
override $(VAR
) = @
$$(call ECHO
,$(VAR
),$$(MSG
)); $($(VAR
))))
19 $(foreach VAR
,$(SILENT
),$(eval
override $(VAR
) = @
$($(VAR
))))
20 $(eval INSTALL
= @
$(call ECHO
,INSTALL
,$$(^
:$(SRC_PATH
)/%=%)); $(INSTALL
))
23 ALLFFLIBS
= avcodec avdevice avfilter avformat avutil postproc swscale
25 IFLAGS
:= -I.
-I
$(SRC_PATH
)
26 CPPFLAGS
:= $(IFLAGS
) $(CPPFLAGS
)
29 YASMFLAGS
+= $(IFLAGS
) -I
$(SRC_PATH
)/libavutil
/x86
/ -Pconfig.asm
30 HOSTCFLAGS
+= $(IFLAGS
)
31 LDFLAGS
:= $(ALLFFLIBS
:%=-Llib
%) $(LDFLAGS
)
35 $($(1)) $(CPPFLAGS
) $($(1)FLAGS
) $($(1)_DEPFLAGS
) -c
$($(1)_O
) $<
38 COMPILE_C
= $(call COMPILE
,CC
)
39 COMPILE_S
= $(call COMPILE
,AS
)
48 $(CC
) $(CPPFLAGS
) $(CFLAGS
) -Wno-unused
-c
-o
$@
-x c
$<
51 $(Q
)sed
's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^
> $@
55 PROGS-
$(CONFIG_FFMPEG
) += ffmpeg
56 PROGS-
$(CONFIG_AVCONV
) += avconv
57 PROGS-
$(CONFIG_AVPLAY
) += avplay
58 PROGS-
$(CONFIG_AVPROBE
) += avprobe
59 PROGS-
$(CONFIG_AVSERVER
) += avserver
61 PROGS
:= $(PROGS-yes
:%=%$(EXESUF
))
62 OBJS
= $(PROGS-yes
:%=%.o
) cmdutils.o
63 TESTTOOLS
= audiogen videogen rotozoom tiny_psnr base64
64 HOSTPROGS
:= $(TESTTOOLS
:%=tests
/%)
65 TOOLS
= qt-faststart trasher
66 TOOLS-
$(CONFIG_ZLIB
) += cws2fws
68 BASENAMES
= ffmpeg avconv avplay avprobe avserver
69 ALLPROGS
= $(BASENAMES
:%=%$(EXESUF
))
70 ALLMANPAGES
= $(BASENAMES
:%=%.1)
72 FFLIBS-
$(CONFIG_AVDEVICE
) += avdevice
73 FFLIBS-
$(CONFIG_AVFILTER
) += avfilter
74 FFLIBS-
$(CONFIG_AVFORMAT
) += avformat
75 FFLIBS-
$(CONFIG_AVCODEC
) += avcodec
76 FFLIBS-
$(CONFIG_POSTPROC
) += postproc
77 FFLIBS-
$(CONFIG_SWSCALE
) += swscale
81 DATA_FILES
:= $(wildcard $(SRC_PATH
)/presets
/*.avpreset
)
83 SKIPHEADERS
= cmdutils_common_opts.h
85 include $(SRC_PATH
)/common.mak
87 FF_EXTRALIBS
:= $(FFEXTRALIBS
)
88 FF_DEP_LIBS
:= $(DEP_LIBS
)
92 $(TOOLS
): %$(EXESUF
): %.o
93 $(LD
) $(LDFLAGS
) -o
$@
$< $(ELIBS
)
95 tools
/cws2fws
$(EXESUF
): ELIBS
= -lz
98 .config
: $(wildcard $(FFLIBS
:%=$(SRC_PATH
)/lib
%/all*.c
))
99 @
-tput bold
2>/dev
/null
100 @
-printf
'\nWARNING: $(?F) newer than config.h, rerun configure\n\n'
101 @
-tput sgr0
2>/dev
/null
103 SUBDIR_VARS
:= OBJS FFLIBS CLEANFILES DIRS TESTPROGS EXAMPLES SKIPHEADERS \
104 ALTIVEC-OBJS MMX-OBJS NEON-OBJS X86-OBJS YASM-OBJS-FFT YASM-OBJS \
105 HOSTPROGS BUILT_HEADERS TESTOBJS ARCH_HEADERS ARMV6-OBJS TOOLS
113 $(foreach V
,$(SUBDIR_VARS
),$(eval
$(call RESET
,$(V
))))
115 include $(SRC_PATH
)/$(1)/Makefile
116 include $(SRC_PATH
)/library.mak
119 $(foreach D
,$(FFLIBS
),$(eval
$(call DOSUBDIR
,lib
$(D
))))
121 avplay.o
: CFLAGS
+= $(SDL_CFLAGS
)
122 avplay
$(EXESUF
): FF_EXTRALIBS
+= $(SDL_LIBS
)
123 avserver
$(EXESUF
): LDFLAGS
+= $(AVSERVERLDFLAGS
)
125 $(PROGS
): %$(EXESUF
): %.o cmdutils.o
$(FF_DEP_LIBS
)
126 $(LD
) $(LDFLAGS
) -o
$@
$< cmdutils.o
$(FF_EXTRALIBS
)
130 -include $(wildcard tools
/*.d
)
132 VERSION_SH
= $(SRC_PATH
)/version.sh
133 GIT_LOG
= $(SRC_PATH
)/.git
/logs
/HEAD
135 .version
: $(wildcard $(GIT_LOG
)) $(VERSION_SH
) config.mak
139 $(M
)$(VERSION_SH
) $(SRC_PATH
) version.h
$(EXTRA_VERSION
)
142 # force version.sh to run whenever version might have changed
146 install: install-progs install-data
149 install: install-libs install-headers
151 install-libs
: install-libs-yes
154 install-progs-
$(CONFIG_SHARED
): install-libs
156 install-progs
: install-progs-yes
$(PROGS
)
157 $(Q
)mkdir
-p
"$(BINDIR)"
158 $(INSTALL
) -c
-m
755 $(PROGS
) "$(BINDIR)"
160 install-data
: $(DATA_FILES
)
161 $(Q
)mkdir
-p
"$(DATADIR)"
162 $(INSTALL
) -m
644 $(DATA_FILES
) "$(DATADIR)"
164 uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
167 $(RM
) $(addprefix "$(BINDIR)/", $(ALLPROGS
))
170 $(RM
) -r
"$(DATADIR)"
174 $(RM
) $(CLEANSUFFIXES
)
176 $(RM
) $(CLEANSUFFIXES
:%=tools
/%)
179 $(RM
) $(DISTCLEANSUFFIXES
)
180 $(RM
) config.
* .version version.h libavutil
/avconfig.h
183 $(SRC_PATH
)/configure
$(value LIBAV_CONFIGURATION
)
185 include $(SRC_PATH
)/doc
/Makefile
186 include $(SRC_PATH
)/tests
/Makefile
191 # Dummy rule to stop make trying to rebuild removed or renamed headers
195 # Disable suffix rules. Most of the builtin rules are suffix rules,
196 # so this saves some time on slow systems.
199 .PHONY
: all all-yes alltools
*clean config examples
install*
200 .PHONY
: testprogs
uninstall*