AC_DEFUN([AC_PROG_SHELL],
[AC_MSG_CHECKING([for a POSIX-compliant shell])
AC_CACHE_VAL(ac_cv_path_shell,
[ac_command='
set -C
rm -f conftest.c
>conftest.c || exit
>|conftest.c || exit
!>conftest.c || exit
'
ac_cv_path_shell=no
case $SHELL in
/*)
rm -f conftest.c
if ("$SHELL" -c "$ac_command") 2>/dev/null; then
ac_cv_path_shell=$SHELL
fi;;
esac
case $ac_cv_path_shell in
no)
as_save_IFS=$IFS; IFS=:
for as_dir in /bin /usr/bin $PATH
do
IFS=$as_save_IFS
case $as_dir in
/*)
for ac_base in sh bash ksh sh5; do
rm -f conftest.c
if ("$as_dir/$ac_base" -c "$ac_command") 2>/dev/null; then
ac_cv_path_shell=$as_dir/$ac_base
break
fi
done
case $ac_cv_path_shell in
/*) break;;
esac;;
esac
done
rm -f conftest.c;;
esac])
AC_MSG_RESULT($ac_cv_path_shell)
SHELL=$ac_cv_path_shell
if test "$SHELL" = no; then
SHELL=/bin/sh
AC_MSG_WARN([using $SHELL, even though it does not conform to POSIX])
fi
AC_SUBST(SHELL)])