Annotation of embedaddon/libiconv/srcm4/canonicalize.m4, revision 1.1.1.1

1.1       misho       1: # canonicalize.m4 serial 23
                      2: 
                      3: dnl Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
                      4: 
                      5: dnl This file is free software; the Free Software Foundation
                      6: dnl gives unlimited permission to copy and/or distribute it,
                      7: dnl with or without modifications, as long as this notice is preserved.
                      8: 
                      9: # Provides canonicalize_file_name and canonicalize_filename_mode, but does
                     10: # not provide or fix realpath.
                     11: AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE],
                     12: [
                     13:   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
                     14:   AC_CHECK_FUNCS_ONCE([canonicalize_file_name])
                     15:   AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
                     16:   AC_REQUIRE([gl_FUNC_REALPATH_WORKS])
                     17:   if test $ac_cv_func_canonicalize_file_name = no; then
                     18:     HAVE_CANONICALIZE_FILE_NAME=0
                     19:   elif test "$gl_cv_func_realpath_works" != yes; then
                     20:     REPLACE_CANONICALIZE_FILE_NAME=1
                     21:   fi
                     22: ])
                     23: 
                     24: # Provides canonicalize_file_name and realpath.
                     25: AC_DEFUN([gl_CANONICALIZE_LGPL],
                     26: [
                     27:   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
                     28:   AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE])
                     29:   if test $ac_cv_func_canonicalize_file_name = no; then
                     30:     HAVE_CANONICALIZE_FILE_NAME=0
                     31:     if test $ac_cv_func_realpath = no; then
                     32:       HAVE_REALPATH=0
                     33:     elif test "$gl_cv_func_realpath_works" != yes; then
                     34:       REPLACE_REALPATH=1
                     35:     fi
                     36:   elif test "$gl_cv_func_realpath_works" != yes; then
                     37:     REPLACE_CANONICALIZE_FILE_NAME=1
                     38:     REPLACE_REALPATH=1
                     39:   fi
                     40: ])
                     41: 
                     42: # Like gl_CANONICALIZE_LGPL, except prepare for separate compilation
                     43: # (no REPLACE_CANONICALIZE_FILE_NAME, no REPLACE_REALPATH, no AC_LIBOBJ).
                     44: AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE],
                     45: [
                     46:   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
                     47:   AC_CHECK_FUNCS_ONCE([canonicalize_file_name getcwd readlink])
                     48:   AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
                     49:   AC_REQUIRE([gl_FUNC_REALPATH_WORKS])
                     50:   AC_CHECK_HEADERS_ONCE([sys/param.h])
                     51: ])
                     52: 
                     53: # Check whether realpath works.  Assume that if a platform has both
                     54: # realpath and canonicalize_file_name, but the former is broken, then
                     55: # so is the latter.
                     56: AC_DEFUN([gl_FUNC_REALPATH_WORKS],
                     57: [
                     58:   AC_CHECK_FUNCS_ONCE([realpath])
                     59:   AC_CACHE_CHECK([whether realpath works], [gl_cv_func_realpath_works], [
                     60:     touch conftest.a
                     61:     mkdir conftest.d
                     62:     AC_RUN_IFELSE([
                     63:       AC_LANG_PROGRAM([[
                     64:         ]GL_NOCRASH[
                     65:         #include <stdlib.h>
                     66:         #include <string.h>
                     67:       ]], [[
                     68:         int result = 0;
                     69:         {
                     70:           char *name = realpath ("conftest.a", NULL);
                     71:           if (!(name && *name == '/'))
                     72:             result |= 1;
                     73:         }
                     74:         {
                     75:           char *name = realpath ("conftest.b/../conftest.a", NULL);
                     76:           if (name != NULL)
                     77:             result |= 2;
                     78:         }
                     79:         {
                     80:           char *name = realpath ("conftest.a/", NULL);
                     81:           if (name != NULL)
                     82:             result |= 4;
                     83:         }
                     84:         {
                     85:           char *name1 = realpath (".", NULL);
                     86:           char *name2 = realpath ("conftest.d//./..", NULL);
                     87:           if (strcmp (name1, name2) != 0)
                     88:             result |= 8;
                     89:         }
                     90:         return result;
                     91:       ]])
                     92:     ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no],
                     93:        [gl_cv_func_realpath_works="guessing no"])
                     94:     rm -rf conftest.a conftest.d
                     95:   ])
                     96:   if test "$gl_cv_func_realpath_works" = yes; then
                     97:     AC_DEFINE([FUNC_REALPATH_WORKS], [1], [Define to 1 if realpath()
                     98:       can malloc memory, always gives an absolute path, and handles
                     99:       trailing slash correctly.])
                    100:   fi
                    101: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>