Mercurial > hg > vamp-build-and-test
annotate process.sh @ 4:780c4fc19f3e
Print successes, failures
author | Chris Cannam |
---|---|
date | Sat, 26 Jul 2014 10:20:17 +0100 |
parents | 4e4f3903643d |
children | 57da88814766 |
rev | line source |
---|---|
Chris@1 | 1 #!/bin/bash |
Chris@1 | 2 |
Chris@1 | 3 ## Things to test: |
Chris@1 | 4 ## the plugin builds! |
Chris@1 | 5 ## plugin loads |
Chris@1 | 6 ## passes vamp-plugin-tester tests |
Chris@1 | 7 ## does not export any unnecessary symbols |
Chris@1 | 8 ## has valid .cat and .n3 |
Chris@1 | 9 |
Chris@1 | 10 platform=linux |
Chris@2 | 11 bits=64 |
Chris@1 | 12 |
Chris@4 | 13 configure() { |
Chris@4 | 14 dir="$1" |
Chris@4 | 15 if [ -f "$dir/configure" ] ; then |
Chris@4 | 16 ( cd "$dir" ; ./configure ) |
Chris@4 | 17 fi |
Chris@4 | 18 } |
Chris@4 | 19 |
Chris@1 | 20 configure_maybe() { |
Chris@1 | 21 dir="$1" |
Chris@1 | 22 if [ ! -f "$dir/Makefile" ] ; then |
Chris@4 | 23 configure "$dir" |
Chris@1 | 24 fi |
Chris@1 | 25 } |
Chris@1 | 26 |
Chris@1 | 27 find_makefile() { |
Chris@1 | 28 dir="$1" |
Chris@2 | 29 for f in Makefile Makefile.$platform Makefile.$platform$bits build/$platform/Makefile build/$platform/Makefile.$platform build/$platform/Makefile.$platform$bits; do |
Chris@1 | 30 if [ -f "$dir/$f" ]; then |
Chris@1 | 31 echo $f |
Chris@1 | 32 break |
Chris@1 | 33 fi |
Chris@1 | 34 done |
Chris@1 | 35 } |
Chris@1 | 36 |
Chris@4 | 37 build() { |
Chris@4 | 38 dir="$1" |
Chris@1 | 39 if configure_maybe "$dir"; then |
Chris@1 | 40 mfile=$(find_makefile "$dir") |
Chris@1 | 41 if [ -n "$mfile" ]; then |
Chris@1 | 42 make -C "$dir" -f "$mfile" |
Chris@1 | 43 else |
Chris@1 | 44 echo "Failed to find a Makefile in $dir" |
Chris@4 | 45 return 1 |
Chris@1 | 46 fi |
Chris@1 | 47 fi |
Chris@4 | 48 } |
Chris@4 | 49 |
Chris@4 | 50 rebuild() { |
Chris@4 | 51 dir="$1" |
Chris@4 | 52 if configure "$dir"; then |
Chris@4 | 53 mfile=$(find_makefile "$dir") |
Chris@4 | 54 if [ -n "$mfile" ]; then |
Chris@4 | 55 make -C "$dir" -f "$mfile" clean |
Chris@4 | 56 make -C "$dir" -f "$mfile" |
Chris@4 | 57 else |
Chris@4 | 58 echo "Failed to find a Makefile in $dir" |
Chris@4 | 59 return 1 |
Chris@4 | 60 fi |
Chris@4 | 61 fi |
Chris@4 | 62 } |
Chris@4 | 63 |
Chris@4 | 64 successes="/tmp/successes.$$.txt" |
Chris@4 | 65 failures="/tmp/failures.$$.txt" |
Chris@4 | 66 trap 'rm -f "$successes" "$failures"' 0 |
Chris@4 | 67 |
Chris@4 | 68 for dir in $(cat .hgsub | awk '{ print $1; }') ; do |
Chris@4 | 69 echo |
Chris@4 | 70 echo "Processing: $dir" |
Chris@4 | 71 if build "$dir"; then |
Chris@4 | 72 echo "$dir" >> "$successes" |
Chris@4 | 73 else |
Chris@4 | 74 echo "$dir" >> "$failures" |
Chris@4 | 75 fi |
Chris@1 | 76 done |
Chris@1 | 77 |
Chris@4 | 78 echo |
Chris@4 | 79 echo "** Succeeded in building:" |
Chris@4 | 80 cat "$successes" |
Chris@4 | 81 |
Chris@4 | 82 echo |
Chris@4 | 83 echo "** Failed to build:" |
Chris@4 | 84 cat "$failures" |
Chris@4 | 85 |
Chris@4 | 86 echo |