# HG changeset patch # User Jim Meyering # Date 913010069 0 # Node ID 7466892dbc6bc860ff060525964730caba449c58 # Parent db3dc1c514e181dfccac08c99aca8c6ac112fd97 *** empty log message *** diff --git a/m4/dirname.m4 b/m4/dirname.m4 new file mode 100644 --- /dev/null +++ b/m4/dirname.m4 @@ -0,0 +1,27 @@ +#serial 1 + +dnl See if the dirname function modifies its argument. +dnl We can't just do AC_REPLACE_FUNCS(dirname) because some systems +dnl (e.g., X/Open) have a function by that name that modifies and returns +dnl its argument. +AC_DEFUN(jm_FUNC_DIRNAME, +[dnl + AC_CACHE_CHECK([for working dirname function], jm_cv_func_working_dirname, + [AC_TRY_RUN([ + int main () + { + const char *path = "a/b"; + char *dir = dirname (path); + exit ((dir != path && *dir == 'a' && dir[1] == 0) ? 0 : 1); + } + ], jm_cv_func_working_dirname=yes dnl The library version works. + , jm_cv_func_working_dirname=no dnl The library version does NOT work. + , jm_cv_func_working_dirname=no dnl We're cross compiling. + ) + ]) + + if test $jm_cv_func_working_dirname = no; then + LIBOBJS="$LIBOBJS dirname.o" + AC_SUBST(LIBOBJS)dnl + fi +])