tests: fix spurious failure due to autom4te caching
[automake.git] / m4 / sanity.m4
blobdb87c8bb1cb7515e4bf3f6bda117c1df898082ab
1 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
3 # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008, 2009
4 # Free Software Foundation, Inc.
6 # This file is free software; the Free Software Foundation
7 # gives unlimited permission to copy and/or distribute it,
8 # with or without modifications, as long as this notice is preserved.
10 # serial 6
12 # AM_SANITY_CHECK
13 # ---------------
14 AC_DEFUN([AM_SANITY_CHECK],
15 [AC_MSG_CHECKING([whether build environment is sane])
16 # Reject unsafe characters in $srcdir or the absolute working directory
17 # name.  Accept space and tab only in the latter.
18 am_lf='
20 case `pwd` in
21   *[[\\\"\#\$\&\'\`$am_lf]]*)
22     AC_MSG_ERROR([unsafe absolute working directory name]);;
23 esac
24 case $srcdir in
25   *[[\\\"\#\$\&\'\`$am_lf\ \    ]]*)
26     AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
27 esac
29 # Do `set' in a subshell so we don't clobber the current shell's
30 # arguments.  Must try -L first in case configure is actually a
31 # symlink; some systems play weird games with the mod time of symlinks
32 # (eg FreeBSD returns the mod time of the symlink's containing
33 # directory).
34 if (
35    for am_try in 1 2; do
36      echo timestamp > conftest.file
37      set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
38      if test "$[*]" = "X"; then
39         # -L didn't work.
40         set X `ls -t "$srcdir/configure" conftest.file`
41      fi
42      rm -f conftest.file
43      if test "$[*]" != "X $srcdir/configure conftest.file" \
44         && test "$[*]" != "X conftest.file $srcdir/configure"; then
46         # If neither matched, then we have a broken ls.  This can happen
47         # if, for instance, CONFIG_SHELL is bash and it inherits a
48         # broken ls alias from the environment.  This has actually
49         # happened.  Such a system could not be considered "sane".
50         AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
51   alias in your environment])
52      fi
53      if test "$[2]" = conftest.file || test $am_try -eq 2; then
54        break
55      fi
56      # Just in case.
57      sleep 1
58    done
59    test "$[2]" = conftest.file
60    )
61 then
62    # Ok.
63    :
64 else
65    AC_MSG_ERROR([newly created file is older than distributed files!
66 Check your system clock])
68 AC_MSG_RESULT(yes)])