X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffnmatch.m4;h=ba2a88f5989e97980c200335f7d429bfec7fe20c;hb=5e576318cdb5628381e4082c3f4a29c1e97f27a8;hp=708f9e6d4c19a130dfe5091cd17afd6aa48b89ea;hpb=69421bbfd15c3db4e4a20f52c0adcd536fe7436c;p=gnulib.git diff --git a/m4/fnmatch.m4 b/m4/fnmatch.m4 index 708f9e6d4..ba2a88f59 100644 --- a/m4/fnmatch.m4 +++ b/m4/fnmatch.m4 @@ -1,9 +1,9 @@ # Check for fnmatch. # This is a modified version of autoconf's AC_FUNC_FNMATCH. -# This file should be removed after Autoconf 2.54 is required. +# This file should be simplified after Autoconf 2.57 is required. -# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 2000-2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -34,7 +34,9 @@ AC_DEFUN([_AC_FUNC_FNMATCH_IF], # Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. AC_RUN_IFELSE( [AC_LANG_PROGRAM( - [#include + [ +# include +# include # define y(a, b, c) (fnmatch (a, b, c) == 0) # define n(a, b, c) (fnmatch (a, b, c) == FNM_NOMATCH) ], @@ -71,17 +73,42 @@ AC_CHECK_DECLS([getenv]) AC_CHECK_FUNCS([btowc mbsrtowcs mempcpy wmempcpy]) AC_CHECK_HEADERS([wchar.h wctype.h]) AC_LIBOBJ([fnmatch]) -AC_CONFIG_LINKS([lib/fnmatch.h:lib/fnmatch_.h]) -AC_DEFINE(fnmatch, rpl_fnmatch, - [Define to rpl_fnmatch if the replacement function should be used.]) +FNMATCH_H=fnmatch.h ])# _AC_LIBOBJ_FNMATCH -# AC_FUNC_FNMATCH_GNU -# ------------------- -AC_DEFUN([AC_FUNC_FNMATCH_GNU], -[AC_REQUIRE([AC_GNU_SOURCE]) -_AC_FUNC_FNMATCH_IF([GNU], [ac_cv_func_fnmatch_gnu], - [rm -f lib/fnmatch.h], - [_AC_LIBOBJ_FNMATCH]) -])# AC_FUNC_FNMATCH_GNU +AC_DEFUN([gl_FUNC_FNMATCH_POSIX], +[ + FNMATCH_H= + _AC_FUNC_FNMATCH_IF([POSIX], [ac_cv_func_fnmatch_posix], + [rm -f lib/fnmatch.h], + [_AC_LIBOBJ_FNMATCH]) + if test $ac_cv_func_fnmatch_posix != yes; then + dnl We must choose a different name for our function, since on ELF systems + dnl a broken fnmatch() in libc.so would override our fnmatch() if it is + dnl compiled into a shared library. + AC_DEFINE([fnmatch], [posix_fnmatch], + [Define to a replacement function name for fnmatch().]) + fi + AC_SUBST([FNMATCH_H]) +]) + + +AC_DEFUN([gl_FUNC_FNMATCH_GNU], +[ + dnl Persuade glibc to declare FNM_CASEFOLD etc. + AC_REQUIRE([AC_GNU_SOURCE]) + + FNMATCH_H= + _AC_FUNC_FNMATCH_IF([GNU], [ac_cv_func_fnmatch_gnu], + [rm -f lib/fnmatch.h], + [_AC_LIBOBJ_FNMATCH]) + if test $ac_cv_func_fnmatch_gnu != yes; then + dnl We must choose a different name for our function, since on ELF systems + dnl a broken fnmatch() in libc.so would override our fnmatch() if it is + dnl compiled into a shared library. + AC_DEFINE([fnmatch], [gnu_fnmatch], + [Define to a replacement function name for fnmatch().]) + fi + AC_SUBST([FNMATCH_H]) +])