| Index: third_party/libvpx_new/lint_config.sh
|
| diff --git a/third_party/libvpx_new/lint_config.sh b/third_party/libvpx_new/lint_config.sh
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..d57e4518fde8c3213e6c7608918ddb69ad7a8680
|
| --- /dev/null
|
| +++ b/third_party/libvpx_new/lint_config.sh
|
| @@ -0,0 +1,109 @@
|
| +#!/bin/bash -e
|
| +#
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# This script is used to compare vpx_config.h and vpx_config.asm to
|
| +# verify the two files match.
|
| +#
|
| +# Arguments:
|
| +#
|
| +# -h - C Header file.
|
| +# -a - ASM file.
|
| +# -p - Print the options if correct.
|
| +# -o - Output file.
|
| +#
|
| +# Usage:
|
| +#
|
| +# # Compare the two configuration files and output the final results.
|
| +# ./lint_config.sh -h vpx_config.h -a vpx_config.asm -o libvpx.config -p
|
| +
|
| +export LC_ALL=C
|
| +print_final="no"
|
| +
|
| +while getopts "h:a:o:p" flag
|
| +do
|
| + if [ "$flag" = "h" ]; then
|
| + header_file=$OPTARG
|
| + elif [ "$flag" = "a" ]; then
|
| + asm_file=$OPTARG
|
| + elif [ "$flag" = "o" ]; then
|
| + out_file=$OPTARG
|
| + elif [ "$flag" = "p" ]; then
|
| + print_final="yes"
|
| + fi
|
| +done
|
| +
|
| +if [ -z "$header_file" ]; then
|
| + echo "Header file not specified."
|
| + false
|
| + exit
|
| +fi
|
| +
|
| +if [ -z "$asm_file" ]; then
|
| + echo "ASM file not specified."
|
| + false
|
| + exit
|
| +fi
|
| +
|
| +# Concat header file and assembly file and select those ended with 0 or 1.
|
| +combined_config="$(cat $header_file $asm_file | grep -E ' +[01] *$')"
|
| +
|
| +# Extra filtering for known exceptions.
|
| +combined_config="$(echo "$combined_config" | grep -v DO1STROUNDING)"
|
| +
|
| +# Remove all spaces.
|
| +combined_config="$(echo "$combined_config" | sed 's/[ \t]//g')"
|
| +
|
| +# Remove #define in the header file.
|
| +combined_config="$(echo "$combined_config" | sed 's/.*define//')"
|
| +
|
| +# Remove equ in the ASM file.
|
| +combined_config="$(echo "$combined_config" | sed 's/\.equ//')" # gas style
|
| +combined_config="$(echo "$combined_config" | sed 's/equ//')" # rvds style
|
| +
|
| +# Remove %define in YASM ASM files.
|
| +combined_config="$(echo "$combined_config" | sed 's/%define\s *//')" # yasm style
|
| +
|
| +# Remove useless comma in gas style assembly file.
|
| +combined_config="$(echo "$combined_config" | sed 's/,//')"
|
| +
|
| +# Substitute 0 with =no.
|
| +combined_config="$(echo "$combined_config" | sed 's/0$/=no/')"
|
| +
|
| +# Substitute 1 with =yes.
|
| +combined_config="$(echo "$combined_config" | sed 's/1$/=yes/')"
|
| +
|
| +# Find the mismatch variables.
|
| +odd_config="$(echo "$combined_config" | sort | uniq -u)"
|
| +odd_vars="$(echo "$odd_config" | sed 's/=.*//' | uniq)"
|
| +
|
| +for var in $odd_vars; do
|
| + echo "Error: Configuration mismatch for $var."
|
| + echo "Header file: $header_file"
|
| + echo "$(cat -n $header_file | grep "$var[ \t]")"
|
| + echo "Assembly file: $asm_file"
|
| + echo "$(cat -n $asm_file | grep "$var[ \t]")"
|
| + echo ""
|
| +done
|
| +
|
| +if [ -n "$odd_vars" ]; then
|
| + false
|
| + exit
|
| +fi
|
| +
|
| +if [ "$print_final" = "no" ]; then
|
| + exit
|
| +fi
|
| +
|
| +# Do some additional filter to make libvpx happy.
|
| +combined_config="$(echo "$combined_config" | grep -v ARCH_X86=no)"
|
| +combined_config="$(echo "$combined_config" | grep -v ARCH_X86_64=no)"
|
| +
|
| +# Print out the unique configurations.
|
| +if [ -n "$out_file" ]; then
|
| + echo "$combined_config" | sort | uniq > $out_file
|
| +else
|
| + echo "$combined_config" | sort | uniq
|
| +fi
|
|
|