Macro: ac_as_dirname

Back to the Main Page. | Download the M4 Source.

# ac_as_dirname

## Synopsis

``

## Version

1.1.1.1 (2001/07/26) guidod @ ac-archive-0.5.32

## Author

complain to <guidod@gmx.de>

## Description

AC_AS_DIRNAME (PATH) this is the macro AS_DIRNAME from autoconf 2.4x defined here for use in autoconf 2.1x, remove the AC_ when you use 2.4x

## M4 Source Code

    AC_DEFUN([AC_ECHO_MKFILE],
    [dnl
      case $2 in
        */*) P=` AC_AS_DIRNAME($2) ` ; AC_AS_MKDIR_P($P) ;;
      esac
      echo "$1" >$2
    ])

    AC_DEFUN([AC_AS_DIRNAME],
    [AC_AS_DIRNAME_EXPR([$1]) 2>/dev/null ||
    AC_AS_DIRNAME_SED([$1])
    ])

    # _AC_AS_EXPR_PREPARE
    # ----------------
    # Some expr work properly (i.e. compute and issue the right result),
    # but exit with failure.  When a fall back to expr (as in AS_DIRNAME)
    # is provided, you get twice the result.  Prevent this.
    AC_DEFUN([_AC_AS_EXPR_PREPARE],
    [if expr a : '\(a\)' >/dev/null 2>&1; then
      as_expr=expr
    else
      as_expr=false
    fi
    ])# _AC_AS_EXPR_PREPARE

    # AS_DIRNAME(PATHNAME)
    # --------------------
    # Simulate running `dirname(1)' on PATHNAME, not all systems have it.
    # This macro must be usable from inside ` `.
    #
    # Prefer expr to echo|sed, since expr is usually faster and it handles
    # backslashes and newlines correctly.  However, older expr
    # implementations (e.g. SunOS 4 expr and Solaris 8 /usr/ucb/expr) have
    # a silly length limit that causes expr to fail if the matched
    # substring is longer than 120 bytes.  So fall back on echo|sed if
    # expr fails.
    #
    # FIXME: Please note the following m4_require is quite wrong: if the first
    # occurrence of AS_DIRNAME_EXPR is in a backquoted expression, the
    # shell will be lost.  We might have to introduce diversions for
    # setting up an M4sh script: required macros will then be expanded there.

    AC_DEFUN([AC_AS_DIRNAME_EXPR],
    [AC_REQUIRE([_AC_AS_EXPR_PREPARE])dnl
    $as_expr X[]$1 : 'X\(.*[[^/]]\)//*[[^/][^/]]*/*$' \| \
             X[]$1 : 'X\(//\)[[^/]]' \| \
             X[]$1 : 'X\(//\)$' \| \
             X[]$1 : 'X\(/\)' \| \
             .     : '\(.\)'])

    AC_DEFUN([AC_AS_DIRNAME_SED],
    [echo X[]$1 |
        sed ['/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
              /^X\(\/\/\)[^/].*/{ s//\1/; q; }
              /^X\(\/\/\)$/{ s//\1/; q; }
              /^X\(\/\).*/{ s//\1/; q; }
              s/.*/./; q']])