diff options
Diffstat (limited to 'third_party/aom/configure')
-rwxr-xr-x | third_party/aom/configure | 977 |
1 files changed, 0 insertions, 977 deletions
diff --git a/third_party/aom/configure b/third_party/aom/configure deleted file mode 100755 index 50a5fb266..000000000 --- a/third_party/aom/configure +++ /dev/null @@ -1,977 +0,0 @@ -#!/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_analyzer} analyzer - ${toggle_docs} documentation - ${toggle_unit_tests} unit tests - ${toggle_tools} tools - ${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] - --sdk-path=PATH path to root of sdk (android builds only) - ${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_highbitdepth} enable 16-bit generic pixel pipeline (used by high bitdepth profiles) - ${toggle_lowbitdepth} enable 8-bit optimized pixel pipeline - ${toggle_av1} AV1 codec support - ${toggle_internal_stats} output of encoder internal stats for debug, if supported (encoders) - ${toggle_postproc} 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_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_webm_io} enable input from and output to WebM container - ${toggle_libyuv} enable libyuv - ${toggle_accounting} enable bit accounting - ${toggle_inspection} enable bitstream inspection - -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-darwin-gcc" -all_platforms="${all_platforms} arm64-linux-gcc" -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-vs12" -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} 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-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-vs12" -all_platforms="${all_platforms} x86-win32-vs14" -all_platforms="${all_platforms} x86-win32-vs15" -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-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-vs12" -all_platforms="${all_platforms} x86_64-win64-vs14" -all_platforms="${all_platforms} x86_64-win64-vs15" -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 docs tools" - -# 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}/aom_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}/av1" ] || disable_codec av1 - -# 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 highbitdepth - -CODECS=" - av1_encoder - av1_decoder -" -CODEC_FAMILIES=" - av1 -" - -ARCH_LIST=" - arm - mips - x86 - x86_64 -" -ARCH_EXT_LIST_X86=" - mmx - sse - sse2 - sse3 - ssse3 - sse4_1 - avx - avx2 -" -ARCH_EXT_LIST=" - neon - neon_asm - - mips32 - dspr2 - msa - mips64 - - ${ARCH_EXT_LIST_X86} -" -HAVE_LIST=" - ${ARCH_EXT_LIST} - aom_ports - fexcept - pthread_h - unistd_h - wxwidgets -" -EXPERIMENT_LIST=" - fp_mb_stats - cdef - cdef_singlepass - var_tx - rect_tx - rect_tx_ext - tpl_mv - dual_filter - convolve_round - compound_round - ext_tx - tx64x64 - ext_intra - intra_interp - filter_intra - intra_edge - intrabc - interintra - wedge - compound_segment - ext_refs - global_motion - new_quant - supertx - ans - loop_restoration - striped_loop_restoration - ext_partition - ext_partition_types - ext_partition_types_ab - unpoison_partition_ctx - ext_tile - motion_var - ncobmc - warped_motion - q_adapt_probs - inter_stats_only - palette_delta_encoding - rawbits - kf_ctx - pvq - cfl - xiphrc - dct_only - daala_tx - daala_dct4 - daala_dct8 - daala_dct16 - daala_dct32 - daala_dct64 - cb4x4 - chroma_2x2 - chroma_sub8x8 - frame_size - ext_delta_q - adapt_scan - parallel_deblocking - deblock_13tap - loopfiltering_across_tiles - tempmv_signaling - rd_debug - reference_buffer - coef_interleave - entropy_stats - masked_tx - dependent_horztiles - dist_8x8 - palette_throughput - ref_adapt - lv_map - ctx1d - txk_sel - mv_compress - segment_zeromv - frame_superres - new_multisymbol - compound_singleref - aom_qm - one_sided_compound - ext_comp_refs - smooth_hv - var_refs - lgt - lgt_from_pred - sbl_symbol - ncobmc_adapt_weight - bgsprite - var_tx_no_tx_mode - mrc_tx - lpf_direct - loopfilter_level - no_frame_context_signaling - txmg - max_tile - hash_me - colorspace_headers - mfmv - frame_marker - jnt_comp - frame_sign_bias - ext_skip - obu - amvr - lpf_sb - opt_ref_mv - tmv - restrict_compressed_hdr - horzonly_frame_superres -" -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 - - runtime_cpu_detect - postproc - multithread - internal_stats - ${CODECS} - ${CODEC_FAMILIES} - static_msvcrt - spatial_resampling - realtime_only - shared - static - small - postproc_visualizer - os_support - unit_tests - webm_io - libyuv - accounting - inspection - decode_perf_tests - encode_perf_tests - bitstream_debug - symbolrate - coefficient_range_checking - lowbitdepth - highbitdepth - experimental - size_limit - ${EXPERIMENT_LIST} - analyzer -" -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 - analyzer - docs - tools - libc - as - size_limit - codec_srcs - debug_libs - - postproc - multithread - internal_stats - ${CODECS} - ${CODEC_FAMILIES} - static_msvcrt - spatial_resampling - realtime_only - shared - static - small - postproc_visualizer - unit_tests - webm_io - libyuv - accounting - inspection - decode_perf_tests - encode_perf_tests - coefficient_range_checking - bitstream_debug - symbolrate - lowbitdepth - highbitdepth - experimental - adopted_experiments - colorspace_headers -" - -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() { - 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 - - enable_feature cb4x4 - - # Enable adopted experiments by default - soft_enable adopted_experiments - if enabled adopted_experiments; then - soft_enable chroma_sub8x8 - soft_enable rect_tx - soft_enable global_motion - soft_enable ext_tx - soft_enable cdef - soft_enable ext_intra - soft_enable intra_edge - soft_enable mv_compress - soft_enable ext_refs - soft_enable dual_filter - soft_enable motion_var - soft_enable warped_motion - soft_enable var_tx - soft_enable wedge - soft_enable compound_segment - soft_enable interintra - soft_enable one_sided_compound - soft_enable convolve_round - soft_enable aom_qm - soft_enable dist_8x8 - soft_enable cdef_singlepass - soft_enable loop_restoration - - # Provisional adopted - soft_enable reference_buffer - soft_enable loopfiltering_across_tiles - soft_enable palette_throughput - soft_enable smooth_hv - soft_enable tempmv_signaling - soft_enable ext_comp_refs - soft_enable ext_delta_q - soft_enable parallel_deblocking - fi - - # Enable low-bitdepth pixel pipeline by default - soft_enable lowbitdepth - - # Enable LBD/HBD txfm consistency tool - soft_enable txmg - - # Fix up experiment dependencies - enabled pvq && disable_feature chroma_2x2 - enabled pvq && disable_feature rect_tx - enabled pvq && disable_feature ext_tx - enabled pvq && disable_feature var_tx - enabled pvq && disable_feature highbitdepth - enabled pvq && disable_feature lgt - enabled pvq && disable_feature mrc_tx - enabled lv_map && disable_feature mrc_tx - enabled supertx && disable_feature mrc_tx - enabled coef_interleave && disable_feature mrc_tx - enabled pvq && disable_feature palette_throughput - enabled mrc_tx && enable_feature ext_tx - enabled mrc_tx && enable_feature var_tx - enabled txk_sel && soft_enable lv_map - enabled ctx1d && soft_enable lv_map - enabled ctx1d && soft_enable ext_tx - enabled compound_round && soft_enable convolve_round - enabled intra_edge && enable_feature ext_intra - enabled chroma_2x2 && disable_feature chroma_sub8x8 - enabled chroma_sub8x8 && enable_feature cb4x4 - enabled ncobmc_adapt_weight && enable_feature motion_var - enabled bgsprite && enable_feature global_motion - enabled ext_comp_refs && enable_feature ext_refs - enabled ext_comp_refs && enable_feature one_sided_compound - enabled rect_tx_ext && enable_feature rect_tx - enabled lgt_from_pred && enable_feature ext_tx - enabled lgt_from_pred && disable_feature mrc_tx - enabled cfl && enable_feature smooth_hv - enabled cdef_singlepass && enable_feature cdef - enabled new_multisymbol && enable_feature restrict_compressed_hdr - enabled mfmv && enable_feature frame_marker - enabled jnt_comp && enable_feature frame_marker - enabled frame_sign_bias && enable_feature frame_marker - enabled txmg && enable_feature highbitdepth - enabled ext_skip && enable_feature frame_marker - enabled ext_skip && enable_feature ext_refs - enabled horzonly_frame_superres && enable_feature frame_superres - - if enabled rawbits && enabled ans; then - log_echo "rawbits requires not ans, so disabling rawbits" - disable_feature rawbits - fi - if enabled daala_tx; then - enable_feature daala_dct4 - enable_feature daala_dct8 - enable_feature daala_dct16 - enable_feature daala_dct32 - enable_feature daala_dct64 - fi - if enabled daala_dct64 && ! enabled tx64x64; then - log_echo "daala_dct64 requires tx64x64, so disabling daala_dct64" - disable_feature daala_dct64 - fi - if enabled daala_dct4 || enabled daala_dct8 || enabled daala_dct16 || - enabled daala_dct32 || enabled daala_dct64; then - disable_feature lgt - enable_feature lowbitdepth - fi - if enabled var_tx_no_tx_mode && ! enabled var_tx; then - log_echo "var_tx_no_tx_mode requires var_tx, so disabling var_tx_no_tx_mode" - disable_feature var_tx_no_tx_mode - fi - if enabled ext_partition_types; then - if enabled fp_mb_stats; then - log_echo "ext_partition_types not compatible with fp_mb_stats;" - log_echo "disabling fp_mb_stats" - disable_feature fp_mb_stats - fi - if enabled supertx; then - log_echo "ext_partition_types not compatible with supertx;" - log_echo "disabling supertx" - disable_feature supertx - fi - if ! enabled rect_tx; then - log_echo "ext_partition_types requires rect_tx;" - log_echo "enabling rect_tx;" - enable_feature rect_tx - fi - fi - # Enable accounting and inspection when building the analyzer - if enabled analyzer; then - soft_enable accounting - soft_enable inspection - fi - # Enable hash_me if amvr is enabled - if enabled amvr; then - log_echo "amvr requires hash_me" - enable_feature hash_me - fi - - if enabled striped_loop_restoration && ! enabled loop_restoration ; then - log_echo "striped_loop_restoration requires loop_restoration" - log_echo "enable loop_restoration" - enable_feature loop_restoration - fi - if enabled striped_loop_restoration && enabled frame_superres ; then - log_echo "striped_loop_restoration not compatible with frame_superres" - log_echo "disabling striped_loop_restoration" - disable_feature striped_loop_restoration - fi -} - -process_targets() { - enabled child || write_common_config_banner - write_common_target_config_h ${BUILD_PFX}aom_config.h - write_common_config_targets - - # Calculate the default distribution name, based on the enabled features - cf="" - DIST_DIR=aom - 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 && 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 -LIBSUBDIR=${libdir##${prefix}/} - -VERSION_STRING=${VERSION_STRING} - -VERSION_MAJOR=${VERSION_MAJOR} -VERSION_MINOR=${VERSION_MINOR} -VERSION_PATCH=${VERSION_PATCH} - -CONFIGURE_ARGS=${CONFIGURE_ARGS} -EOF - enabled child || echo "CONFIGURE_ARGS?=${CONFIGURE_ARGS}" >> config.mk - - # - # Write makefiles for all enabled targets - # - for tgt in libs examples docs tools solution; do - tgt_fn="$tgt-$toolchain.mk" - - if enabled $tgt; then - echo "Creating makefiles for ${toolchain} ${tgt}" - write_common_target_config_mk $tgt_fn ${BUILD_PFX}aom_config.h - #write_${tgt}_config - fi - done - -} - -process_detect() { - if enabled shared; then - # Can only build shared libs on a subset of platforms. Doing this check - # here rather than at option parse time because the target auto-detect - # magic happens after the command line has been parsed. - case "${tgt_os}" in - linux|os2|darwin*|iphonesimulator*) - # Supported platforms - ;; - *) - if enabled gnu; then - echo "--enable-shared is only supported on ELF; assuming this is OK" - else - die "--enable-shared only supported on ELF, OS/2, and Darwin for now" - fi - ;; - esac - fi - if [ -z "$CC" ] || enabled external_build; then - echo "Bypassing toolchain for environment detection." - enable_feature external_build - check_header() { - log fake_check_header "$@" - header=$1 - shift - var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'` - disable_feature $var - # Headers common to all environments - case $header in - stdio.h) - true; - ;; - *) - result=false - for d in "$@"; do - [ -f "${d##-I}/$header" ] && result=true && break - done - ${result:-true} - esac && enable_feature $var - - # Specialize windows and POSIX environments. - case $toolchain in - *-win*-*) - # Don't check for any headers in Windows builds. - false - ;; - *) - case $header in - pthread.h) true;; - unistd.h) true;; - *) false;; - esac && enable_feature $var - esac - enabled $var - } - check_ld() { - true - } - fi - check_header stdio.h || die "Unable to invoke compiler: ${CC} ${CFLAGS}" - check_ld <<EOF || die "Toolchain is unable to link executables" -int main(void) {return 0;} -EOF - # check system headers - check_header pthread.h - check_header unistd.h # for sysconf(3) and friends. - - check_header aom/aom_integer.h -I${source_path} && enable_feature aom_ports - - check_ld <<EOF && enable_feature fexcept -#define _GNU_SOURCE -#include <fenv.h> -int main(void) { (void)feenableexcept(FE_DIVBYZERO | FE_INVALID); return 0; } -EOF -} - -process_toolchain() { - process_common_toolchain - - # Enable some useful compiler flags - if enabled gcc; then - enabled werror && check_add_cflags -Werror - check_add_cflags -Wall - check_add_cflags -Wdisabled-optimization - check_add_cflags -Wfloat-conversion - check_add_cflags -Wpointer-arith - check_add_cflags -Wtype-limits - check_add_cflags -Wvla - check_add_cflags -Wimplicit-function-declaration - check_add_cflags -Wuninitialized - check_add_cflags -Wunused - check_add_cflags -Wsign-compare - check_add_cflags -Wstring-conversion - check_add_cflags -Wlogical-op - check_add_cflags -Wstack-usage=320000 - # Enabling the following warning (in combination with -Wunused above) - # for C++ generates errors in third_party code including googletest and - # libyuv. So enable it only for C code. - check_cflags "-Wextra" && add_cflags_only "-Wextra" - # Enabling the following warning for C++ generates some useless warnings - # about some function parameters shadowing class member function names. - # So, only enable this warning for C code. - check_cflags "-Wshadow" && add_cflags_only "-Wshadow" - if enabled mips || [ -z "${INLINE}" ]; then - enabled extra_warnings || check_add_cflags -Wno-unused-function - fi - # gtest makes heavy use of undefined pre-processor symbols - check_cflags "-Wundef" && add_cflags_only "-Wundef" - # Avoid this warning for third_party C++ sources. Some reorganization - # would be needed to apply this only to test/*.cc. - check_cflags -Wshorten-64-to-32 && add_cflags_only -Wshorten-64-to-32 - fi - - if enabled icc; then - enabled werror && check_add_cflags -Werror - check_add_cflags -Wall - check_add_cflags -Wpointer-arith - - # ICC has a number of floating point optimizations that we disable - # in favor of deterministic output WRT to other compilers - add_cflags -fp-model precise - fi - - if enabled analyzer; then - soft_enable wxwidgets - if ! wx-config --version > /dev/null; then - die "Couldn't find wx-config" - fi - - add_cxxflags_only $(wx-config --cppflags) - add_extralibs $(wx-config --libs) - fi - - # Enable extra, harmless warnings. These might provide additional insight - # to what the compiler is doing and why, but in general, but they shouldn't - # be treated as fatal, even if we're treating warnings as errors. - GCC_EXTRA_WARNINGS=" - -Wdisabled-optimization - -Winline - " - enabled gcc && EXTRA_WARNINGS="${GCC_EXTRA_WARNINGS}" - RVCT_EXTRA_WARNINGS=" - --remarks - " - enabled rvct && EXTRA_WARNINGS="${RVCT_EXTRA_WARNINGS}" - if enabled extra_warnings; then - for w in ${EXTRA_WARNINGS}; do - check_add_cflags ${w} - enabled gcc && enabled werror && check_add_cflags -Wno-error=${w} - done - fi - - # ccache only really works on gcc toolchains - enabled gcc || soft_disable ccache - - # Enable the postbuild target if building for visual studio. - case "$tgt_cc" in - vs*) enable_feature msvs - enable_feature solution - vs_version=${tgt_cc##vs} - VCPROJ_SFX=vcxproj - gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh - enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-werror" - all_targets="${all_targets} solution" - INLINE="__forceinline" - ;; - esac - - # Other toolchain specific defaults - case $toolchain in x86*) soft_enable postproc;; esac - - if enabled postproc_visualizer; then - enabled postproc || die "postproc_visualizer requires postproc to be enabled" - fi - - # Enable unit tests by default if we have a working C++ compiler. - case "$toolchain" in - *-vs*) - soft_enable unit_tests - soft_enable webm_io - soft_enable libyuv - ;; - *-android-*) - soft_enable webm_io - soft_enable libyuv - # GTestLog must be modified to use Android logging utilities. - ;; - *-darwin-*) - # iOS/ARM builds do not work with gtest. This does not match - # x86 targets. - ;; - *-iphonesimulator-*) - soft_enable webm_io - soft_enable libyuv - ;; - *-win*) - # Some mingw toolchains don't have pthread available by default. - # Treat these more like visual studio where threading in gtest - # would be disabled for the same reason. - check_cxx "$@" <<EOF && soft_enable unit_tests -int z; -EOF - check_cxx "$@" <<EOF && soft_enable webm_io -int z; -EOF - check_cxx "$@" <<EOF && soft_enable libyuv -int z; -EOF - ;; - *) - enabled pthread_h && check_cxx "$@" <<EOF && soft_enable unit_tests -int z; -EOF - check_cxx "$@" <<EOF && soft_enable webm_io -int z; -EOF - check_cxx "$@" <<EOF && soft_enable libyuv -int z; -EOF - ;; - esac - # libwebm needs to be linked with C++ standard library - enabled webm_io && LD=${CXX} - - # append any user defined extra cflags - if [ -n "${extra_cflags}" ] ; then - check_add_cflags ${extra_cflags} || \ - die "Requested extra CFLAGS '${extra_cflags}' not supported by compiler" - fi - if [ -n "${extra_cxxflags}" ]; then - check_add_cxxflags ${extra_cxxflags} || \ - die "Requested extra CXXFLAGS '${extra_cxxflags}' not supported by compiler" - fi -} - - -## -## END APPLICATION SPECIFIC CONFIGURATION -## -CONFIGURE_ARGS="$@" -process "$@" -print_webm_license ${BUILD_PFX}aom_config.c "/*" " */" -cat <<EOF >> ${BUILD_PFX}aom_config.c -#include "aom/aom_codec.h" -static const char* const cfg = "$CONFIGURE_ARGS"; -const char *aom_codec_build_config(void) {return cfg;} -EOF |