X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=46996db35b5a7b46ee2ca5540bbb4ca3332c440a;hb=b58412f10640489ed9fe929a0f2ca116d9d19e53;hp=a17bc8445ef2fe9f5602285f15fbe02b0dc4d84c;hpb=f49299967b08d7b85035c47332c2ba388a43042b;p=ffmpeg diff --git a/configure b/configure index a17bc8445ef..46996db35b5 100755 --- a/configure +++ b/configure @@ -70,8 +70,10 @@ show_help(){ echo " and ffmpeg will be under GPL [default=no]" echo " --enable-nonfree allow use of nonfree code, the resulting libav*" echo " and ffmpeg will be unredistributable [default=no]" - echo " --enable-pp enable GPLed postprocessing support [default=no]" - echo " --enable-swscaler software scaler support [default=no]" + echo " --enable-postproc enable GPLed postprocessing support [default=no]" + echo " --enable-swscale software scaler support [default=no]" + echo " --enable-avfilter video filter support (replaces vhook) [default=no]" + echo " --enable-avfilter-lavf video filters dependant on avformat [default=no]" echo " --enable-beosthreads use BeOS threads [default=no]" echo " --enable-os2threads use OS/2 threads [default=no]" echo " --enable-pthreads use pthreads [default=no]" @@ -215,13 +217,13 @@ EOF exit 1 } -# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z" +# Avoid locale weirdness, besides we really just want to translate ASCII. toupper(){ - echo "$@" | tr '[a-z]' '[A-Z]' + echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ } tolower(){ - echo "$@" | tr '[A-Z]' '[a-z]' + echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz } set_all(){ @@ -615,6 +617,7 @@ COMPONENT_LIST=" decoders demuxers encoders + filters indevs muxers outdevs @@ -624,6 +627,8 @@ COMPONENT_LIST=" CONFIG_LIST=" $COMPONENT_LIST + avfilter + avfilter_lavf avisynth beos_netserver ffmpeg @@ -653,10 +658,10 @@ CONFIG_LIST=" mpegaudio_hp network nonfree + postproc powerpc_perf - pp small - swscaler + swscale vhook x11grab zlib @@ -694,6 +699,7 @@ ARCH_EXT_LIST=' iwmmxt mmi mmx + mmx2 ssse3 vis ' @@ -703,6 +709,7 @@ HAVE_LIST=" $THREADS_LIST altivec_h arpa_inet_h + bswap byteswap_h closesocket cmov @@ -727,6 +734,7 @@ HAVE_LIST=" getrusage imlib2 inet_aton + inline_asm libdc1394_1 libdc1394_2 llrint @@ -745,7 +753,8 @@ HAVE_LIST=" sdl_video_size socklen_t soundcard_h - sys_poll_h + poll_h + sys_mman_h sys_select_h sys_soundcard_h termios_h @@ -773,6 +782,7 @@ armv6_deps="armv4l" iwmmxt_deps="armv4l" mmi_deps="mips" mmx_deps="x86" +mmx2_deps="x86" ssse3_deps="x86" vis_deps="sparc" @@ -781,22 +791,9 @@ ac3_decoder_deps="gpl" dxa_decoder_deps="zlib" flashsv_decoder_deps="zlib" flashsv_encoder_deps="zlib" -flv_decoder_deps="h263_decoder" -h263_decoder_deps="h263_parser mpeg4video_parser" -h263i_decoder_deps="h263_decoder" -h264_decoder_deps="h264_parser" mpeg_xvmc_decoder_deps="xvmc" -mpeg4_decoder_deps="h263_decoder" -msmpeg4v1_decoder_deps="h263_decoder" -msmpeg4v2_decoder_deps="h263_decoder" -msmpeg4v3_decoder_deps="h263_decoder" png_decoder_deps="zlib" png_encoder_deps="zlib" -svq3_decoder_deps="h264_parser" -vc1_decoder_deps="h263_decoder" -wmv1_decoder_deps="h263_decoder" -wmv2_decoder_deps="h263_decoder" -wmv3_decoder_deps="h263_decoder" zmbv_decoder_deps="zlib" zmbv_encoder_deps="zlib" @@ -842,6 +839,8 @@ rtsp_demuxer_deps="sdp_demuxer" sdp_demuxer_deps="rtp_protocol mpegts_demuxer" v4l2_demuxer_deps="linux_videodev2_h" v4l_demuxer_deps="linux_videodev_h" +vfwcap_demuxer_deps="capCreateCaptureWindow" +vfwcap_demuxer_extralibs="-lvfw32" x11_grab_device_demuxer_deps="x11grab XShmCreateImage" x11_grab_device_demuxer_extralibs="-lX11 -lXext" @@ -851,6 +850,9 @@ rtp_protocol_deps="udp_protocol" tcp_protocol_deps="network" udp_protocol_deps="network" +# filters +movie_filter_deps="avfilter_lavf" + # programs ffplay_deps="sdl" ffserver_deps="ffm_muxer rtp_protocol rtsp_demuxer" @@ -882,13 +884,14 @@ logfile="config.err" PREFIX="/usr/local" libdir='$(PREFIX)/lib' shlibdir="$libdir" -incdir='$(PREFIX)/include/ffmpeg' +incdir='$(PREFIX)/include' mandir='$(PREFIX)/share/man' bindir='$(PREFIX)/bin' # toolchain cc="gcc" ar="ar" +nm="nm" ranlib="ranlib" make="make" strip="strip" @@ -924,7 +927,6 @@ SHFLAGS='-shared -Wl,-soname,$@' VHOOKSHFLAGS='$(SHFLAGS)' LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' FFSERVERLDFLAGS=-Wl,-E -LDCONFIG="ldconfig" LIBPREF="lib" LIBSUF=".a" FULLNAME='$(NAME)$(BUILDSUF)' @@ -936,6 +938,10 @@ SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' +# gcc stupidly only outputs the basename of targets with -MM +DEPEND_CMD='$(CC) -MM $(CFLAGS) $(filter-out %.h,$^) | sed "s,[0-9a-z._-]*: \($(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"' +VHOOK_DEPEND_CMD='$(CC) -MM $(VHOOKCFLAGS) $(filter-out %.h,$^) | sed "s,^\([a-z]\),vhook/\\1,"' + # find source path source_path="`dirname \"$0\"`" enable source_path_used @@ -950,15 +956,23 @@ fi FFMPEG_CONFIGURATION="$@" -ENCODER_LIST=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"` -DECODER_LIST=`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"` -PARSER_LIST=`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' "$source_path/libavcodec/allcodecs.c"` -BSF_LIST=`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' "$source_path/libavcodec/allcodecs.c"` -MUXER_LIST=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavformat/allformats.c"` -DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavformat/allformats.c"` -OUTDEV_LIST=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavdevice/alldevices.c"` -INDEV_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavdevice/alldevices.c"` -PROTOCOL_LIST=`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' "$source_path/libavformat/allformats.c"` +find_things(){ + thing=$1 + pattern=$2 + file=$source_path/$3 + sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file" +} + +ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c) +DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c) +PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c) +BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c) +MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c) +DEMUXER_LIST=$(find_things demuxer DEMUX libavformat/allformats.c) +OUTDEV_LIST=$(find_things muxer _MUX libavdevice/alldevices.c) +INDEV_LIST=$(find_things demuxer DEMUX libavdevice/alldevices.c) +PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c) +FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c) enable $ARCH_EXT_LIST \ $DECODER_LIST \ @@ -967,6 +981,7 @@ enable $ARCH_EXT_LIST \ $BSF_LIST \ $DEMUXER_LIST \ $MUXER_LIST \ + $FILTER_LIST \ $PROTOCOL_LIST \ $INDEV_LIST \ $OUTDEV_LIST \ @@ -1029,33 +1044,26 @@ for opt do ;; --disable-strip) disable dostrip ;; - --disable-encoders) disable $ENCODER_LIST - ;; - --disable-decoders) disable $DECODER_LIST - ;; - --disable-muxers) disable $MUXER_LIST - ;; - --disable-demuxers) disable $DEMUXER_LIST - ;; - --disable-parsers) disable $PARSER_LIST - ;; - --disable-bsfs) disable $BSF_LIST - ;; - --disable-protocols) disable $PROTOCOL_LIST - ;; --disable-devices) disable $INDEV_LIST $OUTDEV_LIST ;; + --enable-debug=*) debuglevel="$optval" + ;; --enable-*=*|--disable-*=*) eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'` case "$thing" in - encoder|decoder|muxer|demuxer|parser|bsf|protocol) $action ${optval}_${thing} ;; + encoder|decoder|muxer|demuxer|parser|bsf|protocol|filter) $action ${optval}_${thing} ;; *) die_unknown "$opt" ;; esac ;; --enable-?*|--disable-?*) eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` - echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt - $action $option + if is_in $option $COMPONENT_LIST; then + eval $action \$$(toupper ${option%s})_LIST + elif is_in $option $CMDLINE_SELECT; then + $action $option + else + die_unknown $opt + fi ;; --list-*) NAME="${opt#--list-}" @@ -1081,7 +1089,7 @@ case "$arch" in enable fast_unaligned canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`" if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then - if [ -z "`echo $CFLAGS | grep -- -m32`" ]; then + if ! echo $CFLAGS | grep -q -- -m32; then arch="x86_64" enable fast_64bit fi @@ -1160,14 +1168,13 @@ case $targetos in add_cflags "-fno-expensive-optimizations" ;; esac - LDCONFIG="echo ignoring ldconfig" SHFLAGS=-nostart # enable BeOS things enable audio_beos # no need for libm, but the inet stuff # Check for BONE # XXX: actually should check for NOT net_server - if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then + if echo $BEINCLUDES | grep -q 'headers/be/bone'; then network_extralibs="-lbind -lsocket" else enable beos_netserver @@ -1185,7 +1192,6 @@ case $targetos in openbsd) disable need_memalign LIBOBJFLAGS='$(PIC)' - LDCONFIG='ldconfig -m $(SHLIBDIR)' SHFLAGS='-shared' SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF).$(LIBVERSION)' SLIBNAME_WITH_VERSION='$(SLIBNAME)' @@ -1202,7 +1208,7 @@ case $targetos in ;; darwin) disable need_memalign - SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(SPPVERSION),-compatibility_version,$(SPPVERSION) -Wl,-read_only_relocs,suppress' + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress' VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@' strip="strip -x" FFLDFLAGS="-Wl,-dynamic,-search_paths_first" @@ -1216,7 +1222,7 @@ case $targetos in shlibdir="$bindir" VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil' VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)' - if enabled swscaler; then + if enabled swscale; then VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale" VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)" fi @@ -1236,7 +1242,7 @@ case $targetos in shlibdir="$bindir" VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil' VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)' - if enabled swscaler; then + if enabled swscale; then VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale" VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)" fi @@ -1248,7 +1254,6 @@ case $targetos in SHFLAGS='-shared -Wl,--enable-auto-image-base' ;; *-dos|freedos|opendos) - enable memalign_hack disable ffplay ffserver vhook disable $INDEV_LIST $OUTDEV_LIST network_extralibs="-lsocket" @@ -1287,7 +1292,10 @@ case $targetos in emximp -o $(LIBPREF)$(NAME)_dll.lib $(NAME).def;' SLIB_INSTALL_EXTRA_CMD='install -m 644 $(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"' SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib' - vhook="no" + disable vhook + ;; + interix) + disable vhook ;; *) @@ -1311,6 +1319,7 @@ LDFLAGS="$FFLDFLAGS $LDFLAGS" test -n "$cross_prefix" && enable cross_compile cc="${cross_prefix}${cc}" ar="${cross_prefix}${ar}" +nm="${cross_prefix}${nm}" ranlib="${cross_prefix}${ranlib}" strip="${cross_prefix}${strip}" @@ -1349,13 +1358,13 @@ if ! enabled gpl; then shift enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified." } - die_gpl_disabled "The Postprocessing code" pp + die_gpl_disabled "The Postprocessing code" postproc die_gpl_disabled "liba52" liba52 die_gpl_disabled "libx264" libx264 die_gpl_disabled "libxvidcore" libxvid die_gpl_disabled "FAAD2" libfaad2 die_gpl_disabled "The X11 grabber" x11grab - die_gpl_disabled "The software scaler" swscaler + die_gpl_disabled "The software scaler" swscale fi if ! enabled nonfree && enabled_any libamr_nb libamr_wb; then @@ -1368,13 +1377,13 @@ test -z "$need_memalign" && need_memalign="$mmx" #Darwin CC versions if test $targetos = darwin; then - if test -n "`$cc -v 2>&1 | grep xlc`"; then + if $cc -v 2>&1 | grep -q xlc; then add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto" else - add_cflags "-no-cpp-precomp -pipe" + add_cflags "-pipe" check_cflags "-force_cpusubtype_ALL" check_cflags "-Wno-sign-compare" - disabled shared && add_cflags -mdynamic-no-pic + enabled shared || add_cflags -mdynamic-no-pic fi fi @@ -1440,10 +1449,6 @@ if test $cpu != "generic"; then sparc64) add_cflags "-mcpu=v9" ;; - bf*) #bf531 bf532 bf533 bf561 bf5xx all get this config - add_cflags "-mfdpic" - add_ldflags "-mfdpic" - ;; arm*) add_cflags "-mcpu=$cpu" ;; @@ -1491,6 +1496,14 @@ if test "$?" != 0; then die "C compiler test failed." fi +check_cc <&1 | grep version | grep Apple`" && - add_cflags "-faltivec" || - add_cflags "-maltivec -mabi=altivec" - - check_header altivec.h + check_cflags -maltivec -mabi=altivec && + check_header altivec.h || + check_cflags -faltivec # check if our compiler supports Motorola AltiVec C API enabled altivec_h && @@ -1561,7 +1575,7 @@ enabled vis && add_cflags "-mcpu=ultrasparc -mtune=ultrasparc" check_cc <&1 | grep xlc`"; then + if $cc -v 2>&1 | grep -q xlc; then add_cflags "-O5" add_ldflags "-O5" else add_cflags "-O3" fi fi +check_cflags -fno-math-errno +check_cflags -fno-signed-zeros # PIC flags for shared library objects where they are needed if enabled shared; then @@ -1832,6 +1853,7 @@ enabled_any $ENCODER_LIST && enable encoders enabled_any $BSF_LIST && enable bsfs enabled_any $DEMUXER_LIST && enable demuxers enabled_any $MUXER_LIST && enable muxers +enabled_any $FILTER_LIST && enable filters enabled_any $INDEV_LIST && enable demuxers enabled_any $OUTDEV_LIST && enable muxers enabled_any $PROTOCOL_LIST && enable protocols @@ -1846,6 +1868,7 @@ check_deps $CONFIG_LIST \ $BSF_LIST \ $DEMUXER_LIST \ $MUXER_LIST \ + $FILTER_LIST \ $INDEV_LIST \ $OUTDEV_LIST \ $PROTOCOL_LIST \ @@ -1889,8 +1912,10 @@ echo "strip symbols ${dostrip-no}" echo "optimizations ${optimizations-no}" echo "static ${static-no}" echo "shared ${shared-no}" -echo "postprocessing support ${pp-no}" -echo "software scaler enabled ${swscaler-no}" +echo "postprocessing support ${postproc-no}" +echo "software scaler enabled ${swscale-no}" +echo "new filter support ${avfilter-no}" +echo "filters using lavformat ${avfilter_lavf-no}" echo "video hooking ${vhook-no}" if enabled vhook; then echo "Imlib2 support ${imlib2-no}" @@ -1923,17 +1948,15 @@ echo "libvorbis enabled ${libvorbis-no}" echo "x264 enabled ${libx264-no}" echo "XviD enabled ${libxvid-no}" echo "zlib enabled ${zlib-no}" +echo -for type in decoder encoder parser demuxer muxer protocol bsf indev outdev; do +for type in decoder encoder parser demuxer muxer protocol filter bsf indev outdev; do echo "Enabled ${type}s:" - ucname="\$`toupper $type`_LIST" - list="`eval echo $ucname`" - partlist="" + eval list=\$$(toupper $type)_LIST for part in $list; do - enabled $part && partlist="$partlist $part" - done - partlist=`echo $partlist | sed s/_$type//g | tr ' ' '\n' | sort` - echo $partlist + enabled $part && echo ${part%_*} + done | sort | pr -3 -t + echo done enabled nonfree && @@ -1961,7 +1984,6 @@ echo "MAKE=$make" >> config.mak echo "CC=$cc" >> config.mak echo "AR=$ar" >> config.mak echo "RANLIB=$ranlib" >> config.mak -echo "LDCONFIG=$LDCONFIG" >> config.mak echo "LN_S=$ln_s" >> config.mak enabled dostrip && echo "STRIP=$strip" >> config.mak || @@ -1984,14 +2006,13 @@ echo "LIBNAME=$LIBNAME" >> config.mak echo "SLIBPREF=$SLIBPREF" >> config.mak echo "SLIBSUF=$SLIBSUF" >> config.mak echo "EXESUF=$EXESUF" >> config.mak +echo "DEPEND_CMD=$DEPEND_CMD" >> config.mak +echo "VHOOK_DEPEND_CMD=$VHOOK_DEPEND_CMD" >> config.mak if enabled bigendian; then echo "WORDS_BIGENDIAN=yes" >> config.mak echo "#define WORDS_BIGENDIAN 1" >> $TMPH fi -if enabled mmx; then - echo "#define __CPU__ 586" >> $TMPH -fi if enabled sdl; then echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak @@ -2001,30 +2022,27 @@ if enabled texi2html; then echo "BUILD_DOC=yes" >> config.mak fi -sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'` -pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'` -lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'` -lavd_version=`grep '#define LIBAVDEVICE_VERSION ' "$source_path/libavdevice/avdevice.h" | sed 's/[^0-9\.]//g'` -lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'` -lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'` - +get_version(){ + name=$1 + file=$source_path/$2 + eval $(grep "#define ${name}_VERSION_M" "$file" | awk '{ print $2"="$3 }') + eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO + lcname=$(tolower $name) + eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak + eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak +} +get_version LIBSWSCALE libswscale/swscale.h +get_version LIBPOSTPROC libpostproc/postprocess.h +get_version LIBAVCODEC libavcodec/avcodec.h +get_version LIBAVDEVICE libavdevice/avdevice.h +get_version LIBAVFORMAT libavformat/avformat.h +get_version LIBAVUTIL libavutil/avutil.h +get_version LIBAVFILTER libavfilter/avfilter.h if enabled shared; then echo "BUILD_SHARED=yes" >> config.mak echo "PIC=-fPIC -DPIC" >> config.mak - echo "SPPMAJOR=${pp_version%%.*}" >> config.mak - echo "SPPVERSION=$pp_version" >> config.mak - echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak - echo "LAVCVERSION=$lavc_version" >> config.mak - echo "LAVDMAJOR=${lavd_version%%.*}" >> config.mak - echo "LAVDVERSION=$lavd_version" >> config.mak - echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak - echo "LAVFVERSION=$lavf_version" >> config.mak - echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak - echo "LAVUVERSION=$lavu_version" >> config.mak - echo "SWSMAJOR=${sws_version%%.*}" >> config.mak - echo "SWSVERSION=$sws_version" >> config.mak echo "SLIBNAME=${SLIBNAME}" >> config.mak echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak @@ -2045,6 +2063,7 @@ print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \ $BSF_LIST \ $DEMUXER_LIST \ $MUXER_LIST \ + $FILTER_LIST \ $PROTOCOL_LIST \ $INDEV_LIST \ $OUTDEV_LIST \ @@ -2064,10 +2083,11 @@ enabled asmalign_pot && printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH || printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH +echo "#define EXTERN_PREFIX \"${extern_prefix}\"" >> $TMPH echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH -# Do not overwrite config.h if unchanged to avoid superfluous rebuilds. +# Do not overwrite an unchanged config.h to avoid superfluous rebuilds. cmp -s $TMPH config.h && echo "config.h is unchanged" || mv -f $TMPH config.h @@ -2088,6 +2108,7 @@ if enabled source_path_used; then libavcodec/sh4 \ libavcodec/sparc \ libavdevice \ + libavfilter \ libavformat \ libavutil \ libpostproc \ @@ -2102,6 +2123,7 @@ if enabled source_path_used; then doc/texi2pod.pl \ libavcodec/Makefile \ libavdevice/Makefile \ + libavfilter/Makefile \ libavformat/Makefile \ libavutil/Makefile \ libpostproc/Makefile \ @@ -2125,7 +2147,6 @@ comment=$2 version=$3 libs=$4 requires=$5 -include=$6 cat <$name.pc prefix=$PREFIX exec_prefix=\${prefix} @@ -2138,7 +2159,7 @@ Version: $version Requires: $requires Conflicts: Libs: -L\${libdir} $libs -Cflags: -I\${includedir}/$include +Cflags: -I\${includedir} EOF } @@ -2153,7 +2174,7 @@ cat <$name-uninstalled.pc prefix= exec_prefix= libdir=\${pcfiledir}/$name -includedir=\${pcfiledir}/$name +includedir=\${pcfiledir} Name: $name Description: $comment @@ -2165,28 +2186,33 @@ Cflags: -I\${includedir} EOF } -pkgconfig_generate libavutil "FFmpeg utility library" "$lavu_version" -lavutil "" ffmpeg -pkgconfig_generate_uninstalled libavutil "FFmpeg utility library" "$lavu_version" +pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" -lavutil "" +pkgconfig_generate_uninstalled libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" -pkgconfig_generate libavcodec "FFmpeg codec library" "$lavc_version" "-lavcodec $extralibs" "$pkg_requires libavutil = $lavu_version" ffmpeg -pkgconfig_generate_uninstalled libavcodec "FFmpeg codec library" "$lavc_version" "$extralibs" "$pkg_requires libavutil = $lavu_version" +pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "-lavcodec $extralibs" "$pkg_requires libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate_uninstalled libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "$pkg_requires libavutil = $LIBAVUTIL_VERSION" -pkgconfig_generate libavformat "FFmpeg container format library" "$lavf_version" "-lavformat $extralibs" "$pkg_requires libavcodec = $lavc_version" ffmpeg -pkgconfig_generate_uninstalled libavformat "FFmpeg container format library" "$lavf_version" "$extralibs" "$pkg_requires libavcodec = $lavc_version" +pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "-lavformat $extralibs" "$pkg_requires libavcodec = $LIBAVCODEC_VERSION" +pkgconfig_generate_uninstalled libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "$pkg_requires libavcodec = $LIBAVCODEC_VERSION" -pkgconfig_generate libavdevice "FFmpeg device handling library" "$lavd_version" "-lavdevice $extralibs" "$pkg_requires libavformat = $lavf_version" ffmpeg -pkgconfig_generate_uninstalled libavdevice "FFmpeg device handling library" "$lavd_version" "$extralibs" "$pkg_requires libavformat = $lavf_version" -if enabled pp; then - pkgconfig_generate libpostproc "FFmpeg post processing library" "$pp_version" -lpostproc "" postproc - pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$pp_version" +pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "-lavdevice $extralibs" "$pkg_requires libavformat = $LIBAVFORMAT_VERSION" +pkgconfig_generate_uninstalled libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "$pkg_requires libavformat = $LIBAVFORMAT_VERSION" +if enabled postproc; then + pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION" -lpostproc "" + pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION" fi -if enabled swscaler; then - pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" -lswscale "libavutil = $lavu_version" ffmpeg - pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "libavutil = $lavu_version" +if enabled swscale; then + pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" -lswscale "libavutil = $LIBAVUTIL_VERSION" + pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION" else - pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" ffmpeg - pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" + pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "$pkg_requires libavcodec = $LIBAVCODEC_VERSION" + pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "$pkg_requires libavcodec = $LIBAVCODEC_VERSION" apply libswscale.pc sed s/^Libs:.*$/Libs:/ apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/ fi + +if enabled avfilter; then + pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "-lavfilter $extralibs" "$pkg_requires libavutil = $LIBAVUTIL_VERSION" ffmpeg + pkgconfig_generate_uninstalled libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$pkg_requires libavutil = $LIBAVUTIL_VERSION" +fi