#!/bin/sh#### configure#### This script is the front-end to the build system. It provides a similar## interface to standard configure scripts with some extra bits for dealing## with toolchains that differ from the standard POSIX interface and## for extracting subsets of the source tree. In theory, reusable parts## of this script were intended to live in build/make/configure.sh,## but in practice, the line is pretty blurry.#### This build system is based in part on the FFmpeg configure script.## #source_path="`dirname \"$0\"`"source_path=${0%/*}. "${source_path}/build/make/configure.sh" show_help(){ show_help_pre cat << EOFAdvanced options: ${toggle_libs} libraries ${toggle_examples} examples ${toggle_tools} tools ${toggle_docs} documentation ${toggle_unit_tests} unit tests ${toggle_decode_perf_tests} build decoder perf tests with unit tests ${toggle_encode_perf_tests} build encoder perf tests with unit tests --cpu=CPU tune for the specified CPU (ARM: cortex-a8, X86: sse3) --libc=PATH path to alternate libc --size-limit=WxH max size to allow in the decoder --as={yasm|nasm|auto} use specified assembler [auto, yasm preferred] ${toggle_codec_srcs} in/exclude codec library source code ${toggle_debug_libs} in/exclude debug version of libraries ${toggle_static_msvcrt} use static MSVCRT (VS builds only) ${toggle_vp9_highbitdepth} use VP9 high bit depth (10/12) profiles ${toggle_better_hw_compatibility} enable encoder to produce streams with better hardware decoder compatibility ${toggle_vp8} VP8 codec support ${toggle_vp9} VP9 codec support ${toggle_internal_stats} output of encoder internal stats for debug, if supported (encoders) ${toggle_postproc} postprocessing ${toggle_vp9_postproc} vp9 specific postprocessing ${toggle_multithread} multithreaded encoding and decoding ${toggle_spatial_resampling} spatial sampling (scaling) support ${toggle_realtime_only} enable this option while building for real-time encoding ${toggle_onthefly_bitpacking} enable on-the-fly bitpacking in real-time encoding ${toggle_error_concealment} enable this option to get a decoder which is able to conceal losses ${toggle_coefficient_range_checking} enable decoder to check if intermediate transform coefficients are in valid range ${toggle_runtime_cpu_detect} runtime cpu detection ${toggle_shared} shared library support ${toggle_static} static library support ${toggle_small} favor smaller size over speed ${toggle_postproc_visualizer} macro block / block level visualizers ${toggle_multi_res_encoding} enable multiple-resolution encoding ${toggle_temporal_denoising} enable temporal denoising and disable the spatial denoiser ${toggle_vp9_temporal_denoising} enable vp9 temporal denoising ${toggle_webm_io} enable input from and output to WebM container ${toggle_libyuv} enable libyuv Codecs: Codecs can be selectively enabled or disabled individually, or by family: --disable-<codec> is equivalent to: --disable-<codec>-encoder --disable-<codec>-decoder Codecs available in this distribution:EOF#restore editor state ' family=""; last_family=""; c=""; str=""; for c in ${CODECS}; do family=${c%_*} if [ "${family}" != "${last_family}" ]; then [ -z "${str}" ] || echo "${str}" str="$(printf ' %10s:' ${family})" fi str="${str} $(printf '%10s' ${c#*_})" last_family=${family} done echo "${str}" show_help_post} #### BEGIN APPLICATION SPECIFIC CONFIGURATION## # all_platforms is a list of all supported target platforms. Maintain# alphabetically by architecture, generic-gnu last.all_platforms="${all_platforms} arm64-android-gcc"all_platforms="${all_platforms} arm64-darwin-gcc"all_platforms="${all_platforms} arm64-linux-gcc"all_platforms="${all_platforms} arm64-win64-gcc"all_platforms="${all_platforms} arm64-win64-vs15"all_platforms="${all_platforms} armv7-android-gcc" #neon Cortex-A8all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8all_platforms="${all_platforms} armv7-win32-gcc"all_platforms="${all_platforms} armv7-win32-vs14"all_platforms="${all_platforms} armv7-win32-vs15"all_platforms="${all_platforms} armv7s-darwin-gcc"all_platforms="${all_platforms} armv8-linux-gcc"all_platforms="${all_platforms} mips32-linux-gcc"all_platforms="${all_platforms} mips64-linux-gcc"all_platforms="${all_platforms} ppc64le-linux-gcc"all_platforms="${all_platforms} sparc-solaris-gcc"all_platforms="${all_platforms} x86-android-gcc"all_platforms="${all_platforms} x86-darwin8-gcc"all_platforms="${all_platforms} x86-darwin8-icc"all_platforms="${all_platforms} x86-darwin9-gcc"all_platforms="${all_platforms} x86-darwin9-icc"all_platforms="${all_platforms} x86-darwin10-gcc"all_platforms="${all_platforms} x86-darwin11-gcc"all_platforms="${all_platforms} x86-darwin12-gcc"all_platforms="${all_platforms} x86-darwin13-gcc"all_platforms="${all_platforms} x86-darwin14-gcc"all_platforms="${all_platforms} x86-darwin15-gcc"all_platforms="${all_platforms} x86-darwin16-gcc"all_platforms="${all_platforms} x86-darwin17-gcc"all_platforms="${all_platforms} x86-iphonesimulator-gcc"all_platforms="${all_platforms} x86-linux-gcc"all_platforms="${all_platforms} x86-linux-icc"all_platforms="${all_platforms} x86-os2-gcc"all_platforms="${all_platforms} x86-solaris-gcc"all_platforms="${all_platforms} x86-win32-gcc"all_platforms="${all_platforms} x86-win32-vs14"all_platforms="${all_platforms} x86-win32-vs15"all_platforms="${all_platforms} x86-win32-vs16"all_platforms="${all_platforms} x86_64-android-gcc"all_platforms="${all_platforms} x86_64-darwin9-gcc"all_platforms="${all_platforms} x86_64-darwin10-gcc"all_platforms="${all_platforms} x86_64-darwin11-gcc"all_platforms="${all_platforms} x86_64-darwin12-gcc"all_platforms="${all_platforms} x86_64-darwin13-gcc"all_platforms="${all_platforms} x86_64-darwin14-gcc"all_platforms="${all_platforms} x86_64-darwin15-gcc"all_platforms="${all_platforms} x86_64-darwin16-gcc"all_platforms="${all_platforms} x86_64-darwin17-gcc"all_platforms="${all_platforms} x86_64-darwin18-gcc"all_platforms="${all_platforms} x86_64-darwin19-gcc"all_platforms="${all_platforms} x86_64-iphonesimulator-gcc"all_platforms="${all_platforms} x86_64-linux-gcc"all_platforms="${all_platforms} x86_64-linux-icc"all_platforms="${all_platforms} x86_64-solaris-gcc"all_platforms="${all_platforms} x86_64-win64-gcc"all_platforms="${all_platforms} x86_64-win64-vs14"all_platforms="${all_platforms} x86_64-win64-vs15"all_platforms="${all_platforms} x86_64-win64-vs16"all_platforms="${all_platforms} generic-gnu" # all_targets is a list of all targets that can be configured# note that these should be in dependency order for now.all_targets="libs examples tools docs" # all targets available are enabled, by default.for t in ${all_targets}; do [ -f "${source_path}/${t}.mk" ] && enable_feature ${t}done if ! diff --version >/dev/null; then die "diff missing: Try installing diffutils via your package manager."fi if ! perl --version >/dev/null; then die "Perl is required to build"fi if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; then # test to see if source_path already configured if [ -f "${source_path}/vpx_config.h" ]; then die "source directory already configured; run 'make distclean' there first" fifi # check installed doxygen versiondoxy_version=$(doxygen --version 2>/dev/null)doxy_major=${doxy_version%%.*}if [ ${doxy_major:-0} -ge 1 ]; then doxy_version=${doxy_version#*.} doxy_minor=${doxy_version%%.*} doxy_patch=${doxy_version##*.} [ $doxy_major -gt 1 ] && enable_feature doxygen [ $doxy_minor -gt 5 ] && enable_feature doxygen [ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygenfi # disable codecs when their source directory does not exist[ -d "${source_path}/vp8" ] || disable_codec vp8[ -d "${source_path}/vp9" ] || disable_codec vp9 # install everything except the sources, by default. sources will have# to be enabled when doing dist builds, since that's no longer a common# case.enabled doxygen && enable_feature install_docsenable_feature install_binsenable_feature install_libs enable_feature staticenable_feature optimizationsenable_feature dependency_trackingenable_feature spatial_resamplingenable_feature multithreadenable_feature os_supportenable_feature temporal_denoising CODECS=" vp8_encoder vp8_decoder vp9_encoder vp9_decoder"CODEC_FAMILIES=" vp8 vp9" ARCH_LIST=" arm mips x86 x86_64 ppc"ARCH_EXT_LIST_X86=" mmx sse sse2 sse3 ssse3 sse4_1 avx avx2 avx512" ARCH_EXT_LIST_LOONGSON=" mmi" ARCH_EXT_LIST=" neon neon_asm mips32 dspr2 msa mips64 ${ARCH_EXT_LIST_X86} vsx ${ARCH_EXT_LIST_LOONGSON}"HAVE_LIST=" ${ARCH_EXT_LIST} vpx_ports pthread_h unistd_h"EXPERIMENT_LIST=" fp_mb_stats emulate_hardware non_greedy_mv rate_ctrl"CONFIG_LIST=" dependency_tracking external_build install_docs install_bins install_libs install_srcs debug gprof gcov rvct gcc msvs pic big_endian codec_srcs debug_libs dequant_tokens dc_recon runtime_cpu_detect postproc vp9_postproc multithread internal_stats ${CODECS} ${CODEC_FAMILIES} encoders decoders static_msvcrt spatial_resampling realtime_only onthefly_bitpacking error_concealment shared static small postproc_visualizer os_support unit_tests webm_io libyuv decode_perf_tests encode_perf_tests multi_res_encoding temporal_denoising vp9_temporal_denoising consistent_recode coefficient_range_checking vp9_highbitdepth better_hw_compatibility experimental size_limit always_adjust_bpm bitstream_debug mismatch_debug ${EXPERIMENT_LIST}"CMDLINE_SELECT=" dependency_tracking external_build extra_warnings werror install_docs install_bins install_libs install_srcs debug gprof gcov pic optimizations ccache runtime_cpu_detect thumb libs examples tools docs libc as size_limit codec_srcs debug_libs dequant_tokens dc_recon postproc vp9_postproc multithread internal_stats ${CODECS} ${CODEC_FAMILIES} static_msvcrt spatial_resampling realtime_only onthefly_bitpacking error_concealment shared static small postproc_visualizer unit_tests webm_io libyuv decode_perf_tests encode_perf_tests multi_res_encoding temporal_denoising vp9_temporal_denoising consistent_recode coefficient_range_checking better_hw_compatibility vp9_highbitdepth experimental always_adjust_bpm bitstream_debug mismatch_debug" process_cmdline() { for opt do optval="${opt#*=}" case "$opt" in --disable-codecs) for c in ${CODEC_FAMILIES}; do disable_codec $c; done ;; --enable-?*|--disable-?*) eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` if is_in ${option} ${EXPERIMENT_LIST}; then if enabled experimental; then ${action}_feature $option else log_echo "Ignoring $opt -- not in experimental mode." fi elif is_in ${option} "${CODECS} ${CODEC_FAMILIES}"; then ${action}_codec ${option} else process_common_cmdline $opt fi ;; *) process_common_cmdline "$opt" ;; esac done} post_process_cmdline() { if enabled coefficient_range_checking; then echo "coefficient-range-checking is for decoders only, disabling encoders:" soft_disable vp8_encoder soft_disable vp9_encoder fi c="" # Enable all detected codecs, if they haven't been disabled for c in ${CODECS}; do soft_enable $c; done # Enable the codec family if any component of that family is enabled for c in ${CODECS}; do enabled $c && enable_feature ${c%_*} done # Set the {en,de}coders variable if any algorithm in that class is enabled for c in ${CODECS}; do enabled ${c} && enable_feature ${c##*_}s done} process_targets() { enabled child || write_common_config_banner write_common_target_config_h ${BUILD_PFX}vpx_config.h write_common_config_targets enabled win_arm64_neon_h_workaround && write_win_arm64_neon_h_workaround ${BUILD_PFX}arm_neon.h # Calculate the default distribution name, based on the enabled features cf="" DIST_DIR=vpx for cf in $CODEC_FAMILIES; do if enabled ${cf}_encoder && enabled ${cf}_decoder; then DIST_DIR="${DIST_DIR}-${cf}" elif enabled ${cf}_encoder; then DIST_DIR="${DIST_DIR}-${cf}cx" elif enabled ${cf}_decoder; then DIST_DIR="${DIST_DIR}-${cf}dx" fi done enabled debug_libs && DIST_DIR="${DIST_DIR}-debug" enabled codec_srcs && DIST_DIR="${DIST_DIR}-src" ! enabled postproc && ! enabled vp9_postproc && DIST_DIR="${DIST_DIR}-nopost" ! enabled multithread && DIST_DIR="${DIST_DIR}-nomt" ! enabled install_docs && DIST_DIR="${DIST_DIR}-nodocs" DIST_DIR="${DIST_DIR}-${tgt_isa}-${tgt_os}" case "${tgt_os}" in win*) enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md" DIST_DIR="${DIST_DIR}-${tgt_cc}" ;; esac if [ -f "${source_path}/build/make/version.sh" ]; then ver=`"$source_path/build/make/version.sh" --bare "$source_path"` DIST_DIR="${DIST_DIR}-${ver}" VERSION_STRING=${ver} ver=${ver%%-*} VERSION_PATCH=${ver##*.} ver=${ver%.*} VERSION_MINOR=${ver##*.} ver=${ver#v} VERSION_MAJOR=${ver%.*} fi enabled child || cat <<EOF >> config.mk PREFIX=${prefix}ifeq (\$(MAKECMDGOALS),dist)DIST_DIR?=${DIST_DIR}elseDIST_DIR?=\$(DESTDIR)${prefix}endifLines 1–500 of 789. Load more
#!/bin/sh ## ## configure ## ## This script is the front-end to the build system. It provides a similar ## interface to standard configure scripts with some extra bits for dealing ## with toolchains that differ from the standard POSIX interface and ## for extracting subsets of the source tree. In theory, reusable parts ## of this script were intended to live in build/make/configure.sh, ## but in practice, the line is pretty blurry. ## ## This build system is based in part on the FFmpeg configure script. ## #source_path="`dirname \"$0\"`" source_path=${0%/*} . "${source_path}/build/make/configure.sh" show_help(){ show_help_pre cat << EOF Advanced options: ${toggle_libs} libraries ${toggle_examples} examples ${toggle_tools} tools ${toggle_docs} documentation ${toggle_unit_tests} unit tests ${toggle_decode_perf_tests} build decoder perf tests with unit tests ${toggle_encode_perf_tests} build encoder perf tests with unit tests --cpu=CPU tune for the specified CPU (ARM: cortex-a8, X86: sse3) --libc=PATH path to alternate libc --size-limit=WxH max size to allow in the decoder --as={yasm|nasm|auto} use specified assembler [auto, yasm preferred] ${toggle_codec_srcs} in/exclude codec library source code ${toggle_debug_libs} in/exclude debug version of libraries ${toggle_static_msvcrt} use static MSVCRT (VS builds only) ${toggle_vp9_highbitdepth} use VP9 high bit depth (10/12) profiles ${toggle_better_hw_compatibility} enable encoder to produce streams with better hardware decoder compatibility ${toggle_vp8} VP8 codec support ${toggle_vp9} VP9 codec support ${toggle_internal_stats} output of encoder internal stats for debug, if supported (encoders) ${toggle_postproc} postprocessing ${toggle_vp9_postproc} vp9 specific postprocessing ${toggle_multithread} multithreaded encoding and decoding ${toggle_spatial_resampling} spatial sampling (scaling) support ${toggle_realtime_only} enable this option while building for real-time encoding ${toggle_onthefly_bitpacking} enable on-the-fly bitpacking in real-time encoding ${toggle_error_concealment} enable this option to get a decoder which is able to conceal losses ${toggle_coefficient_range_checking} enable decoder to check if intermediate transform coefficients are in valid range ${toggle_runtime_cpu_detect} runtime cpu detection ${toggle_shared} shared library support ${toggle_static} static library support ${toggle_small} favor smaller size over speed ${toggle_postproc_visualizer} macro block / block level visualizers ${toggle_multi_res_encoding} enable multiple-resolution encoding ${toggle_temporal_denoising} enable temporal denoising and disable the spatial denoiser ${toggle_vp9_temporal_denoising} enable vp9 temporal denoising ${toggle_webm_io} enable input from and output to WebM container ${toggle_libyuv} enable libyuv Codecs: Codecs can be selectively enabled or disabled individually, or by family: --disable-<codec> is equivalent to: --disable-<codec>-encoder --disable-<codec>-decoder Codecs available in this distribution: EOF #restore editor state ' family=""; last_family=""; c=""; str=""; for c in ${CODECS}; do family=${c%_*} if [ "${family}" != "${last_family}" ]; then [ -z "${str}" ] || echo "${str}" str="$(printf ' %10s:' ${family})" fi str="${str} $(printf '%10s' ${c#*_})" last_family=${family} done echo "${str}" show_help_post } ## ## BEGIN APPLICATION SPECIFIC CONFIGURATION ## # all_platforms is a list of all supported target platforms. Maintain # alphabetically by architecture, generic-gnu last. all_platforms="${all_platforms} arm64-android-gcc" all_platforms="${all_platforms} arm64-darwin-gcc" all_platforms="${all_platforms} arm64-linux-gcc" all_platforms="${all_platforms} arm64-win64-gcc" all_platforms="${all_platforms} arm64-win64-vs15" all_platforms="${all_platforms} armv7-android-gcc" #neon Cortex-A8 all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8 all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8 all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8 all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8 all_platforms="${all_platforms} armv7-win32-gcc" all_platforms="${all_platforms} armv7-win32-vs14" all_platforms="${all_platforms} armv7-win32-vs15" all_platforms="${all_platforms} armv7s-darwin-gcc" all_platforms="${all_platforms} armv8-linux-gcc" all_platforms="${all_platforms} mips32-linux-gcc" all_platforms="${all_platforms} mips64-linux-gcc" all_platforms="${all_platforms} ppc64le-linux-gcc" all_platforms="${all_platforms} sparc-solaris-gcc" all_platforms="${all_platforms} x86-android-gcc" all_platforms="${all_platforms} x86-darwin8-gcc" all_platforms="${all_platforms} x86-darwin8-icc" all_platforms="${all_platforms} x86-darwin9-gcc" all_platforms="${all_platforms} x86-darwin9-icc" all_platforms="${all_platforms} x86-darwin10-gcc" all_platforms="${all_platforms} x86-darwin11-gcc" all_platforms="${all_platforms} x86-darwin12-gcc" all_platforms="${all_platforms} x86-darwin13-gcc" all_platforms="${all_platforms} x86-darwin14-gcc" all_platforms="${all_platforms} x86-darwin15-gcc" all_platforms="${all_platforms} x86-darwin16-gcc" all_platforms="${all_platforms} x86-darwin17-gcc" all_platforms="${all_platforms} x86-iphonesimulator-gcc" all_platforms="${all_platforms} x86-linux-gcc" all_platforms="${all_platforms} x86-linux-icc" all_platforms="${all_platforms} x86-os2-gcc" all_platforms="${all_platforms} x86-solaris-gcc" all_platforms="${all_platforms} x86-win32-gcc" all_platforms="${all_platforms} x86-win32-vs14" all_platforms="${all_platforms} x86-win32-vs15" all_platforms="${all_platforms} x86-win32-vs16" all_platforms="${all_platforms} x86_64-android-gcc" all_platforms="${all_platforms} x86_64-darwin9-gcc" all_platforms="${all_platforms} x86_64-darwin10-gcc" all_platforms="${all_platforms} x86_64-darwin11-gcc" all_platforms="${all_platforms} x86_64-darwin12-gcc" all_platforms="${all_platforms} x86_64-darwin13-gcc" all_platforms="${all_platforms} x86_64-darwin14-gcc" all_platforms="${all_platforms} x86_64-darwin15-gcc" all_platforms="${all_platforms} x86_64-darwin16-gcc" all_platforms="${all_platforms} x86_64-darwin17-gcc" all_platforms="${all_platforms} x86_64-darwin18-gcc" all_platforms="${all_platforms} x86_64-darwin19-gcc" all_platforms="${all_platforms} x86_64-iphonesimulator-gcc" all_platforms="${all_platforms} x86_64-linux-gcc" all_platforms="${all_platforms} x86_64-linux-icc" all_platforms="${all_platforms} x86_64-solaris-gcc" all_platforms="${all_platforms} x86_64-win64-gcc" all_platforms="${all_platforms} x86_64-win64-vs14" all_platforms="${all_platforms} x86_64-win64-vs15" all_platforms="${all_platforms} x86_64-win64-vs16" all_platforms="${all_platforms} generic-gnu" # all_targets is a list of all targets that can be configured # note that these should be in dependency order for now. all_targets="libs examples tools docs" # all targets available are enabled, by default. for t in ${all_targets}; do [ -f "${source_path}/${t}.mk" ] && enable_feature ${t} done if ! diff --version >/dev/null; then die "diff missing: Try installing diffutils via your package manager." fi if ! perl --version >/dev/null; then die "Perl is required to build" fi if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; then # test to see if source_path already configured if [ -f "${source_path}/vpx_config.h" ]; then die "source directory already configured; run 'make distclean' there first" fi fi # check installed doxygen version doxy_version=$(doxygen --version 2>/dev/null) doxy_major=${doxy_version%%.*} if [ ${doxy_major:-0} -ge 1 ]; then doxy_version=${doxy_version#*.} doxy_minor=${doxy_version%%.*} doxy_patch=${doxy_version##*.} [ $doxy_major -gt 1 ] && enable_feature doxygen [ $doxy_minor -gt 5 ] && enable_feature doxygen [ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygen fi # disable codecs when their source directory does not exist [ -d "${source_path}/vp8" ] || disable_codec vp8 [ -d "${source_path}/vp9" ] || disable_codec vp9 # install everything except the sources, by default. sources will have # to be enabled when doing dist builds, since that's no longer a common # case. enabled doxygen && enable_feature install_docs enable_feature install_bins enable_feature install_libs enable_feature static enable_feature optimizations enable_feature dependency_tracking enable_feature spatial_resampling enable_feature multithread enable_feature os_support enable_feature temporal_denoising CODECS=" vp8_encoder vp8_decoder vp9_encoder vp9_decoder " CODEC_FAMILIES=" vp8 vp9 " ARCH_LIST=" arm mips x86 x86_64 ppc " ARCH_EXT_LIST_X86=" mmx sse sse2 sse3 ssse3 sse4_1 avx avx2 avx512 " ARCH_EXT_LIST_LOONGSON=" mmi " ARCH_EXT_LIST=" neon neon_asm mips32 dspr2 msa mips64 ${ARCH_EXT_LIST_X86} vsx ${ARCH_EXT_LIST_LOONGSON} " HAVE_LIST=" ${ARCH_EXT_LIST} vpx_ports pthread_h unistd_h " EXPERIMENT_LIST=" fp_mb_stats emulate_hardware non_greedy_mv rate_ctrl " CONFIG_LIST=" dependency_tracking external_build install_docs install_bins install_libs install_srcs debug gprof gcov rvct gcc msvs pic big_endian codec_srcs debug_libs dequant_tokens dc_recon runtime_cpu_detect postproc vp9_postproc multithread internal_stats ${CODECS} ${CODEC_FAMILIES} encoders decoders static_msvcrt spatial_resampling realtime_only onthefly_bitpacking error_concealment shared static small postproc_visualizer os_support unit_tests webm_io libyuv decode_perf_tests encode_perf_tests multi_res_encoding temporal_denoising vp9_temporal_denoising consistent_recode coefficient_range_checking vp9_highbitdepth better_hw_compatibility experimental size_limit always_adjust_bpm bitstream_debug mismatch_debug ${EXPERIMENT_LIST} " CMDLINE_SELECT=" dependency_tracking external_build extra_warnings werror install_docs install_bins install_libs install_srcs debug gprof gcov pic optimizations ccache runtime_cpu_detect thumb libs examples tools docs libc as size_limit codec_srcs debug_libs dequant_tokens dc_recon postproc vp9_postproc multithread internal_stats ${CODECS} ${CODEC_FAMILIES} static_msvcrt spatial_resampling realtime_only onthefly_bitpacking error_concealment shared static small postproc_visualizer unit_tests webm_io libyuv decode_perf_tests encode_perf_tests multi_res_encoding temporal_denoising vp9_temporal_denoising consistent_recode coefficient_range_checking better_hw_compatibility vp9_highbitdepth experimental always_adjust_bpm bitstream_debug mismatch_debug " process_cmdline() { for opt do optval="${opt#*=}" case "$opt" in --disable-codecs) for c in ${CODEC_FAMILIES}; do disable_codec $c; done ;; --enable-?*|--disable-?*) eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` if is_in ${option} ${EXPERIMENT_LIST}; then if enabled experimental; then ${action}_feature $option else log_echo "Ignoring $opt -- not in experimental mode." fi elif is_in ${option} "${CODECS} ${CODEC_FAMILIES}"; then ${action}_codec ${option} else process_common_cmdline $opt fi ;; *) process_common_cmdline "$opt" ;; esac done } post_process_cmdline() { if enabled coefficient_range_checking; then echo "coefficient-range-checking is for decoders only, disabling encoders:" soft_disable vp8_encoder soft_disable vp9_encoder fi c="" # Enable all detected codecs, if they haven't been disabled for c in ${CODECS}; do soft_enable $c; done # Enable the codec family if any component of that family is enabled for c in ${CODECS}; do enabled $c && enable_feature ${c%_*} done # Set the {en,de}coders variable if any algorithm in that class is enabled for c in ${CODECS}; do enabled ${c} && enable_feature ${c##*_}s done } process_targets() { enabled child || write_common_config_banner write_common_target_config_h ${BUILD_PFX}vpx_config.h write_common_config_targets enabled win_arm64_neon_h_workaround && write_win_arm64_neon_h_workaround ${BUILD_PFX}arm_neon.h # Calculate the default distribution name, based on the enabled features cf="" DIST_DIR=vpx for cf in $CODEC_FAMILIES; do if enabled ${cf}_encoder && enabled ${cf}_decoder; then DIST_DIR="${DIST_DIR}-${cf}" elif enabled ${cf}_encoder; then DIST_DIR="${DIST_DIR}-${cf}cx" elif enabled ${cf}_decoder; then DIST_DIR="${DIST_DIR}-${cf}dx" fi done enabled debug_libs && DIST_DIR="${DIST_DIR}-debug" enabled codec_srcs && DIST_DIR="${DIST_DIR}-src" ! enabled postproc && ! enabled vp9_postproc && DIST_DIR="${DIST_DIR}-nopost" ! enabled multithread && DIST_DIR="${DIST_DIR}-nomt" ! enabled install_docs && DIST_DIR="${DIST_DIR}-nodocs" DIST_DIR="${DIST_DIR}-${tgt_isa}-${tgt_os}" case "${tgt_os}" in win*) enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md" DIST_DIR="${DIST_DIR}-${tgt_cc}" ;; esac if [ -f "${source_path}/build/make/version.sh" ]; then ver=`"$source_path/build/make/version.sh" --bare "$source_path"` DIST_DIR="${DIST_DIR}-${ver}" VERSION_STRING=${ver} ver=${ver%%-*} VERSION_PATCH=${ver##*.} ver=${ver%.*} VERSION_MINOR=${ver##*.} ver=${ver#v} VERSION_MAJOR=${ver%.*} fi enabled child || cat <<EOF >> config.mk PREFIX=${prefix} ifeq (\$(MAKECMDGOALS),dist) DIST_DIR?=${DIST_DIR} else DIST_DIR?=\$(DESTDIR)${prefix} endif