OLD | NEW |
(Empty) | |
| 1 # Find a POSIX-conforming shell. |
| 2 |
| 3 # Copyright (C) 2007-2008 Free Software Foundation, Inc. |
| 4 |
| 5 # This file is free software; the Free Software Foundation |
| 6 # gives unlimited permission to copy and/or distribute it, |
| 7 # with or without modifications, as long as this notice is preserved. |
| 8 |
| 9 # Written by Paul Eggert. |
| 10 |
| 11 # If a POSIX-conforming shell can be found, set POSIX_SHELL and |
| 12 # PREFERABLY_POSIX_SHELL to it. If not, set POSIX_SHELL to the |
| 13 # empty string and PREFERABLY_POSIX_SHELL to '/bin/sh'. |
| 14 |
| 15 AC_DEFUN([gl_POSIX_SHELL], |
| 16 [ |
| 17 AC_CACHE_CHECK([for a shell that conforms to POSIX], [gl_cv_posix_shell], |
| 18 [gl_test_posix_shell_script=' |
| 19 func_return () { |
| 20 (exit [$]1) |
| 21 } |
| 22 func_success () { |
| 23 func_return 0 |
| 24 } |
| 25 func_failure () { |
| 26 func_return 1 |
| 27 } |
| 28 func_ret_success () { |
| 29 return 0 |
| 30 } |
| 31 func_ret_failure () { |
| 32 return 1 |
| 33 } |
| 34 subshell_umask_sanity () { |
| 35 (umask 22; (umask 0); test $(umask) -eq 22) |
| 36 } |
| 37 test "[$](echo foo)" = foo && |
| 38 func_success && |
| 39 ! func_failure && |
| 40 func_ret_success && |
| 41 ! func_ret_failure && |
| 42 (set x && func_ret_success y && test x = "[$]1") && |
| 43 subshell_umask_sanity |
| 44 ' |
| 45 for gl_cv_posix_shell in \ |
| 46 "$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do |
| 47 case $gl_cv_posix_shell in |
| 48 /*) |
| 49 "$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \ |
| 50 && break;; |
| 51 esac |
| 52 done]) |
| 53 |
| 54 if test "$gl_cv_posix_shell" != no; then |
| 55 POSIX_SHELL=$gl_cv_posix_shell |
| 56 PREFERABLY_POSIX_SHELL=$POSIX_SHELL |
| 57 else |
| 58 POSIX_SHELL= |
| 59 PREFERABLY_POSIX_SHELL=/bin/sh |
| 60 fi |
| 61 AC_SUBST([POSIX_SHELL]) |
| 62 AC_SUBST([PREFERABLY_POSIX_SHELL]) |
| 63 ]) |
OLD | NEW |