Mercurial > emacs
diff m4/getopt.m4 @ 112450:16ddab338c43
Remove HAVE_RAW_DECL_CHOWN etc. from config.h
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sun, 23 Jan 2011 20:53:39 -0800 |
parents | c81ff7082a9a |
children |
line wrap: on
line diff
--- a/m4/getopt.m4 Sun Jan 23 14:28:14 2011 +0100 +++ b/m4/getopt.m4 Sun Jan 23 20:53:39 2011 -0800 @@ -1,4 +1,4 @@ -# getopt.m4 serial 33 +# getopt.m4 serial 34 dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -75,20 +75,6 @@ AC_CHECK_FUNCS([getopt_long_only], [], [gl_replace_getopt=yes]) fi - dnl BSD getopt_long uses an incompatible method to reset option processing. - dnl Existence of the variable, in and of itself, is not a reason to replace - dnl getopt, but knowledge of the variable is needed to determine how to - dnl reset and whether a reset reparses the environment. - dnl Solaris supports neither optreset nor optind=0, but keeps no state that - dnl needs a reset beyond setting optind=1; detect Solaris by getopt_clip. - if test -z "$gl_replace_getopt"; then - AC_CHECK_DECLS([optreset], [], - [AC_CHECK_DECLS([getopt_clip], [], [], - [[#include <getopt.h>]]) - ], - [[#include <getopt.h>]]) - fi - dnl mingw's getopt (in libmingwex.a) does weird things when the options dnl strings starts with '+' and it's not the first call. Some internal state dnl is left over from earlier calls, and neither setting optind = 0 nor @@ -102,18 +88,34 @@ AC_CACHE_CHECK([whether getopt is POSIX compatible], [gl_cv_func_getopt_posix], [ + dnl BSD getopt_long uses an incompatible method to reset + dnl option processing. Existence of the variable, in and of + dnl itself, is not a reason to replace getopt, but knowledge + dnl of the variable is needed to determine how to reset and + dnl whether a reset reparses the environment. Solaris + dnl supports neither optreset nor optind=0, but keeps no state + dnl that needs a reset beyond setting optind=1; detect Solaris + dnl by getopt_clip. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <unistd.h>]], + [[int *p = &optreset; return optreset;]])], + [gl_optind_min=1], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <getopt.h>]], + [[return !getopt_clip;]])], + [gl_optind_min=1], + [gl_optind_min=0])]) + dnl This test fails on mingw and succeeds on many other platforms. + gl_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min" AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include <unistd.h> #include <stdlib.h> #include <string.h> -#if !HAVE_DECL_OPTRESET && !HAVE_DECL_GETOPT_CLIP -# define OPTIND_MIN 0 -#else -# define OPTIND_MIN 1 -#endif - int main () { @@ -201,6 +203,7 @@ *) gl_cv_func_getopt_posix="guessing yes";; esac ]) + CPPFLAGS=$gl_save_CPPFLAGS ]) case "$gl_cv_func_getopt_posix" in *no) gl_replace_getopt=yes ;;