[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
getopt.m4 changes for Emacs
From: |
Paul Eggert |
Subject: |
getopt.m4 changes for Emacs |
Date: |
Tue, 26 Jul 2005 15:07:36 -0700 |
User-agent: |
Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) |
I installed this change for the benefit of GNU Emacs.
Other packages shouldn't be affected.
2005-07-26 Paul Eggert <address@hidden>
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], [:])
- getopt.m4 changes for Emacs,
Paul Eggert <=