Skip to content
Snippets Groups Projects
configure 237 KiB
Newer Older
  • Learn to ignore specific revisions
  • DOCDIR=\$(DESTDIR)$docdir
    
    PKGCONFIGDIR=\$(DESTDIR)$pkgconfigdir
    
    INSTALL_NAME_DIR=$install_name_dir
    
    SRC_PATH=$source_path
    
    ifndef MAIN_MAKEFILE
    SRC_PATH:=\$(SRC_PATH:.%=..%)
    endif
    
    INTRINSICS=$intrinsics
    
    EXTERN_PREFIX=$extern_prefix
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    CXX=$cxx
    
    Luca Barbato's avatar
    Luca Barbato committed
    OBJCC=$objcc
    
    DEPCCFLAGS=$DEPCCFLAGS \$(CPPFLAGS)
    DEPAS=$as
    DEPASFLAGS=$DEPASFLAGS \$(CPPFLAGS)
    
    X86ASM=$x86asmexe
    DEPX86ASM=$x86asmexe
    
    ARFLAGS=$arflags
    AR_O=$ar_o
    
    STRIP=$strip
    
    LN_S=$ln_s
    CPPFLAGS=$CPPFLAGS
    CFLAGS=$CFLAGS
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    CXXFLAGS=$CXXFLAGS
    
    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
    
    CXX_C=$CXX_C
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    CXX_O=$CXX_O
    
    NVCC_C=$NVCC_C
    NVCC_O=$NVCC_O
    
    LD_LIB=$LD_LIB
    LD_PATH=$LD_PATH
    
    DOXYGEN=$doxygen
    
    LDEXEFLAGS=$LDEXEFLAGS
    
    SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
    
    ASMSTRIPFLAGS=$ASMSTRIPFLAGS
    
    X86ASMFLAGS=$X86ASMFLAGS
    
    PROGSSUF=$progs_suffix
    
    FULLNAME=$FULLNAME
    LIBPREF=$LIBPREF
    LIBSUF=$LIBSUF
    LIBNAME=$LIBNAME
    SLIBPREF=$SLIBPREF
    SLIBSUF=$SLIBSUF
    EXESUF=$EXESUF
    EXTRA_VERSION=$extra_version
    CCDEP=$CCDEP
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    CXXDEP=$CXXDEP
    
    X86ASMDEP=$X86ASMDEP
    X86ASMDEP_FLAGS=$X86ASMDEP_FLAGS
    
    CC_DEPFLAGS=$CC_DEPFLAGS
    AS_DEPFLAGS=$AS_DEPFLAGS
    
    HOSTEXESUF=$HOSTEXESUF
    HOSTLDFLAGS=$host_ldflags
    
    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)}
    
    Marton Balint's avatar
    Marton Balint committed
    CFLAGS-ffplay=${sdl2_cflags}
    
    CFLAGS_HEADERS=$CFLAGS_HEADERS
    
    LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
    EXTRALIBS=$extralibs
    
    COMPAT_OBJS=$compat_objs
    
    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}
    
    VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD}
    
    SAMPLES:=${samples:-\$(FATE_SAMPLES)}
    
    NOREDZONE_FLAGS=$noredzone_flags
    
    map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST
    
    for entry in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do
    
        eval echo "EXTRALIBS-${entry}=\$${entry}_extralibs" >> ffbuild/config.mak
    
    cat > $TMPH <<EOF
    /* Automatically generated by configure - do not modify! */
    
    #ifndef FFMPEG_CONFIG_H
    #define FFMPEG_CONFIG_H
    #define FFMPEG_CONFIGURATION "$(c_escape $FFMPEG_CONFIGURATION)"
    
    #define FFMPEG_LICENSE "$(c_escape $license)"
    
    Carl Eugen Hoyos's avatar
    Carl Eugen Hoyos committed
    #define CONFIG_THIS_YEAR 2018
    
    #define FFMPEG_DATADIR "$(eval c_escape $datadir)"
    
    #define AVCONV_DATADIR "$(eval c_escape $datadir)"
    
    #define CC_IDENT "$(c_escape ${cc_ident:-Unknown compiler})"
    
    #define av_restrict $restrict_keyword
    
    #define EXTERN_PREFIX "${extern_prefix}"
    #define EXTERN_ASM ${extern_prefix}
    
    #define BUILDSUF "$build_suffix"
    
    #define HAVE_MMX2 HAVE_MMXEXT
    
    #define SWS_MAX_FILTER_SIZE $sws_max_filter_size
    
    test -n "$assert_level" &&
        echo "#define ASSERT_LEVEL $assert_level" >>$TMPH
    
    
    test -n "$malloc_prefix" &&
        echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH
    
    
    if enabled x86asm; then
    
        append config_files $TMPASM
    
        cat > $TMPASM <<EOF
    ; Automatically generated by configure - do not modify!
    EOF
    
    enabled getenv || echo "#define getenv(x) NULL" >> $TMPH
    
    
    mkdir -p tests/api
    
    echo "@c auto-generated by configure - do not modify! " > doc/config.texi
    
    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 /* FFMPEG_CONFIG_H */" >> $TMPH
    
    echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
    
    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 x86asm && cp_if_changed $TMPASM config.asm
    
    cat > $TMPH <<EOF
    
    /* Generated by ffmpeg configure */
    
    #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
    
    
    full_filter_name(){
        sed -n "s/^extern AVFilter ff_\([avfsinkrc]\{2,5\}\)_$1;/\1_$1/p" $source_path/libavfilter/allfilters.c
    }
    
    
    # generate the lists of enabled components
    print_enabled_components(){
        file=$1
        struct_name=$2
        name=$3
        shift 3
    
        echo "static const $struct_name * const $name[] = {" > $TMPH
    
            if enabled $c; then
                case $name in
    
                    filter_list)
                        c=$(full_filter_name $(remove_suffix _filter $c))
                    ;;
    
    Josh de Kock's avatar
    Josh de Kock committed
                    indev_list)
                        c=$(add_suffix _demuxer $(remove_suffix _indev $c))
                    ;;
                    outdev_list)
                        c=$(add_suffix _muxer $(remove_suffix _outdev $c))
                    ;;
    
                esac
                printf "    &ff_%s,\n" $c >> $TMPH
            fi
    
        if [ "$name" = "filter_list" ]; then
    
            for c in asrc_abuffer vsrc_buffer asink_abuffer vsink_buffer; do
                printf "    &ff_%s,\n" $c >> $TMPH
            done
        fi
    
        echo "    NULL };" >> $TMPH
        cp_if_changed $TMPH $file
    }
    
    
    print_enabled_components libavfilter/filter_list.c AVFilter filter_list $FILTER_LIST
    
    print_enabled_components libavcodec/codec_list.c AVCodec codec_list $CODEC_LIST
    print_enabled_components libavcodec/parser_list.c AVCodecParser parser_list $PARSER_LIST
    
    print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST
    
    print_enabled_components libavformat/demuxer_list.c AVInputFormat demuxer_list $DEMUXER_LIST
    print_enabled_components libavformat/muxer_list.c AVOutputFormat muxer_list $MUXER_LIST
    
    Josh de Kock's avatar
    Josh de Kock committed
    print_enabled_components libavdevice/indev_list.c AVInputFormat indev_list $INDEV_LIST
    print_enabled_components libavdevice/outdev_list.c AVOutputFormat outdev_list $OUTDEV_LIST
    
    print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST
    
    
    # Settings for pkg-config files
    
    # Automatically generated by configure - do not modify!
    shared=$shared
    
    build_suffix=$build_suffix
    
    incdir=$incdir
    rpath=$(enabled rpath && echo "-Wl,-rpath,\${libdir}")
    
    source_path=${source_path}
    LIBPREF=${LIBPREF}
    LIBSUF=${LIBSUF}
    
    extralibs_avutil="$avutil_extralibs"
    extralibs_avcodec="$avcodec_extralibs"
    extralibs_avformat="$avformat_extralibs"
    extralibs_avdevice="$avdevice_extralibs"
    extralibs_avfilter="$avfilter_extralibs"
    extralibs_avresample="$avresample_extralibs"
    
    extralibs_postproc="$postproc_extralibs"
    
    extralibs_swscale="$swscale_extralibs"
    
    extralibs_swresample="$swresample_extralibs"
    
    for lib in $LIBRARY_LIST; do
        lib_deps="$(eval echo \$${lib}_deps)"
    
        echo ${lib}_deps=\"$lib_deps\" >> $TMPH
    
    cp_if_changed $TMPH ffbuild/config.sh