#!/bin/bash set -e set -o pipefail oot_rel=oot-rel.tmp~ oot_abs=$(cd .. && pwd)/oot-comprehensive-test.tmp~ nproc=$(nproc || echo 1) mflags=-j$nproc for arg in "$@"; do case "$arg" in --oot-abs=*) oot_abs=${arg%*=} ;; *) echo >&2 "unknown arg/option $1"; exit 1;; esac done case "${OLD_SECNET_DIR:?must be set, perhaps to the empty string}" in ''|/*) ;; ../*) OLD_SECNET_DIR="${PWD%/*}/${OLD_SECNET_DIR#../}" echo >&2 "x OLD_SECNET_DIR=$OLD_SECNET_DIR" ;; *) echo >&2 "relative non-.. OLD_SECNET_DIR $OLD_SECNET_DIR !"; exit 1 ;; esac x () { echo >&2 "x $*"; "$@"; } srcdir=$(pwd) build_and_test () { cd "$srcdir" x git clean -xdff if [ "x$1" != x. ]; then rm -rf "$1" mkdir "$1" fi x ./autogen.sh x cd "$1" x "$srcdir/configure" CFLAGS='-O0 -g' x make $mflags all check for t in mtest/check stest/check; do x make $mflags clean x make $mflags $t done x make $mflags clean if [ "x$1" != x. ]; then find -type f else git-ls-files -o fi | perl -ne ' s{^\./}{}; s{^}{/}; next if m{^/ct-files$}; next if m{^/autom4te\.cache/}; next if m{/Makefile$}; next if m{\.mk$}; next if m{^/common\.make$}; next if m{^/(?:config|\.makefiles)\.stamp$}; next if m{^/config\.(?:log|status|h)$}; warn "clean in '"$1"' missed $_"; $bad=1; END { exit $bad; } ' cd "$srcdir" } build_and_test . build_and_test "$oot_rel" build_and_test "$oot_abs" echo "----- $0 ok -----"