Skip to content
Snippets Groups Projects
configure 158 KiB
Newer Older
  • Learn to ignore specific revisions
  • if test "$extra_version" != ""; then
        echo "version string suffix     $extra_version"
    fi
    
    echo "big-endian                ${bigendian-no}"
    
    echo "runtime cpu detection     ${runtime_cpudetect-no}"
    
        echo "${yasmexe}                      ${yasm-no}"
    
        echo "MMX enabled               ${mmx-no}"
    
        echo "MMXEXT enabled            ${mmxext-no}"
    
        echo "3DNow! extended enabled   ${amd3dnowext-no}"
    
        echo "SSE enabled               ${sse-no}"
    
        echo "SSSE3 enabled             ${ssse3-no}"
    
        echo "AVX enabled               ${avx-no}"
    
        echo "XOP enabled               ${xop-no}"
    
        echo "FMA3 enabled              ${fma3-no}"
    
        echo "i686 features enabled     ${i686-no}"
    
        echo "CMOV is fast              ${fast_cmov-no}"
    
        echo "EBX available             ${ebx_available-no}"
        echo "EBP available             ${ebp_available-no}"
    
    if enabled aarch64; then
        echo "NEON enabled              ${neon-no}"
        echo "VFP enabled               ${vfp-no}"
    fi
    
        echo "ARMv5TE enabled           ${armv5te-no}"
        echo "ARMv6 enabled             ${armv6-no}"
    
        echo "ARMv6T2 enabled           ${armv6t2-no}"
    
        echo "VFP enabled               ${vfp-no}"
    
        echo "NEON enabled              ${neon-no}"
    
        echo "AltiVec enabled           ${altivec-no}"
    
        echo "VSX enabled               ${vsx-no}"
        echo "POWER8 enabled            ${power8-no}"
    
        echo "PPC 4xx optimizations     ${ppc4xx-no}"
    
        echo "dcbzl available           ${dcbzl-no}"
    
    echo "debug symbols             ${debug-no}"
    
    echo "optimize for size         ${small-no}"
    
    echo "optimizations             ${optimizations-no}"
    
    echo "static                    ${static-no}"
    echo "shared                    ${shared-no}"
    
    echo "network support           ${network-no}"
    echo "threading support         ${thread_type-no}"
    
    echo "safe bitstream reader     ${safe_bitstream_reader-no}"
    
    echo "SDL support               ${sdl-no}"
    
    test -n "$random_seed" &&
        echo "random seed               ${random_seed}"
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
    
    
    echo "External libraries:"
    print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns
    echo
    
    
    echo "Libraries:"
    print_enabled '' $LIBRARY_LIST | print_3_columns
    echo
    
    
    for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do
    
        echo "Enabled ${type}s:"
    
        eval list=\$$(toupper $type)_LIST
    
        print_enabled '_*' $list | print_3_columns
    
    license="LGPL version 2.1 or later"
    
    if enabled nonfree; then
    
        license="nonfree and unredistributable"
    
    elif enabled gplv3; then
        license="GPL version 3 or later"
    elif enabled lgplv3; then
        license="LGPL version 3 or later"
    
    elif enabled gpl; then
    
        license="GPL version 2 or later"
    
    echo "Creating config.mak and config.h..."
    
    
    test -e Makefile || echo "include $source_path/Makefile" > Makefile
    
    config_files="$TMPH config.mak"
    
    
    cat > config.mak <<EOF
    # Automatically generated by configure - do not modify!
    
    LIBAV_CONFIGURATION=$LIBAV_CONFIGURATION
    
    prefix=$prefix
    LIBDIR=\$(DESTDIR)$libdir
    SHLIBDIR=\$(DESTDIR)$shlibdir
    INCDIR=\$(DESTDIR)$incdir
    BINDIR=\$(DESTDIR)$bindir
    DATADIR=\$(DESTDIR)$datadir
    
    DOCDIR=\$(DESTDIR)$docdir
    
    SRC_PATH=$source_path
    
    INTRINSICS=$intrinsics
    
    Luca Barbato's avatar
    Luca Barbato committed
    OBJCC=$cc
    
    Luca Barbato's avatar
    Luca Barbato committed
    OBJCC=$objcc
    
    DEPCCFLAGS=$DEPCCFLAGS \$(CPPFLAGS)
    DEPAS=$as
    DEPASFLAGS=$DEPASFLAGS \$(CPPFLAGS)
    
    ARFLAGS=$arflags
    AR_O=$ar_o
    
    STRIP=$strip
    
    LN_S=$ln_s
    CPPFLAGS=$CPPFLAGS
    CFLAGS=$CFLAGS
    
    Luca Barbato's avatar
    Luca Barbato committed
    OBJCFLAGS=$OBJCFLAGS
    
    Luca Barbato's avatar
    Luca Barbato committed
    OBJCC_C=$OBJCC_C
    OBJCC_E=$OBJCC_E
    OBJCC_O=$OBJCC_O
    
    LD_LIB=$LD_LIB
    LD_PATH=$LD_PATH
    
    DLLTOOL=$dlltool
    
    LDEXEFLAGS=$LDEXEFLAGS
    
    SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
    
    STRIPFLAGS=$STRIPFLAGS
    
    YASMFLAGS=$YASMFLAGS
    BUILDSUF=$build_suffix
    FULLNAME=$FULLNAME
    LIBPREF=$LIBPREF
    LIBSUF=$LIBSUF
    LIBNAME=$LIBNAME
    SLIBPREF=$SLIBPREF
    SLIBSUF=$SLIBSUF
    EXESUF=$EXESUF
    EXTRA_VERSION=$extra_version
    CCDEP=$CCDEP
    
    CC_DEPFLAGS=$CC_DEPFLAGS
    AS_DEPFLAGS=$AS_DEPFLAGS
    HOSTCC=$host_cc
    
    HOSTEXESUF=$HOSTEXESUF
    HOSTLDFLAGS=$host_ldflags
    HOSTLIBS=$host_libs
    
    DEPHOSTCC=$host_cc
    DEPHOSTCCFLAGS=$DEPHOSTCCFLAGS \$(HOSTCCFLAGS)
    HOSTCCDEP=$HOSTCCDEP
    HOSTCCDEP_FLAGS=$HOSTCCDEP_FLAGS
    HOSTCC_DEPFLAGS=$HOSTCC_DEPFLAGS
    
    HOSTLD_O=$HOSTLD_O
    
    TARGET_EXEC=$target_exec $target_exec_args
    
    TARGET_SAMPLES=${target_samples:-\$(SAMPLES)}
    
    ZLIB=$($ldflags_filter -lz)
    
    LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
    EXTRALIBS=$extralibs
    
    COMPAT_OBJS=$compat_objs
    
    INSTALL=install
    
    LIBTARGET=${LIBTARGET}
    SLIBNAME=${SLIBNAME}
    SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
    SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
    SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}
    SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}
    
    SLIB_INSTALL_NAME=${SLIB_INSTALL_NAME}
    SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS}
    SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
    SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
    
    SAMPLES:=${samples:-\$(LIBAV_SAMPLES)}
    
        name=$(toupper $lcname)
        file=$source_path/$lcname/version.h
    
        eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file")
    
        eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
    
        eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak
        eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
    
        eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> config.mak
    
    map 'get_version $v' $LIBRARY_LIST
    
    map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> config.mak' $LIBRARY_LIST
    
    print_program_libs(){
        eval "program_libs=\$${1}_libs"
        eval echo "LIBS-${1}=${program_libs}" >> config.mak
    }
    
    map 'print_program_libs $v' $PROGRAM_LIST
    
    
    cat > $TMPH <<EOF
    /* Automatically generated by configure - do not modify! */
    
    #ifndef LIBAV_CONFIG_H
    #define LIBAV_CONFIG_H
    #define LIBAV_CONFIGURATION "$(c_escape $LIBAV_CONFIGURATION)"
    
    #define LIBAV_LICENSE "$(c_escape $license)"
    
    #define AVCONV_DATADIR "$(eval c_escape $datadir)"
    
    #define CC_IDENT "$(c_escape ${cc_ident:-Unknown compiler})"
    
    #define restrict $_restrict
    #define EXTERN_PREFIX "${extern_prefix}"
    #define EXTERN_ASM ${extern_prefix}
    
    test -n "$malloc_prefix" &&
        echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH
    
    
    if enabled yasm; then
        append config_files $TMPASM
        printf '' >$TMPASM
    fi
    
    
    enabled getenv || echo "#define getenv(x) NULL" >> $TMPH
    
    
    print_config ARCH_   "$config_files" $ARCH_LIST
    print_config HAVE_   "$config_files" $HAVE_LIST
    print_config CONFIG_ "$config_files" $CONFIG_LIST       \
    
    Måns Rullgård's avatar
    Måns Rullgård committed
                                         $CONFIG_EXTRA      \
    
    echo "#endif /* LIBAV_CONFIG_H */" >> $TMPH
    
    Diego Biurrun's avatar
    Diego Biurrun committed
    # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
    
    cp_if_changed $TMPH config.h
    
    enabled yasm && cp_if_changed $TMPASM config.asm
    
    
    cat > $TMPH <<EOF
    /* Generated by ffconf */
    #ifndef AVUTIL_AVCONFIG_H
    #define AVUTIL_AVCONFIG_H
    EOF
    
    
    print_config AV_HAVE_ $TMPH $HAVE_LIST_PUB
    
    
    echo "#endif /* AVUTIL_AVCONFIG_H */" >> $TMPH
    
    cp_if_changed $TMPH libavutil/avconfig.h
    
    
    test -n "$WARNINGS" && printf "\n$WARNINGS"
    
    
    # build pkg-config files
    
    lib_version(){
        eval printf "\"lib${1} >= \$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.pc
    
    exec_prefix=\${prefix}
    
    Name: $name
    Description: $comment
    Version: $version
    
    Requires: $(enabled shared || echo $requires)
    
    Requires.private: $(enabled shared && echo $requires)
    
    Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs)
    
    Libs.private: $(enabled shared && echo $libs)
    
    Cflags: -I\${includedir}
    
        cat <<EOF > $name/$name-uninstalled.pc
    
    libdir=\${pcfiledir}
    
    includedir=${source_path}
    
    Name: $name
    Description: $comment
    Version: $version
    Requires: $requires
    
    Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs
    
    pkgconfig_generate libavutil     "Libav utility library"          "$LIBAVUTIL_VERSION"     "$LIBRT $LIBM"
    
    pkgconfig_generate libavcodec    "Libav codec library"            "$LIBAVCODEC_VERSION"    "$extralibs"
    pkgconfig_generate libavformat   "Libav container format library" "$LIBAVFORMAT_VERSION"   "$extralibs"
    pkgconfig_generate libavdevice   "Libav device handling library"  "$LIBAVDEVICE_VERSION"   "$extralibs"
    pkgconfig_generate libavfilter   "Libav video filtering library"  "$LIBAVFILTER_VERSION"   "$extralibs"
    
    pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$LIBM"
    
    pkgconfig_generate libswscale    "Libav image rescaling library"  "$LIBSWSCALE_VERSION"    "$LIBM"