mirror of
git://git.sv.gnu.org/autoconf
synced 2025-03-01 14:16:02 +08:00
Restore the 2002-10-11 Akim Demaille <akim@epita.fr> patch:
* lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL) (AC_CHECK_HEADER, _AC_CHECK_HEADER_NEW,_AC_CHECK_HEADER_OLD): Restore. (_AC_CHECK_HEADER_NEW): Rename as... (AC_CHECK_HEADER): this.
This commit is contained in:
parent
de6bcf45c9
commit
a70900d82a
@ -1,3 +1,12 @@
|
||||
2002-10-22 Akim Demaille <akim@epita.fr>
|
||||
|
||||
Restore the 2002-10-11 Akim Demaille <akim@epita.fr> patch:
|
||||
|
||||
* lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
|
||||
(AC_CHECK_HEADER, _AC_CHECK_HEADER_NEW,_AC_CHECK_HEADER_OLD): Restore.
|
||||
(_AC_CHECK_HEADER_NEW): Rename as...
|
||||
(AC_CHECK_HEADER): this.
|
||||
|
||||
2002-10-22 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* doc/autoconf.texi (Limitations of Usual Tools): Remove incorrect
|
||||
|
4
NEWS
4
NEWS
@ -10,10 +10,6 @@
|
||||
|
||||
** Macros
|
||||
|
||||
- AC_CHECK_HEADER/AC_CHECK_HEADERS
|
||||
These macros now check whether the headers are compilable, i.e., they
|
||||
compile headers rather than merely preprocess them.
|
||||
|
||||
- New macros
|
||||
AC_FUNC_MBRTOWC
|
||||
|
||||
|
@ -67,8 +67,93 @@
|
||||
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
|
||||
# [INCLUDES])
|
||||
# ---------------------------------------------------------
|
||||
# Check the compiler accepts HEADER-FILE. The INCLUDES are defaulted.
|
||||
# We are slowly moving to checking headers with the compiler instead
|
||||
# of the preproc, so that we actually learn about the usability of a
|
||||
# header instead of its mere presence. But since users are used to
|
||||
# the old semantics, they check for headers in random order and
|
||||
# without providing prerequisite headers. This macro implements the
|
||||
# transition phase, and should be cleaned up latter to use compilation
|
||||
# only.
|
||||
#
|
||||
# If INCLUDES is empty, then check both via the compiler and preproc.
|
||||
# If the results are different, issue a warning, but keep the preproc
|
||||
# result.
|
||||
#
|
||||
# If INCLUDES is `-', keep only the old semantics.
|
||||
#
|
||||
# If INCLUDES is specified and different from `-', then use the new
|
||||
# semantics only.
|
||||
AC_DEFUN([AC_CHECK_HEADER],
|
||||
[m4_case([$4],
|
||||
[], [_AC_CHECK_HEADER_MONGREL($@)],
|
||||
[-], [_AC_CHECK_HEADER_OLD($@)],
|
||||
[_AC_CHECK_HEADER_NEW($@)])
|
||||
])# AC_CHECK_HEADER
|
||||
|
||||
|
||||
# _AC_CHECK_HEADER_MONGREL(HEADER-FILE,
|
||||
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
|
||||
# [INCLUDES])
|
||||
# --------------------------------------------------------------
|
||||
# Check using both the compiler and the preprocessor. If they disagree,
|
||||
# warn, and the preproc wins.
|
||||
#
|
||||
# This is not based on _AC_CHECK_HEADER_NEW and _AC_CHECK_HEADER_OLD
|
||||
# because it obfuscate the code to try to factor everything, in particular
|
||||
# because of the cache variables, and the `checking...' messages.
|
||||
m4_define([_AC_CHECK_HEADER_MONGREL],
|
||||
[AS_VAR_PUSHDEF([ac_Header], [ac_cv_header_$1])dnl
|
||||
AS_VAR_SET_IF(ac_Header,
|
||||
[AC_CACHE_CHECK([for $1], ac_Header, [])],
|
||||
[# Is the header compilable?
|
||||
AC_MSG_CHECKING([$1 usability])
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([AC_INCLUDES_DEFAULT([$4])
|
||||
@%:@include <$1>])],
|
||||
[ac_header_compiler=yes],
|
||||
[ac_header_compiler=no])
|
||||
AC_MSG_RESULT([$ac_header_compiler])
|
||||
|
||||
# Is the header present?
|
||||
AC_MSG_CHECKING([$1 presence])
|
||||
AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@include <$1>])],
|
||||
[ac_header_preproc=yes],
|
||||
[ac_header_preproc=no])
|
||||
AC_MSG_RESULT([$ac_header_preproc])
|
||||
|
||||
# So? What about this header?
|
||||
case $ac_header_compiler:$ac_header_preproc in
|
||||
yes:no )
|
||||
AC_MSG_WARN([$1: accepted by the compiler, rejected by the preprocessor!])
|
||||
AC_MSG_WARN([$1: proceeding with the preprocessor's result])
|
||||
(
|
||||
AS_BOX([Report this to bug-autoconf@gnu.org.])
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
;;
|
||||
no:yes )
|
||||
AC_MSG_WARN([$1: present but cannot be compiled])
|
||||
AC_MSG_WARN([$1: check for missing prerequisite headers?])
|
||||
AC_MSG_WARN([$1: proceeding with the preprocessor's result])
|
||||
(
|
||||
AS_BOX([Report this to bug-autoconf@gnu.org.])
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
;;
|
||||
esac
|
||||
AC_CACHE_CHECK([for $1], ac_Header,
|
||||
[AS_VAR_SET(ac_Header, $ac_header_preproc)])
|
||||
])dnl ! set ac_HEADER
|
||||
AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
|
||||
AS_VAR_POPDEF([ac_Header])dnl
|
||||
])# _AC_CHECK_HEADER_MONGREL
|
||||
|
||||
|
||||
# _AC_CHECK_HEADER_NEW(HEADER-FILE,
|
||||
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
|
||||
# [INCLUDES])
|
||||
# --------------------------------------------------------------
|
||||
# Check the compiler accepts HEADER-FILE. The INCLUDES are defaulted.
|
||||
m4_define([_AC_CHECK_HEADER_NEW],
|
||||
[AS_VAR_PUSHDEF([ac_Header], [ac_cv_header_$1])dnl
|
||||
AC_CACHE_CHECK([for $1], ac_Header,
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([AC_INCLUDES_DEFAULT([$4])
|
||||
@ -77,7 +162,22 @@ AC_CACHE_CHECK([for $1], ac_Header,
|
||||
[AS_VAR_SET(ac_Header, no)])])
|
||||
AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
|
||||
AS_VAR_POPDEF([ac_Header])dnl
|
||||
])# AC_CHECK_HEADER
|
||||
])# _AC_CHECK_HEADER_NEW
|
||||
|
||||
|
||||
# _AC_CHECK_HEADER_OLD(HEADER-FILE,
|
||||
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
# --------------------------------------------------------------
|
||||
# Check the preprocessor accepts HEADER-FILE.
|
||||
m4_define([_AC_CHECK_HEADER_OLD],
|
||||
[AS_VAR_PUSHDEF([ac_Header], [ac_cv_header_$1])dnl
|
||||
AC_CACHE_CHECK([for $1], ac_Header,
|
||||
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@include <$1>])],
|
||||
[AS_VAR_SET(ac_Header, yes)],
|
||||
[AS_VAR_SET(ac_Header, no)])])
|
||||
AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
|
||||
AS_VAR_POPDEF([ac_Header])dnl
|
||||
])# _AC_CHECK_HEADER_OLD
|
||||
|
||||
|
||||
# AH_CHECK_HEADERS(HEADER-FILE...)
|
||||
|
Loading…
Reference in New Issue
Block a user