diff --git a/configure b/configure
index 4f6927491ad9979c44d48318fe122dbae141825e..59fa131de3d4cbcecf1966b9963f949e7d2a3076 100755
--- a/configure
+++ b/configure
@@ -19113,12 +19113,7 @@ if test "$no_create" != yes; then
 fi
 
 
-#
-# We have to run the thread test here because it is an external program
-# that has to be runable separately for cross-compiling.
-#
-if test "$enable_thread_safety" = yes; then
-if test cross_compiling != yes; then
+# Check for gmake.
 for ac_prog in gmake make
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -19159,41 +19154,54 @@ fi
   test -n "$MAKE" && break
 done
 
-echo "$as_me:$LINENO: checking thread safety of required library functions." >&5
-echo $ECHO_N "checking thread safety of required library functions.... $ECHO_C" >&6
+if ! $MAKE -v | grep 'GNU Make' >/dev/null
+then	rm -f $srcdir/src/Makefile.global
+	echo "$as_me:$LINENO: checking Can not find GNU Make.  It is required." >&5
+echo $ECHO_N "checking Can not find GNU Make.  It is required.... $ECHO_C" >&6
+fi
+
+# Thread testing
+
+# We have to run the thread test here because it is an external program
+# that has to be runable separately for cross-compiling.
+#
+if test "$enable_thread_safety" = yes; then
+if test cross_compiling != yes; then
 #
 # Clean, compile, run, and clean thread test directory.
 # If test fails for any reason, remove Makefile.global so the user can't
 # compile (to simulate a configure failure).
 #
