diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2009-07-05 22:25:17 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2009-07-05 22:25:17 +0300 |
commit | 96e4b257e101d72072d43e144897d92920270669 (patch) | |
tree | 5f1852c0c90b41b66dd0b24ba8719b68cea5d048 /m4/posix-shell.m4 | |
parent | Use @PACKAGE_HOMEPAGE@ in liblzma.pc.in. (diff) | |
download | xz-96e4b257e101d72072d43e144897d92920270669.tar.xz |
Major update to the xzgrep and other scripts based on
the latest versions found from gzip CVS repository.
configure will try to find a POSIX shell to be used by
the scripts. This should ease portability on systems
which have pre-POSIX /bin/sh.
xzgrep and xzdiff support .xz, .lzma, .gz, and .bz2 files.
xzmore and xzless support only .xz and .lzma files.
The name of the xz executable used in these scripts is
now correct even if --program-transform-name has been used.
Diffstat (limited to 'm4/posix-shell.m4')
-rw-r--r-- | m4/posix-shell.m4 | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/m4/posix-shell.m4 b/m4/posix-shell.m4 new file mode 100644 index 00000000..4c56193c --- /dev/null +++ b/m4/posix-shell.m4 @@ -0,0 +1,63 @@ +# Find a POSIX-conforming shell. + +# Copyright (C) 2007-2008 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. + +# Written by Paul Eggert. + +# If a POSIX-conforming shell can be found, set POSIX_SHELL and +# PREFERABLY_POSIX_SHELL to it. If not, set POSIX_SHELL to the +# empty string and PREFERABLY_POSIX_SHELL to '/bin/sh'. + +AC_DEFUN([gl_POSIX_SHELL], +[ + AC_CACHE_CHECK([for a shell that conforms to POSIX], [gl_cv_posix_shell], + [gl_test_posix_shell_script=' + func_return () { + (exit [$]1) + } + func_success () { + func_return 0 + } + func_failure () { + func_return 1 + } + func_ret_success () { + return 0 + } + func_ret_failure () { + return 1 + } + subshell_umask_sanity () { + (umask 22; (umask 0); test $(umask) -eq 22) + } + test "[$](echo foo)" = foo && + func_success && + ! func_failure && + func_ret_success && + ! func_ret_failure && + (set x && func_ret_success y && test x = "[$]1") && + subshell_umask_sanity + ' + for gl_cv_posix_shell in \ + "$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do + case $gl_cv_posix_shell in + /*) + "$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \ + && break;; + esac + done]) + + if test "$gl_cv_posix_shell" != no; then + POSIX_SHELL=$gl_cv_posix_shell + PREFERABLY_POSIX_SHELL=$POSIX_SHELL + else + POSIX_SHELL= + PREFERABLY_POSIX_SHELL=/bin/sh + fi + AC_SUBST([POSIX_SHELL]) + AC_SUBST([PREFERABLY_POSIX_SHELL]) +]) |