X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fstrftime.m4;h=1f95d7e7759651722b232ff68eccf28a40d9d439;hb=365c522e3a5b3ae36005ab1d7f3a8bfbb0a9dee7;hp=47cf56c6bbefd6edc7063a707e13cd67db9dc62f;hpb=3a375f0a503483de39d12e4d5056d26a77670431;p=gnulib.git diff --git a/m4/strftime.m4 b/m4/strftime.m4 index 47cf56c6b..1f95d7e77 100644 --- a/m4/strftime.m4 +++ b/m4/strftime.m4 @@ -1,13 +1,25 @@ -#serial 3 +#serial 6 +dnl This macro is intended to be used solely in this file. +dnl These are the prerequisite macros for GNU's strftime.c replacement. +dnl FIXME: the list is far from complete +AC_DEFUN(_jm_STRFTIME_PREREQS, +[ + dnl strftime.c uses localtime_r if it exists. Check for it. + AC_CHECK_FUNCS(localtime_r) + dnl FIXME: add tests for everything in strftime.c: e.g., HAVE_BCOPY, + dnl HAVE_TZNAME, HAVE_TZSET, HAVE_TM_ZONE, etc. +]) + +dnl Determine if the strftime function has all the features of the GNU one. +dnl dnl From Jim Meyering. -dnl If you use this macro in a package, you should -dnl add the following two lines to acconfig.h: -dnl /* Define to gnu_strftime if the replacement function should be used. */ -dnl #undef strftime dnl AC_DEFUN(jm_FUNC_GNU_STRFTIME, [AC_REQUIRE([AC_HEADER_TIME])dnl + + _jm_STRFTIME_PREREQS + AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_CHECK_HEADERS(sys/time.h) @@ -68,6 +80,7 @@ main () CMP ("%^B", "JANUARY"); CMP ("%C", "19"); /* POSIX.2 */ CMP ("%D", "01/09/70"); /* POSIX.2 */ + CMP ("%F", "1970-01-09"); CMP ("%G", "1970"); /* GNU */ CMP ("%H", "13"); CMP ("%I", "01"); @@ -119,7 +132,15 @@ changequote([, ])dnl jm_cv_func_working_gnu_strftime=no) ]) if test $jm_cv_func_working_gnu_strftime = no; then - LIBOBJS="$LIBOBJS strftime.o" - AC_DEFINE_UNQUOTED(strftime, gnu_strftime) + AC_SUBST(LIBOBJS) + LIBOBJS="$LIBOBJS strftime.$ac_objext" + AC_DEFINE_UNQUOTED(strftime, gnu_strftime, + [Define to gnu_strftime if the replacement function should be used.]) fi ]) + +AC_DEFUN(jm_FUNC_STRFTIME, +[ + _jm_STRFTIME_PREREQS + AC_REPLACE_FUNCS(strftime) +])