-$MAKE -C $srcdir/src/tools/thread clean >&5 ||
-	( rm -f src/Makefile.global
-	  { { echo "$as_me:$LINENO: error: Can not clean thread test directory." >&5
+echo "$as_me:$LINENO: checking thread safety of required library functions" >&5
+echo $ECHO_N "checking thread safety of required library functions... $ECHO_C" >&6
+if ! $MAKE -C $srcdir/src/tools/thread clean >&5
+then	rm -f $srcdir/src/Makefile.global
+	{ { echo "$as_me:$LINENO: error: Can not clean thread test directory." >&5
 echo "$as_me: error: Can not clean thread test directory." >&2;}
-   { (exit 1); exit 1; }; }) ||
-	exit $?
-$MAKE -C $srcdir/src/tools/thread >&5 ||
-	( rm -f src/Makefile.global
-	  { { echo "$as_me:$LINENO: error: Can not build thread test proram." >&5
+   { (exit 1); exit 1; }; }
+fi
+if ! $MAKE -C $srcdir/src/tools/thread >&5
+then	rm -f $srcdir/src/Makefile.global
+	{ { echo "$as_me:$LINENO: error: Can not build thread test proram." >&5
 echo "$as_me: error: Can not build thread test proram." >&2;}
-   { (exit 1); exit 1; }; }) ||
-	exit $?
-$srcdir/src/tools/thread/thread_test >&5 ||
-	( rm -f src/Makefile.global
-	  echo "no"
-	  echo
-	  $srcdir/src/tools/thread/thread_test
-	  echo
-	  { { echo "$as_me:$LINENO: error: Thread test program failed.  Your platform is not thread-safe." >&5
+   { (exit 1); exit 1; }; }
+fi
+if ! $srcdir/src/tools/thread/thread_test >&5
+then	rm -f $srcdir/src/Makefile.global
+	echo "no"
+	echo
+	$srcdir/src/tools/thread/thread_test
+	echo
+	{ { echo "$as_me:$LINENO: error: Thread test program failed.  Your platform is not thread-safe." >&5
 echo "$as_me: error: Thread test program failed.  Your platform is not thread-safe." >&2;}
-   { (exit 1); exit 1; }; }) ||
-	exit $?
-$MAKE -C $srcdir/src/tools/thread clean >&5 ||
-	( rm -f src/Makefile.global
-	  { { echo "$as_me:$LINENO: error: Can not clean thread test directory." >&5
+   { (exit 1); exit 1; }; }
+fi
+if ! $MAKE -C $srcdir/src/tools/thread clean >&5
+then	rm -f $srcdir/src/Makefile.global
+	{ { echo "$as_me:$LINENO: error: Can not clean thread test directory." >&5
 echo "$as_me: error: Can not clean thread test directory." >&2;}
-   { (exit 1); exit 1; }; }) ||
-	exit $?
+   { (exit 1); exit 1; }; }
+fi
 echo "yes"
 else
 { echo "$as_me:$LINENO: WARNING:
diff --git a/configure.in b/configure.in
index fd7fc371a5223b7902344548689dd7bd41b2bc1d..34ad092e91859378b4e369a9fb94df2a04c513ba 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $PostgreSQL: pgsql/configure.in,v 1.334 2004/04/26 04:04:42 momjian Exp $
+dnl $PostgreSQL: pgsql/configure.in,v 1.335 2004/04/26 13:14:48 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -1215,39 +1215,46 @@ echo >src/include/stamp-h
 
 AC_OUTPUT
 
-#
+# Check for gmake.
+AC_CHECK_PROGS(MAKE, gmake make)
+if ! $MAKE -v | grep 'GNU Make' >/dev/null
+then	rm -f $srcdir/src/Makefile.global
+	AC_MSG_CHECKING([Can not find GNU Make.  It is required.])
+fi
+
+# Thread testing
+
 # We have to run the thread test here because it is an external program
 # that has to be runable separately for cross-compiling.
 #
 if test "$enable_thread_safety" = yes; then
 if test cross_compiling != yes; then
-AC_CHECK_PROGS(MAKE, gmake make)
-AC_MSG_CHECKING([thread safety of required library functions.])
 #
 # Clean, compile, run, and clean thread test directory.
 # If test fails for any reason, remove Makefile.global so the user can't
 # compile (to simulate a configure failure).
 #
-$MAKE -C $srcdir/src/tools/thread clean >&5 ||
-	( rm -f src/Makefile.global
-	  AC_MSG_ERROR([Can not clean thread test directory.])) ||
-	exit $?
-$MAKE -C $srcdir/src/tools/thread >&5 ||
-	( rm -f src/Makefile.global
-	  AC_MSG_ERROR([Can not build thread test proram.])) ||
-	exit $?
-$srcdir/src/tools/thread/thread_test >&5 ||
-	( rm -f src/Makefile.global
-	  echo "no"
-	  echo
-	  $srcdir/src/tools/thread/thread_test
-	  echo
-	  AC_MSG_ERROR([Thread test program failed.  Your platform is not thread-safe.])) ||
-	exit $?
-$MAKE -C $srcdir/src/tools/thread clean >&5 ||
-	( rm -f src/Makefile.global
-	  AC_MSG_ERROR([Can not clean thread test directory.])) ||
-	exit $?
+AC_MSG_CHECKING([thread safety of required library functions])
+if ! $MAKE -C $srcdir/src/tools/thread clean >&5
+then	rm -f $srcdir/src/Makefile.global
+	AC_MSG_ERROR([Can not clean thread test directory.])
+fi
+if ! $MAKE -C $srcdir/src/tools/thread >&5
+then	rm -f $srcdir/src/Makefile.global
+	AC_MSG_ERROR([Can not build thread test proram.])
+fi
+if ! $srcdir/src/tools/thread/thread_test >&5
+then	rm -f $srcdir/src/Makefile.global
+	echo "no"
+	echo
+	$srcdir/src/tools/thread/thread_test
+	echo
+	AC_MSG_ERROR([Thread test program failed.  Your platform is not thread-safe.])
+fi
+if ! $MAKE -C $srcdir/src/tools/thread clean >&5
+then	rm -f $srcdir/src/Makefile.global
+	AC_MSG_ERROR([Can not clean thread test directory.])
+fi
 echo "yes"
 else
 AC_MSG_WARN([