Version submitted to autoconf.
[debian/gzip] / m4 / shell.m4
1 #serial 2
2
3 # AC_PROG_SHELL
4 # -------------
5 # Check for a working (i.e. POSIX-compatible) shell.
6 # Written by Paul Eggert <eggert@twinsun.com>,
7 # from an idea suggested by Albert Chin-A-Young <china@thewrittenword.com>.
8 AC_DEFUN([AC_PROG_SHELL],
9   [AC_MSG_CHECKING([for a POSIX-compliant shell])
10    AC_CACHE_VAL(ac_cv_path_shell,
11      [ac_command='
12         # Test the noclobber option, using the portable POSIX.2 syntax.
13         set -C
14         rm -f conftest.c
15         >conftest.c || exit
16         >|conftest.c || exit
17         !>conftest.c || exit
18       '
19       ac_cv_path_shell=no
20
21       case $SHELL in
22       /*)
23         rm -f conftest.c
24         if ("$SHELL" -c "$ac_command") 2>/dev/null; then
25           ac_cv_path_shell=$SHELL
26         fi;;
27       esac
28
29       case $ac_cv_path_shell in
30       no)
31         ac_dummy=/bin:/usr/bin:/usr/bin/posix:/usr/xpg4/bin:$PATH
32         ac_save_IFS=$IFS; IFS=:
33         for ac_dir in $ac_dummy; do
34           for ac_base in sh bash ksh sh5; do
35             case $ac_dir in
36             /*)
37               rm -f conftest.c
38               if ("$ac_dir/$ac_base" -c "$ac_command") 2>/dev/null; then
39                 ac_cv_path_shell="$ac_dir/$ac_base"
40                 break
41               fi;;
42             esac
43           done
44           case $ac_cv_path_shell in
45           no) ;;
46           *) break;;
47           esac
48         done
49         rm -f conftest.c
50         IFS=$ac_save_IFS;;
51       esac])
52    AC_MSG_RESULT($ac_cv_path_shell)
53    SHELL=$ac_cv_path_shell
54    if test "$SHELL" = no; then
55      SHELL=/bin/sh
56      AC_MSG_WARN([using $SHELL, even though it does not conform to POSIX])
57    fi
58    AC_SUBST(SHELL)])