-test_tree samba4 source gcc
-test_tree samba_3_0 source gcc
-test_tree rsync . gcc
-test_tree distcc . gcc
-test_tree ccache . gcc
+per_run_hook
+
+global_lock
+
+system=`uname`
+
+ENVCFLAGS=$CFLAGS
+cur_compiler_sum=""
+last_compiler_sum=""
+
+if [ "x$compilers" = "x" ]; then
+ compilers="gcc cc icc"
+fi
+
+for compiler in $compilers; do
+
+ echo "working with compiler $compiler"
+ # arrgh, "which" gives no err code on solaris
+ path=`which $compiler`
+ if [ -x "$path" ]; then
+
+ # We do not want to build with the same compiler twice
+ # cc is a symlink to gcc on some systems
+ cur_compiler_sum="`sum $path | sed 's/ .*//'`"
+ test x"$cur_compiler_sum" = x"" && {
+ cur_compiler_sum="$path"
+ }
+ test x"$last_compiler_sum" = x"$cur_compiler_sum" && {
+ continue;
+ }
+ last_compiler_sum="$cur_compiler_sum"
+
+ if $compiler -v 2>&1 | grep gcc.version > /dev/null; then
+ isgcc=1
+ CFLAGS="$ENVCFLAGS -Wall -g"
+ else
+ isgcc=0
+ CFLAGS="$ENVCFLAGS -g"
+ fi
+
+ CFLAGS_THIS_COMPILER=`eval CFLAGS_$compiler 2>/dev/null`
+ if [ $? = 0 ] ; then
+ CFLAGS="$CFLAGS_THIS_COMPILER $CFLAGS"
+ fi
+ export CFLAGS
+
+ TDB_NO_FSYNC=1
+ export TDB_NO_FSYNC
+ test_tree samba_4_0_test . $compiler
+ TDB_NO_FSYNC=0
+ export TDB_NO_FSYNC
+
+ if [ $compiler = gcc -o $isgcc = 0 ]; then
+ . common.fns
+ test_tree lorikeet-heimdal . $compiler
+
+ # only attempt samba-gtk if we have perl and gtk+-2.0
+ if which perl > /dev/null && which pkg-config > /dev/null && pkg-config --exists gtk+-2.0; then
+ test_tree samba-gtk . $compiler
+ fi
+
+ TDB_NO_FSYNC=1
+ export TDB_NO_FSYNC
+ test_tree samba_3_current source3 $compiler
+ test_tree samba_3_next source3 $compiler
+ test_tree samba_3_master source3 $compiler
+ TDB_NO_FSYNC=0
+ export TDB_NO_FSYNC
+
+ # by default build ppp only on SunOS or Linux systems
+ if [ "$system" = Linux -o "$system" = SunOS ]; then
+ test_tree ppp . $compiler
+ fi
+ fi
+ fi
+
+ # only attempt pidl if we have perl
+ if which perl > /dev/null; then
+ test_tree pidl . cc
+ fi
+
+done
+
+global_unlock