Chris@1: #!/bin/bash Chris@1: Chris@1: ## Things to test: Chris@1: ## the plugin builds! Chris@1: ## plugin loads Chris@1: ## passes vamp-plugin-tester tests Chris@1: ## does not export any unnecessary symbols Chris@1: ## has valid .cat and .n3 Chris@1: Chris@1: platform=linux Chris@2: bits=64 Chris@1: Chris@4: configure() { Chris@4: dir="$1" Chris@4: if [ -f "$dir/configure" ] ; then Chris@4: ( cd "$dir" ; ./configure ) Chris@4: fi Chris@4: } Chris@4: Chris@1: configure_maybe() { Chris@1: dir="$1" Chris@1: if [ ! -f "$dir/Makefile" ] ; then Chris@4: configure "$dir" Chris@1: fi Chris@1: } Chris@1: Chris@1: find_makefile() { Chris@1: dir="$1" Chris@2: for f in Makefile Makefile.$platform Makefile.$platform$bits build/$platform/Makefile build/$platform/Makefile.$platform build/$platform/Makefile.$platform$bits; do Chris@1: if [ -f "$dir/$f" ]; then Chris@1: echo $f Chris@1: break Chris@1: fi Chris@1: done Chris@1: } Chris@1: Chris@4: build() { Chris@4: dir="$1" Chris@1: if configure_maybe "$dir"; then Chris@1: mfile=$(find_makefile "$dir") Chris@1: if [ -n "$mfile" ]; then Chris@1: make -C "$dir" -f "$mfile" Chris@1: else Chris@1: echo "Failed to find a Makefile in $dir" Chris@4: return 1 Chris@1: fi Chris@1: fi Chris@4: } Chris@4: Chris@4: rebuild() { Chris@4: dir="$1" Chris@4: if configure "$dir"; then Chris@4: mfile=$(find_makefile "$dir") Chris@4: if [ -n "$mfile" ]; then Chris@4: make -C "$dir" -f "$mfile" clean Chris@4: make -C "$dir" -f "$mfile" Chris@4: else Chris@4: echo "Failed to find a Makefile in $dir" Chris@4: return 1 Chris@4: fi Chris@4: fi Chris@4: } Chris@4: Chris@4: successes="/tmp/successes.$$.txt" Chris@4: failures="/tmp/failures.$$.txt" Chris@4: trap 'rm -f "$successes" "$failures"' 0 Chris@4: Chris@4: for dir in $(cat .hgsub | awk '{ print $1; }') ; do Chris@4: echo Chris@4: echo "Processing: $dir" Chris@4: if build "$dir"; then Chris@4: echo "$dir" >> "$successes" Chris@4: else Chris@4: echo "$dir" >> "$failures" Chris@4: fi Chris@1: done Chris@1: Chris@4: echo Chris@4: echo "** Succeeded in building:" Chris@4: cat "$successes" Chris@4: Chris@4: echo Chris@4: echo "** Failed to build:" Chris@4: cat "$failures" Chris@4: Chris@4: echo