83 lines
2.6 KiB
Plaintext
83 lines
2.6 KiB
Plaintext
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||
|
|
||
|
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||
|
#
|
||
|
# This file is free software; the Free Software Foundation
|
||
|
# gives unlimited permission to copy and/or distribute it,
|
||
|
# with or without modifications, as long as this notice is preserved.
|
||
|
|
||
|
# AM_SANITY_CHECK
|
||
|
# ---------------
|
||
|
AC_DEFUN([AM_SANITY_CHECK],
|
||
|
[AC_MSG_CHECKING([whether build environment is sane])
|
||
|
# Reject unsafe characters in $srcdir or the absolute working directory
|
||
|
# name. Accept space and tab only in the latter.
|
||
|
am_lf='
|
||
|
'
|
||
|
case `pwd` in
|
||
|
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
||
|
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||
|
esac
|
||
|
case $srcdir in
|
||
|
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||
|
AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
|
||
|
esac
|
||
|
|
||
|
# Do 'set' in a subshell so we don't clobber the current shell's
|
||
|
# arguments. Must try -L first in case configure is actually a
|
||
|
# symlink; some systems play weird games with the mod time of symlinks
|
||
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
||
|
# directory).
|
||
|
if (
|
||
|
am_has_slept=no
|
||
|
for am_try in 1 2; do
|
||
|
echo "timestamp, slept: $am_has_slept" > conftest.file
|
||
|
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||
|
if test "$[*]" = "X"; then
|
||
|
# -L didn't work.
|
||
|
set X `ls -t "$srcdir/configure" conftest.file`
|
||
|
fi
|
||
|
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||
|
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||
|
|
||
|
# If neither matched, then we have a broken ls. This can happen
|
||
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||
|
# broken ls alias from the environment. This has actually
|
||
|
# happened. Such a system could not be considered "sane".
|
||
|
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||
|
alias in your environment])
|
||
|
fi
|
||
|
if test "$[2]" = conftest.file || test $am_try -eq 2; then
|
||
|
break
|
||
|
fi
|
||
|
# Just in case.
|
||
|
sleep 1
|
||
|
am_has_slept=yes
|
||
|
done
|
||
|
test "$[2]" = conftest.file
|
||
|
)
|
||
|
then
|
||
|
# Ok.
|
||
|
:
|
||
|
else
|
||
|
AC_MSG_ERROR([newly created file is older than distributed files!
|
||
|
Check your system clock])
|
||
|
fi
|
||
|
AC_MSG_RESULT([yes])
|
||
|
# If we didn't sleep, we still need to ensure time stamps of config.status and
|
||
|
# generated files are strictly newer.
|
||
|
am_sleep_pid=
|
||
|
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
|
||
|
( sleep 1 ) &
|
||
|
am_sleep_pid=$!
|
||
|
fi
|
||
|
AC_CONFIG_COMMANDS_PRE(
|
||
|
[AC_MSG_CHECKING([that generated files are newer than configure])
|
||
|
if test -n "$am_sleep_pid"; then
|
||
|
# Hide warnings about reused PIDs.
|
||
|
wait $am_sleep_pid 2>/dev/null
|
||
|
fi
|
||
|
AC_MSG_RESULT([done])])
|
||
|
rm -f conftest.file
|
||
|
])
|