Use /usr/bin/test if it exists, and fix test syntax.
[ghc-hetmet.git] / Makefile
index 0d563df..15162b4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -51,6 +51,11 @@ include mk/custom-settings.mk
 # No need to update makefiles for these targets:
 REALGOALS=$(filter-out bootstrapping-files framework-pkg clean clean_% distclean maintainer-clean show help,$(MAKECMDGOALS))
 
+# On Solaris, the builtin test doesn't support -nt, you have to use
+# /usr/bin/test.  On MSYS, however, /usr/bin/test does not exist.  How
+# nice.
+TEST=$(if $(wildcard /usr/bin/test),/usr/bin/test,test)
+
 # configure touches certain files even if they haven't changed.  This
 # can mean a lot of unnecessary recompilation after a re-configure, so
 # here we cache the old versions of these files so we can restore the
@@ -58,12 +63,12 @@ REALGOALS=$(filter-out bootstrapping-files framework-pkg clean clean_% distclean
 #
 define check-configure-file
 # $1 = file
-if ! test -f $1.old; then \
+if $(TEST) ! -f $1.old; then \
   echo "backing up $1"; \
   cp $1 $1.old; \
   touch -r $1 $1.old; \
 else \
-  if test $1 -nt $1.old; then \
+  if $(TEST) $1 -nt $1.old; then \
     if cmp $1 $1.old; then \
        echo "$1 has been touched, but has not changed"; \
        touch -r $1.old $1; \