diff options
Diffstat (limited to 'm4/ctng_prog_stat.m4')
-rw-r--r-- | m4/ctng_prog_stat.m4 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/m4/ctng_prog_stat.m4 b/m4/ctng_prog_stat.m4 new file mode 100644 index 0000000..6bee076 --- /dev/null +++ b/m4/ctng_prog_stat.m4 @@ -0,0 +1,31 @@ +# Check that stat(1) is present and determine the syntax for the format +# string (BSD or GNU). Defines ac_cv_stat_flavor to either GNU or BSD; +# and evaluates either IF-GNU or IF-BSD expression. +# CTNG_PROG_STAT([IF-GNU], [IF-BSD]) +AC_DEFUN([CTNG_PROG_STAT_FORMAT], + [AC_CACHE_CHECK([whether stat takes GNU or BSD format], + [ctng_cv_stat_flavor], + [touch conftest + chmod 642 conftest + attr_bsd=$(stat -f '%Lp' conftest 2>/dev/null) + attr_gnu=$(stat -c '%a' conftest 2>/dev/null) + rm -f conftest + AS_IF([test "$attr_bsd" = "642"], + [ctng_cv_stat_flavor=BSD], + [test "$attr_gnu" = "642"], + [ctng_cv_stat_flavor=GNU], + [ctng_cv_stat_flavor=unknown])]) + AS_IF([test "$ctng_cv_stat_flavor" = "GNU" ], [$1], + [test "$ctng_cv_stat_flavor" = "BSD" ], [$2], + [AC_MSG_ERROR([cannot determine stat(1) format option])]) + ]) + +AC_DEFUN([CTNG_PROG_STAT], + [AX_REQUIRE_DEFINED([CTNG_CHECK_PROGS_REQ]) + CTNG_CHECK_PROGS_REQ([stat], [stat]) + CTNG_PROG_STAT_FORMAT( + [CTNG_SET_KCONFIG_OPTION([stat_flavor_GNU], [y]) + CTNG_SET_KCONFIG_OPTION([stat_flavor_BSD])], + [CTNG_SET_KCONFIG_OPTION([stat_flavor_BSD], [y]) + CTNG_SET_KCONFIG_OPTION([stat_flavor_GNU])]) + ]) |