summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorDan Nicholson <dbn.lists@gmail.com>2007-10-23 18:17:16 -0700
committerDan Nicholson <dbn.lists@gmail.com>2007-10-31 14:59:13 -0700
commitd7eb97bbc3347bf37449db93463d646f6d5d7319 (patch)
treeb503e4ceae0e8cebd4b68c436eaf9ff412030666 /bin
parentc3b5adaa9a7bdb7e61305c32e4991e3b38dab902 (diff)
confdiff.sh: A testing script for comparing configs settings
This is a simple script that compares the make variables set by two different configs stubs. The purpose is to highlight differences so that any unnecessary duplication or divergence can be removed. For example, on Linux x86: $ ./bin/confdiff.sh linux linux-x86 The output isn't very clean, but it should highlight that the only difference is that the x86 target uses x86 assembler sources. The script uses bash, mktemp, make, sed and diff. It is probably not very portable and might only work on GNU make.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/confdiff.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/bin/confdiff.sh b/bin/confdiff.sh
new file mode 100755
index 0000000000..568fcd6d56
--- /dev/null
+++ b/bin/confdiff.sh
@@ -0,0 +1,48 @@
+#!/bin/bash -e
+
+usage()
+{
+ echo "Usage: $0 <target1> <target2>"
+ echo "Highlight differences between Mesa configs"
+ echo "Example:"
+ echo " $0 linux linux-x86"
+}
+
+die()
+{
+ echo "$@" >&2
+ return 1
+}
+
+case "$1" in
+-h|--help) usage; exit 0;;
+esac
+
+[ $# -lt 2 ] && die 2 targets needed. See $0 --help
+target1=$1
+target2=$2
+
+topdir=$(cd "`dirname $0`"/..; pwd)
+cd "$topdir"
+
+[ -f "./configs/$target1" ] || die Missing configs/$target1
+[ -f "./configs/$target2" ] || die Missing configs/$target2
+
+trap 'rm -f "$t1" "$t2"' 0
+
+t1=$(mktemp)
+t2=$(mktemp)
+
+make -f- -n -p <<EOF | sed '/^# Not a target/,/^$/d' > $t1
+TOP = .
+include \$(TOP)/configs/$target1
+default:
+EOF
+
+make -f- -n -p <<EOF | sed '/^# Not a target/,/^$/d' > $t2
+TOP = .
+include \$(TOP)/configs/$target2
+default:
+EOF
+
+diff -pu -I'^#' $t1 $t2