summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-07-09 12:46:16 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-07-09 12:46:16 +0000
commit011b3b8439402dd701093234fcca59bd38216206 (patch)
treee8de06ea5fe04fa0322f182008ffacd9dd320c7b
parentbc65cfb23f1715a7a172e06ab8f067ca68f84e90 (diff)
downloadhaskell-011b3b8439402dd701093234fcca59bd38216206.tar.gz
Use /usr/bin/test if it exists, and fix test syntax.
Should fix Solaris build failures
-rw-r--r--Makefile9
1 files changed, 7 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 0d563df8e1..15162b47f3 100644
--- 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; \