+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
+# timestamps.
+#
+define check-configure-file
+# $1 = file
+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 cmp $1 $1.old; then \
+ echo "$1 has been touched, but has not changed"; \
+ touch -r $1.old $1; \
+ else \
+ echo "$1 has changed"; \
+ cp $1 $1.old; \
+ touch -r $1 $1.old; \
+ fi \
+ fi \
+fi
+endef