| OLD | NEW |
| (Empty) |
| 1 # onceonly.m4 serial 6 | |
| 2 dnl Copyright (C) 2002-2003, 2005-2006, 2008-2010 Free Software Foundation, | |
| 3 dnl Inc. | |
| 4 dnl This file is free software, distributed under the terms of the GNU | |
| 5 dnl General Public License. As a special exception to the GNU General | |
| 6 dnl Public License, this file may be distributed as part of a program | |
| 7 dnl that contains a configuration script generated by Autoconf, under | |
| 8 dnl the same distribution terms as the rest of that program. | |
| 9 | |
| 10 dnl This file defines some "once only" variants of standard autoconf macros. | |
| 11 dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS | |
| 12 dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS | |
| 13 dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS | |
| 14 dnl AC_REQUIRE([AC_FUNC_STRCOLL]) like AC_FUNC_STRCOLL | |
| 15 dnl The advantage is that the check for each of the headers/functions/decls | |
| 16 dnl will be put only once into the 'configure' file. It keeps the size of | |
| 17 dnl the 'configure' file down, and avoids redundant output when 'configure' | |
| 18 dnl is run. | |
| 19 dnl The drawback is that the checks cannot be conditionalized. If you write | |
| 20 dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi | |
| 21 dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to | |
| 22 dnl empty, and the check will be inserted before the body of the AC_DEFUNed | |
| 23 dnl function. | |
| 24 | |
| 25 dnl The original code implemented AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE | |
| 26 dnl in terms of AC_DEFUN and AC_REQUIRE. This implementation uses diversions to | |
| 27 dnl named sections DEFAULTS and INIT_PREPARE in order to check all requested | |
| 28 dnl headers at once, thus reducing the size of 'configure'. It is known to work | |
| 29 dnl with autoconf 2.57..2.62 at least . The size reduction is ca. 9%. | |
| 30 | |
| 31 dnl Autoconf version 2.59 plus gnulib is required; this file is not needed | |
| 32 dnl with Autoconf 2.60 or greater. But note that autoconf's implementation of | |
| 33 dnl AC_CHECK_DECLS_ONCE expects a comma-separated list of symbols as first | |
| 34 dnl argument! | |
| 35 AC_PREREQ([2.59]) | |
| 36 | |
| 37 # AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of | |
| 38 # AC_CHECK_HEADERS(HEADER1 HEADER2 ...). | |
| 39 AC_DEFUN([AC_CHECK_HEADERS_ONCE], [ | |
| 40 : | |
| 41 m4_foreach_w([gl_HEADER_NAME], [$1], [ | |
| 42 AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME, | |
| 43 [./-], [___])), [ | |
| 44 m4_divert_text([INIT_PREPARE], | |
| 45 [gl_header_list="$gl_header_list gl_HEADER_NAME"]) | |
| 46 gl_HEADERS_EXPANSION | |
| 47 AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])), | |
| 48 [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.]
) | |
| 49 ]) | |
| 50 AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME, | |
| 51 [./-], [___]))) | |
| 52 ]) | |
| 53 ]) | |
| 54 m4_define([gl_HEADERS_EXPANSION], [ | |
| 55 m4_divert_text([DEFAULTS], [gl_header_list=]) | |
| 56 AC_CHECK_HEADERS([$gl_header_list]) | |
| 57 m4_define([gl_HEADERS_EXPANSION], []) | |
| 58 ]) | |
| 59 | |
| 60 # AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of | |
| 61 # AC_CHECK_FUNCS(FUNC1 FUNC2 ...). | |
| 62 AC_DEFUN([AC_CHECK_FUNCS_ONCE], [ | |
| 63 : | |
| 64 m4_foreach_w([gl_FUNC_NAME], [$1], [ | |
| 65 AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [ | |
| 66 m4_divert_text([INIT_PREPARE], | |
| 67 [gl_func_list="$gl_func_list gl_FUNC_NAME"]) | |
| 68 gl_FUNCS_EXPANSION | |
| 69 AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])), | |
| 70 [Define to 1 if you have the `]m4_defn([gl_FUNC_NAME])[' function.]) | |
| 71 ]) | |
| 72 AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME])) | |
| 73 ]) | |
| 74 ]) | |
| 75 m4_define([gl_FUNCS_EXPANSION], [ | |
| 76 m4_divert_text([DEFAULTS], [gl_func_list=]) | |
| 77 AC_CHECK_FUNCS([$gl_func_list]) | |
| 78 m4_define([gl_FUNCS_EXPANSION], []) | |
| 79 ]) | |
| 80 | |
| 81 # AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of | |
| 82 # AC_CHECK_DECLS(DECL1, DECL2, ...). | |
| 83 AC_DEFUN([AC_CHECK_DECLS_ONCE], [ | |
| 84 : | |
| 85 m4_foreach_w([gl_DECL_NAME], [$1], [ | |
| 86 AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [ | |
| 87 AC_CHECK_DECLS(m4_defn([gl_DECL_NAME])) | |
| 88 ]) | |
| 89 AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME])) | |
| 90 ]) | |
| 91 ]) | |
| OLD | NEW |