Skip to content
Snippets Groups Projects
configure 62.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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'`
    
    Luca Abeni's avatar
    Luca Abeni committed
    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'`
    
    
    
    
        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
    
        echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak
    
        echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
        echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
        echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak
    
    Nick Kurshev's avatar
    Nick Kurshev committed
    fi
    
    echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
    
    echo "EXTRALIBS=$extralibs" >> config.mak
    
    print_config ARCH_   $TMPH config.mak $ARCH_LIST
    print_config HAVE_   $TMPH config.mak $HAVE_LIST
    
    print_config CONFIG_ $TMPH config.mak $CONFIG_LIST       \
                                          $DECODER_LIST      \
                                          $ENCODER_LIST      \
                                          $PARSER_LIST       \
                                          $BSF_LIST          \
                                          $DEMUXER_LIST      \
                                          $MUXER_LIST        \
                                          $PROTOCOL_LIST     \
                                          $INDEV_LIST        \
                                          $OUTDEV_LIST       \
    
    echo "#define restrict $_restrict" >> $TMPH
    
    
        echo "#define av_always_inline"  >> $TMPH
    
    echo "SRC_PATH=\"$source_path\"" >> config.mak
    echo "SRC_PATH_BARE=$source_path" >> config.mak
    echo "BUILD_ROOT=\"$PWD\"" >> config.mak
    
    # Apparently it's not possible to portably echo a backslash.
    
    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 "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
    
    
    # Do not overwrite config.h if unchanged 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
    
    # build tree in object directory if source path is different from current one
    
    if enabled source_path_used; then
    
            doc               \
            libavcodec        \
            libavcodec/alpha  \
            libavcodec/armv4l \
            libavcodec/bfin   \
            libavcodec/i386   \
            libavcodec/mlib   \
            libavcodec/ppc    \
            libavcodec/sh4    \
            libavcodec/sparc  \
    
            libavformat       \
            libavutil         \
            libpostproc       \
            libswscale        \
            tests             \
            tools             \
            vhook             \
            "
    
            Makefile             \
            common.mak           \
            doc/texi2pod.pl      \
            libavcodec/Makefile  \
    
            libavformat/Makefile \
            libavutil/Makefile   \
            libpostproc/Makefile \
            libswscale/Makefile  \
            "
    
        for dir in $DIRS ; do
    
        done
        for f in $FILES ; do
    
    # build pkg-config files
    
    # FIXME: libdir and includedir are hardcoded and may differ from the real path.
    
    pkgconfig_generate(){
    name=$1
    comment=$2
    version=$3
    libs=$4
    requires=$5
    include=$6
    cat <<EOF >$name.pc
    
    exec_prefix=\${prefix}
    
    includedir=\${prefix}/include
    
    Name: $name
    Description: $comment
    Version: $version
    Requires: $requires
    
    Libs: -L\${libdir} $libs
    
    Cflags: -I\${includedir}/$include
    
    pkgconfig_generate_uninstalled(){
    name=$1
    
    shortname=${name#lib}
    
    comment=$2
    version=$3
    libs=$4
    requires=$5
    cat <<EOF >$name-uninstalled.pc
    
    libdir=\${pcfiledir}/$name
    includedir=\${pcfiledir}/$name
    
    Name: $name
    Description: $comment
    Version: $version
    Requires: $requires
    
    Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    pkgconfig_generate libavutil "FFmpeg utility library" "$lavu_version" -lavutil "" ffmpeg
    
    pkgconfig_generate_uninstalled libavutil "FFmpeg utility library" "$lavu_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 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"
    
    Luca Abeni's avatar
    Luca Abeni committed
    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"
    
        pkgconfig_generate libpostproc "FFmpeg post processing library" "$pp_version" -lpostproc "" postproc
        pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$pp_version"
    
        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"
    
        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"
        apply libswscale.pc sed s/^Libs:.*$/Libs:/
        apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/