Annotation of embedaddon/libiconv/srcm4/stat-time.m4, revision 1.1.1.1

1.1       misho       1: # Checks for stat-related time functions.
                      2: 
                      3: # Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2019 Free Software
                      4: # Foundation, Inc.
                      5: 
                      6: # This file is free software; the Free Software Foundation
                      7: # gives unlimited permission to copy and/or distribute it,
                      8: # with or without modifications, as long as this notice is preserved.
                      9: 
                     10: dnl From Paul Eggert.
                     11: 
                     12: # st_atim.tv_nsec - Linux, Solaris, Cygwin
                     13: # st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE
                     14: # st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE
                     15: # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1)
                     16: 
                     17: # st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway)
                     18: # st_birthtim - Cygwin 1.7.0+
                     19: 
                     20: AC_DEFUN([gl_STAT_TIME],
                     21: [
                     22:   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
                     23:   AC_CHECK_HEADERS_ONCE([sys/time.h])
                     24: 
                     25:   AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec],
                     26:     [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec],
                     27:        [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec],
                     28:        [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
                     29:           [[
                     30:             #include <sys/types.h>
                     31:             #include <sys/stat.h>
                     32:             #if HAVE_SYS_TIME_H
                     33:             # include <sys/time.h>
                     34:             #endif
                     35:             #include <time.h>
                     36:             struct timespec ts;
                     37:             struct stat st;
                     38:           ]],
                     39:           [[
                     40:             st.st_atim = ts;
                     41:           ]])],
                     42:           [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes],
                     43:           [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])])
                     44:      if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then
                     45:        AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1],
                     46:          [Define to 1 if the type of the st_atim member of a struct stat is
                     47:           struct timespec.])
                     48:      fi],
                     49:     [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [],
                     50:        [AC_CHECK_MEMBERS([struct stat.st_atimensec], [],
                     51:           [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [],
                     52:              [#include <sys/types.h>
                     53:               #include <sys/stat.h>])],
                     54:           [#include <sys/types.h>
                     55:            #include <sys/stat.h>])],
                     56:        [#include <sys/types.h>
                     57:         #include <sys/stat.h>])],
                     58:     [#include <sys/types.h>
                     59:      #include <sys/stat.h>])
                     60: ])
                     61: 
                     62: # Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.)
                     63: # and NTFS (Cygwin).
                     64: # There was a time when this field was named st_createtime (21 June
                     65: # 2002 to 16 July 2002) But that window is very small and applied only
                     66: # to development code, so systems still using that configuration are
                     67: # not supported.  See revisions 1.10 and 1.11 of FreeBSD's
                     68: # src/sys/ufs/ufs/dinode.h.
                     69: #
                     70: AC_DEFUN([gl_STAT_BIRTHTIME],
                     71: [
                     72:   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
                     73:   AC_CHECK_HEADERS_ONCE([sys/time.h])
                     74:   AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [],
                     75:     [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [],
                     76:       [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [],
                     77:          [#include <sys/types.h>
                     78:           #include <sys/stat.h>])],
                     79:        [#include <sys/types.h>
                     80:         #include <sys/stat.h>])],
                     81:     [#include <sys/types.h>
                     82:      #include <sys/stat.h>])
                     83: ])

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