I installed this change for the benefit of GNU Emacs. Other packages shouldn't be affected.
2005-07-26 Paul Eggert <[EMAIL PROTECTED]> Add support to getopt for Emacs, which doesn't use LIBOBJS in the normal way. * m4/getopt.m4 (gl_GETOPT_SUBSTITUTE_HEADER): New macro. (gl_GETOPT_SUBSTITUTE): Use it. Invoke gl_PREREQ_GETOPT. (gl_GETOPT_IFELSE, gl_GETOPT_CHECK_HEADERS): New macros. (gl_GETOPT): Use the new macros. Most of the implementation is moved to the new macros. This is for programs like Emacs that don't want all the functionality of gl_GETOPT. Index: m4/getopt.m4 =================================================================== RCS file: /cvsroot/gnulib/gnulib/m4/getopt.m4,v retrieving revision 1.10 diff -p -c -r1.10 getopt.m4 *** m4/getopt.m4 10 May 2005 19:11:00 -0000 1.10 --- m4/getopt.m4 26 Jul 2005 21:52:19 -0000 *************** *** 1,4 **** ! # 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, --- 1,4 ---- ! # getopt.m4 serial 10 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, *************** dnl with or without modifications, as lo *** 10,72 **** AC_DEFUN([gl_GETOPT_SUBSTITUTE], [ - GETOPT_H=getopt.h AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], [Define to rpl_ if the getopt replacement functions and variables should be used.]) AC_SUBST([GETOPT_H]) ]) ! AC_DEFUN([gl_GETOPT], [ ! gl_PREREQ_GETOPT ! if test -z "$GETOPT_H"; then ! GETOPT_H= ! AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h]) ! if test -z "$GETOPT_H"; then ! AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h]) ! fi ! dnl BSD getopt_long uses an incompatible method to reset option processing, ! dnl and (as of 2004-10-15) mishandles optional option-arguments. ! if test -z "$GETOPT_H"; then ! AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>]) ! fi ! 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_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 ! gl_GETOPT_SUBSTITUTE fi fi ]) # Prerequisites of lib/getopt*. AC_DEFUN([gl_PREREQ_GETOPT], [:]) --- 10,78 ---- AC_DEFUN([gl_GETOPT_SUBSTITUTE], [ AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) + gl_GETOPT_SUBSTITUTE_HEADER + gl_PREREQ_GETOPT + ]) + + AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], + [ + GETOPT_H=getopt.h AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], [Define to rpl_ if the getopt replacement functions and variables should be used.]) AC_SUBST([GETOPT_H]) ]) ! AC_DEFUN([gl_GETOPT_CHECK_HEADERS], [ ! GETOPT_H= ! AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h]) if test -z "$GETOPT_H"; then ! AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h]) ! fi ! dnl BSD getopt_long uses an incompatible method to reset option processing, ! dnl and (as of 2004-10-15) mishandles optional option-arguments. ! if test -z "$GETOPT_H"; then ! AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>]) ! fi ! 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_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 ]) + + AC_DEFUN([gl_GETOPT_IFELSE], + [ + AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) + AS_IF([test -n "$GETOPT_H"], [$1], [$2]) + ]) + + AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])]) # Prerequisites of lib/getopt*. AC_DEFUN([gl_PREREQ_GETOPT], [:]) _______________________________________________ bug-gnulib mailing list bug-gnulib@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnulib