X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=5c09691c45eddcc82aa372dc2e660197f803fc26;hb=bebfc16a31c34de59e97ebc5bd58c7c31c4b191c;hp=617729543a186cdc2965cd52738a43f877d28e26;hpb=d6773f563db51b2e941c4e9806ac2601211ad33c;p=ffmpeg diff --git a/configure b/configure index 617729543a1..5c09691c45e 100755 --- a/configure +++ b/configure @@ -56,11 +56,12 @@ show_help(){ echo echo "Standard options:" echo " --help print this message" - echo " --log[=FILE|yes|no] log tests and output to FILE [config.err]" - echo " --prefix=PREFIX install in PREFIX [$PREFIX]" + echo " --logfile=FILE log tests and output to FILE [config.err]" + echo " --disable-logging do not log configure debug information" + echo " --prefix=PREFIX install in PREFIX [$prefix]" echo " --libdir=DIR install libs in DIR [PREFIX/lib]" echo " --shlibdir=DIR install shared libs in DIR [PREFIX/lib]" - echo " --incdir=DIR install includes in DIR [PREFIX/include/ffmpeg]" + echo " --incdir=DIR install includes in DIR [PREFIX/include]" echo " --mandir=DIR install man page in DIR [PREFIX/share/man]" echo " --enable-static build static libraries [default=yes]" echo " --disable-static do not build static libraries [default=no]" @@ -70,8 +71,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]" @@ -79,7 +82,7 @@ show_help(){ echo " --enable-x11grab enable X11 grabbing [default=no]" echo echo "External library support:" - echo " --enable-sunmlib use Sun medialib [default=no]" + echo " --enable-mlib use Sun medialib [default=no]" echo " --enable-liba52 enable GPLed liba52 support [default=no]" echo " --enable-liba52bin open liba52.so.0 at runtime [default=no]" echo " --enable-avisynth allow reading AVISynth script files [default=no]" @@ -104,10 +107,9 @@ show_help(){ echo "Advanced options (experts only):" echo " --source-path=PATH path to source code [$source_path]" echo " --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]" - echo " --cross-compile assume a cross-compiler is used" - echo " --target-os=OS compiler targets OS [$targetos]" + echo " --enable-cross-compile assume a cross-compiler is used" + echo " --target-os=OS compiler targets OS [$target_os]" echo " --cc=CC use C compiler CC [$cc]" - echo " --make=MAKE use specified make [$make]" echo " --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]" echo " --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]" echo " --extra-libs=ELIBS add ELIBS [$ELIBS]" @@ -118,6 +120,8 @@ show_help(){ echo " --enable-powerpc-perf enable performance report on PPC" echo " (requires enabling PMC)" echo " --disable-mmx disable MMX usage" + echo " --disable-mmx2 disable MMX2 usage" + echo " --disable-ssse3 disable SSSE3 usage" echo " --disable-armv5te disable armv5te usage" echo " --disable-armv6 disable armv6 usage" echo " --disable-iwmmxt disable iwmmxt usage" @@ -172,7 +176,7 @@ show_help(){ echo " --enable-gprof enable profiling with gprof [$gprof]" echo " --disable-optimizations disable compiler optimizations" echo " --enable-extra-warnings enable more compiler warnings" - echo " --disable-strip disable stripping of executables and shared libraries" + echo " --disable-stripping disable stripping of executables and shared libraries" echo "" echo "NOTE: Object files are built at the place where configure is launched." exit 1 @@ -200,28 +204,28 @@ If you think configure made a mistake, make sure you are using the latest version from SVN. If the latest version fails, report the problem to the ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net. EOF - if enabled logging; then + if disabled logging; then cat </dev/null); then + if echo $BEINCLUDES | grep -q 'headers/be/bone'; then network_extralibs="-lbind -lsocket" else enable beos_netserver @@ -1175,7 +1074,7 @@ case $targetos in fi ;; sunos) FFSERVERLDFLAGS="" - SHFLAGS='-shared -Wl,-h,$@' + SHFLAGS='-shared -Wl,-h,$$(@F)' network_extralibs="-lsocket -lnsl" ;; netbsd) @@ -1185,7 +1084,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,8 +1100,8 @@ 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' - VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@' + 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/$$(@F)' strip="strip -x" FFLDFLAGS="-Wl,-dynamic,-search_paths_first" SLIBSUF=".dylib" @@ -1212,11 +1110,11 @@ case $targetos in FFSERVERLDFLAGS=-Wl,-bind_at_load ;; mingw32*) - targetos=mingw32 + target_os=mingw32 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 @@ -1226,17 +1124,17 @@ case $targetos in EXESUF=".exe" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_EXTRA_CMD='-lib /machine:i386 /def:$(@:$(SLIBSUF)=.def)' - SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"' + SLIB_EXTRA_CMD='-lib /machine:i386 /def:$$(@:$(SLIBSUF)=.def)' + SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"' SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"' - SHFLAGS='-shared -Wl,--output-def,$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' + SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' ;; cygwin*) - targetos=cygwin + target_os=cygwin 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 +1146,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" @@ -1259,58 +1156,142 @@ case $targetos in enable dv1394 ;; irix*) - targetos=irix + target_os=irix ranlib="echo ignoring ranlib" ;; os/2*) - ar="emxomfar -p256" - ranlib="echo ignoring ranlib" strip="lxlite" ln_s="cp -f" - add_cflags "-Zomf" EXESUF=".exe" FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap" - SHFLAGS='$(NAME).def -Zdll -Zomf' + SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' FFSERVERLDFLAGS="" - LIBSUF="_s.lib" + LIBSUF="_s.a" SLIBPREF="" SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' - SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(NAME).def; \ - echo PROTMODE >> $(NAME).def; \ - echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(NAME).def; \ - echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(NAME).def; \ - echo EXPORTS >> $(NAME).def; \ - emxexp -o $(OBJS) >> $(NAME).def' - SLIB_EXTRA_CMD='emximp -o $(LIBPREF)$(NAME)_dll.a $(NAME).def; \ - 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_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \ + echo PROTMODE >> $(SUBDIR)$(NAME).def; \ + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \ + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \ + echo EXPORTS >> $(SUBDIR)$(NAME).def; \ + emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def' + SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \ + emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;' + SLIB_INSTALL_EXTRA_CMD='install -m 644 $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(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 ;; *) - targetos="${targetos}-UNKNOWN" + target_os="${target_os}-UNKNOWN" ;; esac -add_extralibs $osextralibs - -if ! disabled logging ; then - enabled logging || logfile="$logging" - echo "# $0 $@" >$logfile - set >>$logfile +# set temporary file name +if test ! -z "$TMPDIR" ; then + TMPDIR1="${TMPDIR}" +elif test ! -z "$TEMPDIR" ; then + TMPDIR1="${TEMPDIR}" else - logfile=/dev/null + TMPDIR1="/tmp" fi +TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c" +TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}" +TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" +TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" +TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" +TMPSH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh" + + +add_extralibs $osextralibs + +disabled logging && logfile=/dev/null + +echo "# $0 $@" >$logfile +set >>$logfile + +case "$arch" in + i386|i486|i586|i686|i86pc|BePC) + arch="x86_32" + enable fast_unaligned + ;; + x86_64|amd64) + arch="x86_32" + enable fast_unaligned + check_cc <&1 | grep xlc`"; then +if test $target_os = darwin; 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 +1421,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" ;; @@ -1453,20 +1430,12 @@ if test $cpu != "generic"; then esac fi -gnu_make(){ - $1 --version 2>&1 | grep -q GNU -} - -if ! gnu_make $make; then - gnu_make gmake && make=gmake || die "GNU make not found." -fi - # make sure we can execute files in $TMPDIR -cat >$TMPE 2>>$logfile <$TMPSH 2>>$logfile <>$logfile 2>&1 -if ! $TMPE >>$logfile 2>&1; then +chmod +x $TMPSH >>$logfile 2>&1 +if ! $TMPSH >>$logfile 2>&1; then cat <&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 && @@ -1548,6 +1524,8 @@ int main(void) { EOF fi +# We have to check if pld is a nop and disable it. +enabled armv4l && check_asm pld '"pld [r0]"' enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"' enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"' enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"' @@ -1561,7 +1539,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 @@ -1831,6 +1817,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 @@ -1845,6 +1832,7 @@ check_deps $CONFIG_LIST \ $BSF_LIST \ $DEMUXER_LIST \ $MUXER_LIST \ + $FILTER_LIST \ $INDEV_LIST \ $OUTDEV_LIST \ $PROTOCOL_LIST \ @@ -1853,14 +1841,13 @@ enabled libdc1394 && append pkg_requires "libraw1394" enabled libtheora && append pkg_requires "theora" enabled libvorbis && append pkg_requires "vorbisenc" -echo "install prefix $PREFIX" +echo "install prefix $prefix" echo "source path $source_path" echo "C compiler $cc" -echo "make $make" echo ".align is power-of-two $asmalign_pot" echo "ARCH $arch ($cpu)" -if test "$BUILDSUF" != ""; then - echo "build suffix $BUILDSUF" +if test "$build_suffix" != ""; then + echo "build suffix $build_suffix" fi echo "big-endian ${bigendian-no}" if test $arch = "x86_32" -o $arch = "x86_64"; then @@ -1884,12 +1871,14 @@ if test $arch = "powerpc"; then fi echo "gprof enabled ${gprof-no}" echo "debug symbols ${debug-no}" -echo "strip symbols ${dostrip-no}" +echo "strip symbols ${stripping-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}" @@ -1922,17 +1911,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 && @@ -1949,20 +1936,18 @@ echo "#ifndef FFMPEG_CONFIG_H" >> $TMPH echo "#define FFMPEG_CONFIG_H" >> $TMPH echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH -echo "PREFIX=$PREFIX" >> config.mak +echo "PREFIX=$prefix" >> config.mak echo "prefix=\$(DESTDIR)\$(PREFIX)" >> config.mak echo "LIBDIR=\$(DESTDIR)$libdir" >> config.mak echo "SHLIBDIR=\$(DESTDIR)$shlibdir" >> config.mak echo "INCDIR=\$(DESTDIR)$incdir" >> config.mak echo "BINDIR=\$(DESTDIR)$bindir" >> config.mak echo "MANDIR=\$(DESTDIR)$mandir" >> config.mak -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 && +enabled stripping && echo "STRIP=$strip" >> config.mak || echo "STRIP=echo ignoring strip" >> config.mak @@ -1975,7 +1960,7 @@ echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak echo "BUILD_STATIC=$static" >> config.mak -echo "BUILDSUF=$BUILDSUF" >> config.mak +echo "BUILDSUF=$build_suffix" >> config.mak echo "FULLNAME=$FULLNAME" >> config.mak echo "LIBPREF=$LIBPREF" >> config.mak echo "LIBSUF=$LIBSUF" >> config.mak @@ -1983,14 +1968,12 @@ 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 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 @@ -2000,30 +1983,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 @@ -2044,6 +2024,7 @@ print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \ $BSF_LIST \ $DEMUXER_LIST \ $MUXER_LIST \ + $FILTER_LIST \ $PROTOCOL_LIST \ $INDEV_LIST \ $OUTDEV_LIST \ @@ -2063,15 +2044,16 @@ 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 -rm -f $TMPO $TMPC $TMPE $TMPS $TMPH +rm -f $TMPC $TMPE $TMPH $TMPO $TMPS $TMPSH # build tree in object directory if source path is different from current one if enabled source_path_used; then @@ -2087,6 +2069,7 @@ if enabled source_path_used; then libavcodec/sh4 \ libavcodec/sparc \ libavdevice \ + libavfilter \ libavformat \ libavutil \ libpostproc \ @@ -2098,9 +2081,11 @@ if enabled source_path_used; then FILES="\ Makefile \ common.mak \ + subdir.mak \ doc/texi2pod.pl \ libavcodec/Makefile \ libavdevice/Makefile \ + libavfilter/Makefile \ libavformat/Makefile \ libavutil/Makefile \ libpostproc/Makefile \ @@ -2116,7 +2101,6 @@ fi # build pkg-config files -# FIXME: libdir and includedir are hardcoded and may differ from the real path. pkgconfig_generate(){ name=$1 @@ -2124,12 +2108,11 @@ comment=$2 version=$3 libs=$4 requires=$5 -include=$6 cat <$name.pc -prefix=$PREFIX +prefix=$prefix exec_prefix=\${prefix} -libdir=\${exec_prefix}/lib -includedir=\${prefix}/include +libdir=$libdir +includedir=$incdir Name: $name Description: $comment @@ -2137,7 +2120,7 @@ Version: $version Requires: $requires Conflicts: Libs: -L\${libdir} $libs -Cflags: -I\${includedir}/$include +Cflags: -I\${includedir} EOF } @@ -2152,7 +2135,7 @@ cat <$name-uninstalled.pc prefix= exec_prefix= libdir=\${pcfiledir}/$name -includedir=\${pcfiledir}/$name +includedir=\${pcfiledir} Name: $name Description: $comment @@ -2164,28 +2147,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