$(1)-yes :=
endef
++ifdef CONFIG_RAISE_MAJOR
++RAISE_MAJOR = 100
++else
++RAISE_MAJOR = 0
++endif
++
define DOSUBDIR
$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
SUBDIR := $(1)/
SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD}
-SAMPLES:=${samples:-\$(LIBAV_SAMPLES)}
+SAMPLES:=${samples:-\$(FATE_SAMPLES)}
+NOREDZONE_FLAGS=$noredzone_flags
+LIBFUZZER_PATH=$libfuzzer_path
EOF
- get_version(){
- lcname=lib${1}
- name=$(toupper $lcname)
- file=$source_path/$lcname/version.h
- eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file")
- enabled raise_major && eval ${name}_VERSION_MAJOR=$((${name}_VERSION_MAJOR+100))
- eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
- eval echo "${lcname}_VERSION=\$${name}_VERSION" >> ffbuild/config.mak
- eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> ffbuild/config.mak
- eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> ffbuild/config.mak
- }
-
- map 'get_version $v' $LIBRARY_LIST
-
-map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> avbuild/config.mak' $LIBRARY_LIST
+map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST
print_program_extralibs(){
eval "program_extralibs=\$${1}_extralibs"
print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST
print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST
-test -n "$WARNINGS" && printf "\n$WARNINGS"
-
-# build pkg-config files
+if test -n "$WARNINGS"; then
+ printf "\n%s%s$WARNINGS%s" "$warn_color" "$bold_color" "$reset_color"
+ enabled fatal_warnings && exit 1
+fi
- # build pkg-config files
-lib_version(){
- eval printf "\"lib${1} >= \$LIB$(toupper ${1})_VERSION, \""
-}
++# Settings for pkg-config files
- lib_version(){
- eval printf "\"lib${1}${build_suffix} >= \$LIB$(toupper ${1})_VERSION, \""
- }
-
- pkgconfig_generate(){
- name=$1
- shortname=${name#lib}${build_suffix}
- comment=$2
- version=$3
- libs=$4
- requires=$(map 'lib_version $v' $(eval echo \$${name#lib}_deps))
- requires=${requires%, }
- enabled ${name#lib} || return 0
- mkdir -p $name
- cat <<EOF > $name/$name${build_suffix}.pc
-cat > avbuild/config.sh <<EOF
++cat > ffbuild/config.sh <<EOF
+ # Automatically generated by configure - do not modify!
+ shared=$shared
++build_suffix=$build_suffix
prefix=$prefix
- exec_prefix=\${prefix}
libdir=$libdir
--includedir=$incdir
-
- Name: $name
- Description: $comment
- Version: $version
- Requires: $(enabled shared || echo $requires)
- Requires.private: $(enabled shared && echo $requires)
- Conflicts:
- Libs: -L\${libdir} $(enabled rpath && echo "-Wl,-rpath,\${libdir}") -l${shortname} $(enabled shared || echo $libs)
- Libs.private: $(enabled shared && echo $libs)
- Cflags: -I\${includedir}
++incdir=$incdir
++rpath=$(enabled rpath && echo "-Wl,-rpath,\${libdir}")
+ source_path=${source_path}
+ LIBPREF=${LIBPREF}
+ LIBSUF=${LIBSUF}
+
-requires_avutil="$(map 'lib_version $v' $(echo $avutil_deps))"
-requires_avcodec="$(map 'lib_version $v' $(echo $avcodec_deps))"
-requires_avformat="$(map 'lib_version $v' $(echo $avformat_deps))"
-requires_avdevice="$(map 'lib_version $v' $(echo $avdevice_deps))"
-requires_avfilter="$(map 'lib_version $v' $(echo $avfilter_deps))"
-requires_avresample="$(map 'lib_version $v' $(echo $avresample_deps))"
-requires_swscale="$(map 'lib_version $v' $(echo $swscale_deps))"
-
+ extralibs_avutil="$LIBRT $LIBM"
+ extralibs_avcodec="$extralibs"
+ extralibs_avformat="$extralibs"
+ extralibs_avdevice="$extralibs"
+ extralibs_avfilter="$extralibs"
+ extralibs_avresample="$LIBM"
++extralibs_postproc=""
+ extralibs_swscale="$LIBM"
++extralibs_swresample="$LIBM $LIBSOXR"
EOF
- mkdir -p doc/examples/pc-uninstalled
- includedir=${source_path}
- [ "$includedir" = . ] && includedir="\${pcfiledir}/../../.."
- cat <<EOF > doc/examples/pc-uninstalled/${name}-uninstalled.pc
- prefix=
- exec_prefix=
- libdir=\${pcfiledir}/../../../$name
- includedir=${includedir}
-
- Name: $name
- Description: $comment
- Version: $version
- Requires: $requires
- Conflicts:
- Libs: -L\${libdir} -Wl,-rpath,\${libdir} -l${shortname} $(enabled shared || echo $libs)
- Cflags: -I\${includedir}
- EOF
- }
-
- pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" "$LIBRT $LIBM"
- pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs"
- pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs"
- pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs"
- pkgconfig_generate libavfilter "FFmpeg audio/video filtering library" "$LIBAVFILTER_VERSION" "$extralibs"
- pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" ""
- pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$LIBM"
- pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM"
- pkgconfig_generate libswresample "FFmpeg audio resampling library" "$LIBSWRESAMPLE_VERSION" "$LIBM $LIBSOXR"
+
++for lib in $LIBRARY_LIST; do
++ lib_deps="$(eval echo \$${lib}_deps)"
++ echo ${lib}_deps=\"$lib_deps\" >> ffbuild/config.sh
++done
--- /dev/null
- %.c %.h %.ver: TAG = GEN
+#
+# common bits used by all libraries
+#
+
+DEFAULT_YASMD=.dbg
+
+ifeq ($(DBG),1)
+YASMD=$(DEFAULT_YASMD)
+else
+YASMD=
+endif
+
+ifndef SUBDIR
+
+ifndef V
+Q = @
+ECHO = printf "$(1)\t%s\n" $(2)
+BRIEF = CC CXX OBJCC HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES
+SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM
+
+MSG = $@
+M = @$(call ECHO,$(TAG),$@);
+$(foreach VAR,$(BRIEF), \
+ $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))
+$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))
+$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))
+endif
+
+ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample
+
+# NASM requires -I path terminated with /
+IFLAGS := -I. -I$(SRC_LINK)/
+CPPFLAGS := $(IFLAGS) $(CPPFLAGS)
+CFLAGS += $(ECFLAGS)
+CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+OBJCFLAGS += $(EOBJCFLAGS)
+OBJCCFLAGS = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS)
+ASFLAGS := $(CPPFLAGS) $(ASFLAGS)
+CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS)
+YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm
+
+HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)
+LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)
+
+define COMPILE
+ $(call $(1)DEP,$(1))
+ $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<)
+endef
+
+COMPILE_C = $(call COMPILE,CC)
+COMPILE_CXX = $(call COMPILE,CXX)
+COMPILE_S = $(call COMPILE,AS)
+COMPILE_M = $(call COMPILE,OBJCC)
+COMPILE_HOSTC = $(call COMPILE,HOSTCC)
+
+%.o: %.c
+ $(COMPILE_C)
+
+%.o: %.cpp
+ $(COMPILE_CXX)
+
+%.o: %.m
+ $(COMPILE_M)
+
+%.s: %.c
+ $(CC) $(CCFLAGS) -S -o $@ $<
+
+%.o: %.S
+ $(COMPILE_S)
+
+%_host.o: %.c
+ $(COMPILE_HOSTC)
+
+%$(DEFAULT_YASMD).asm: %.asm
+ $(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.asm=.d)
+ $(YASM) $(YASMFLAGS) -I $(<D)/ -e $< | sed '/^%/d;/^$$/d;' > $@
+
+%.o: %.asm
+ $(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d)
+ $(YASM) $(YASMFLAGS) -I $(<D)/ -o $@ $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<)
+ -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)
+
+%.o: %.rc
+ $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<
+
+%.i: %.c
+ $(CC) $(CCFLAGS) $(CC_E) $<
+
+%.h.c:
+ $(Q)echo '#include "$*.h"' >$@
+
- CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.ho *$(DEFAULT_YASMD).asm
++%.c %.h %.pc %.ver %.version: TAG = GEN
+
+# 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:
+
+# Do not delete intermediate files from chains of implicit rules
+$(OBJS):
+endif
+
+include $(SRC_PATH)/ffbuild/arch.mak
+
+OBJS += $(OBJS-yes)
+SLIBOBJS += $(SLIBOBJS-yes)
+FFLIBS := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS)
+TESTPROGS += $(TESTPROGS-yes)
+
+LDLIBS = $(FFLIBS:%=%$(BUILDSUF))
+FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS)
+
+OBJS := $(sort $(OBJS:%=$(SUBDIR)%))
+SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%))
+TESTOBJS := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o)
+TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF))
+HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o)
+HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))
+TOOLS += $(TOOLS-yes)
+TOOLOBJS := $(TOOLS:%=tools/%.o)
+TOOLS := $(TOOLS:%=tools/%$(EXESUF))
+HEADERS += $(HEADERS-yes)
+
+PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME))
+DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S)))
+STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))
+
+SRC_DIR := $(SRC_PATH)/lib$(NAME)
+ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))
+SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-)
+SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%)
+HOBJS = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o))
+$(HOBJS): CCFLAGS += $(CFLAGS_HEADERS)
+checkheaders: $(HOBJS)
+.SECONDARY: $(HOBJS:.o=.c)
+
+alltools: $(TOOLS)
+
+$(HOSTOBJS): %.o: %.c
+ $(COMPILE_HOSTC)
+
+$(HOSTPROGS): %$(HOSTEXESUF): %.o
+ $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS)
+
+$(OBJS): | $(sort $(dir $(OBJS)))
+$(HOBJS): | $(sort $(dir $(HOBJS)))
+$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
+$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS)))
+$(TESTOBJS): | $(sort $(dir $(TESTOBJS)))
+$(TOOLOBJS): | tools
+
+OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))
+
++CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.version *.ho *$(DEFAULT_YASMD).asm
+DISTCLEANSUFFIXES = *.pc
+LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
+
+define RULES
+clean::
+ $(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS)
+endef
+
+$(eval $(RULES))
+
+-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) $(OBJS:.o=$(DEFAULT_YASMD).d)
--- /dev/null
- all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME)
- all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME)
+include $(SRC_PATH)/ffbuild/common.mak
+
++-include $(SUBDIR)lib$(NAME).version
++
+LIBVERSION := $(lib$(NAME)_VERSION)
+LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR)
+LIBMINOR := $(lib$(NAME)_VERSION_MINOR)
+INCINSTDIR := $(INCDIR)/lib$(NAME)
+
+INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%)
+
++all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) $(SUBDIR)lib$(NAME).pc
++all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) $(SUBDIR)lib$(NAME).pc
+
+LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS)
+$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H
+$(TESTOBJS) $(TESTOBJS:.o=.i): CFLAGS += -Umain
+
+$(SUBDIR)$(LIBNAME): $(OBJS)
+ $(RM) $@
+ $(AR) $(ARFLAGS) $(AR_O) $^
+ $(RANLIB) $@
+
+install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
+
+install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static
+install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared
+
+define RULES
+$(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB))
+$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
+
+$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o
+ $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS)
+
++$(SUBDIR)lib$(NAME).version: $(SUBDIR)version.h | $(SUBDIR)
++ $$(M) $$(SRC_PATH)/ffbuild/libversion.sh $(NAME) $$< $(RAISE_MAJOR) > $$@
++
++$(SUBDIR)lib$(FULLNAME).pc: $(SUBDIR)version.h | $(SUBDIR)
++ $$(M) $$(SRC_PATH)/ffbuild/pkgconfig_generate.sh $(NAME) "$(DESC)"
++
+$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS)
+ $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@
+
+$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
+ $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
+
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
+ $(SLIB_CREATE_DEF_CMD)
+ $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDLIBFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
+ $(SLIB_EXTRA_CMD)
+
+ifdef SUBDIR
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
+endif
+
+clean::
+ $(RM) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
+ $(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(CLEANSUFFIXES:%=$(SUBDIR)tests/%)
+
+distclean:: clean
+ $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) \
+ $(DISTCLEANSUFFIXES:%=$(SUBDIR)tests/%)
+
+install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
+ $(Q)mkdir -p "$(SHLIBDIR)"
+ $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
+ $$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
+ $(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));)
+ $(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)")
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)")
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)")
+
+install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME)
+ $(Q)mkdir -p "$(LIBDIR)"
+ $$(INSTALL) -m 644 $$< "$(LIBDIR)"
+ $(LIB_INSTALL_EXTRA_CMD)
+
+install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS))
+ $(Q)mkdir -p "$(INCINSTDIR)"
+ $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)"
+
+install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc
+ $(Q)mkdir -p "$(PKGCONFIGDIR)"
+ $$(INSTALL) -m 644 $$^ "$(PKGCONFIGDIR)"
+
+uninstall-libs::
+ -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
+ "$(SHLIBDIR)/$(SLIBNAME)" \
+ "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
+ -$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%")
+ -$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%")
+ -$(RM) "$(LIBDIR)/$(LIBNAME)"
+
+uninstall-headers::
+ $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS))
+ $(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc"
+ -rmdir "$(INCINSTDIR)"
+endef
+
+$(eval $(RULES))
+
+$(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME)
+$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME)
+
+testprogs: $(TESTPROGS)
--- /dev/null
--- /dev/null
++toupper(){
++ echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
++}
++
++name=lib$1
++ucname=$(toupper ${name})
++file=$2
++raise_major=$3
++
++eval $(awk "/#define ${ucname}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file")
++eval ${ucname}_VERSION_MAJOR=$((${ucname}_VERSION_MAJOR+${raise_major}))
++eval ${ucname}_VERSION=\$${ucname}_VERSION_MAJOR.\$${ucname}_VERSION_MINOR.\$${ucname}_VERSION_MICRO
++eval echo "${name}_VERSION=\$${ucname}_VERSION"
++eval echo "${name}_VERSION_MAJOR=\$${ucname}_VERSION_MAJOR"
++eval echo "${name}_VERSION_MINOR=\$${ucname}_VERSION_MINOR"
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++. ffbuild/config.sh
++
++if test "$shared" = "yes"; then
++ shared=true
++else
++ shared=false
++fi
++
++shortname=$1
++name=lib${shortname}
++fullname=${name}${build_suffix}
++comment=$2
++libs=$(eval echo \$extralibs_${shortname})
++deps=$(eval echo \$${shortname}_deps)
++
++for dep in $deps; do
++ depname=lib${dep}
++ fulldepname=${depname}${build_suffix}
++ . ${depname}/${depname}.version
++ depversion=$(eval echo \$${depname}_VERSION)
++ requires="$requires ${fulldepname} >= ${depversion}, "
++done
++requires=${requires%, }
++
++version=$(grep ${name}_VERSION= $name/${name}.version | cut -d= -f2)
++
++cat <<EOF > $name/$fullname.pc
++prefix=$prefix
++exec_prefix=\${prefix}
++libdir=$libdir
++includedir=$incdir
++
++Name: $fullname
++Description: $comment
++Version: $version
++Requires: $($shared || echo $requires)
++Requires.private: $($shared && echo $requires)
++Conflicts:
++Libs: -L\${libdir} $rpath -l${fullname#lib} $($shared || echo $libs)
++Libs.private: $($shared && echo $libs)
++Cflags: -I\${includedir}
++EOF
++
++mkdir -p doc/examples/pc-uninstalled
++includedir=${source_path}
++[ "$includedir" = . ] && includedir="\${pcfiledir}/../../.."
++ cat <<EOF > doc/examples/pc-uninstalled/${name}-uninstalled.pc
++prefix=
++exec_prefix=
++libdir=\${pcfiledir}/../../../$name
++includedir=${source_path}
++
++Name: $fullname
++Description: $comment
++Version: $version
++Requires: $requires
++Conflicts:
++Libs: -L\${libdir} -Wl,-rpath,\${libdir} -l${fullname#lib} $($shared || echo $libs)
++Cflags: -I\${includedir}
++EOF
- include $(SUBDIR)../ffbuild/config.mak
-
NAME = avcodec
-DESC = Libav codec library
++DESC = FFmpeg codec library
HEADERS = avcodec.h \
+ avdct.h \
avfft.h \
d3d11va.h \
dirac.h \
- include $(SUBDIR)../ffbuild/config.mak
-
NAME = avdevice
-DESC = Libav device handling library
++DESC = FFmpeg device handling library
HEADERS = avdevice.h \
version.h \
- include $(SUBDIR)../ffbuild/config.mak
-
NAME = avfilter
-DESC = Libav video filtering library
++DESC = FFmpeg audio/video filtering library
HEADERS = avfilter.h \
avfiltergraph.h \
- include $(SUBDIR)../ffbuild/config.mak
-
NAME = avformat
-DESC = Libav container format library
++DESC = FFmpeg container format library
HEADERS = avformat.h \
avio.h \
- include $(SUBDIR)../ffbuild/config.mak
-
NAME = avutil
-DESC = Libav utility library
++DESC = FFmpeg utility library
HEADERS = adler32.h \
aes.h \
--- /dev/null
- include $(SUBDIR)../ffbuild/config.mak
-
+NAME = postproc
++DESC = FFmpeg postprocessing library
+FFLIBS = avutil
+
+HEADERS = postprocess.h \
+ version.h \
+
+OBJS = postprocess.o
+
+# Windows resource file
+SLIBOBJS-$(HAVE_GNU_WINDRES) += postprocres.o
--- /dev/null
- include $(SUBDIR)../ffbuild/config.mak
-
+NAME = swresample
++DESC = FFmpeg audio resampling library
+FFLIBS = avutil
+
+HEADERS = swresample.h \
+ version.h \
+
+OBJS = audioconvert.o \
+ dither.o \
+ options.o \
+ rematrix.o \
+ resample.o \
+ resample_dsp.o \
+ swresample.o \
+ swresample_frame.o \
+
+OBJS-$(CONFIG_LIBSOXR) += soxr_resample.o
+OBJS-$(CONFIG_SHARED) += log2_tab.o
+
+# Windows resource file
+SLIBOBJS-$(HAVE_GNU_WINDRES) += swresampleres.o
+
+TESTPROGS = swresample
- include $(SUBDIR)../ffbuild/config.mak
-
NAME = swscale
-DESC = Libav image rescaling library
++DESC = FFmpeg image rescaling library
HEADERS = swscale.h \
version.h \