summaryrefslogtreecommitdiff
path: root/m4/getopt.m4
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2005-05-10 19:11:00 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2005-05-10 19:11:00 +0000
commit2ff0e132755c8c6f9230eaa05af284ff33f3518b (patch)
tree5f7f5fa0726e8622506ec951b5580e7bf98f15c9 /m4/getopt.m4
parent657b7c1064e3be4f859006d6a3e99fc6bb549424 (diff)
downloadgnulib-2ff0e132755c8c6f9230eaa05af284ff33f3518b.tar.gz
* getopt.m4 (gl_GETOPT): Check for Solaris 10 bug, not decl, when
possible.
Diffstat (limited to 'm4/getopt.m4')
-rw-r--r--m4/getopt.m425
1 files changed, 22 insertions, 3 deletions
diff --git a/m4/getopt.m4 b/m4/getopt.m4
index d7bd3191cf..79c699162e 100644
--- a/m4/getopt.m4
+++ b/m4/getopt.m4
@@ -1,4 +1,4 @@
-# getopt.m4 serial 8
+# getopt.m4 serial 9
dnl Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -39,8 +39,27 @@ AC_DEFUN([gl_GETOPT],
dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
dnl option string (as of 2005-05-05).
if test -z "$GETOPT_H"; then
- AC_CHECK_DECL([getopt_clip], [GETOPT_H=getopt.h], [],
- [#include <getopt.h>])
+ AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([#include <getopt.h>],
+ [[
+ char *myargv[3];
+ myargv[0] = "conftest";
+ myargv[1] = "-+";
+ myargv[2] = 0;
+ return getopt (2, myargv, "+a") != '?';
+ ]])],
+ [gl_cv_func_gnu_getopt=yes],
+ [gl_cv_func_gnu_getopt=no],
+ [dnl cross compiling - pessimistically guess based on decls
+ dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+ dnl option string (as of 2005-05-05).
+ AC_CHECK_DECL([getopt_clip],
+ [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes],
+ [#include <getopt.h>])])])
+ if test "$gl_cv_func_gnu_getopt" = "no"; then
+ GETOPT_H=getopt.h
+ fi
fi
if test -n "$GETOPT_H"; then