1# onceonly.m4 serial 3 2dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc. 3dnl This file is free software, distributed under the terms of the GNU 4dnl General Public License. As a special exception to the GNU General 5dnl Public License, this file may be distributed as part of a program 6dnl that contains a configuration script generated by Autoconf, under 7dnl the same distribution terms as the rest of that program. 8 9dnl This file defines some "once only" variants of standard autoconf macros. 10dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS 11dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS 12dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS 13dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC 14dnl The advantage is that the check for each of the headers/functions/decls 15dnl will be put only once into the 'configure' file. It keeps the size of 16dnl the 'configure' file down, and avoids redundant output when 'configure' 17dnl is run. 18dnl The drawback is that the checks cannot be conditionalized. If you write 19dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi 20dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to 21dnl empty, and the check will be inserted before the body of the AC_DEFUNed 22dnl function. 23 24dnl Autoconf version 2.57 or newer is recommended. 25AC_PREREQ(2.54) 26 27# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of 28# AC_CHECK_HEADERS(HEADER1 HEADER2 ...). 29AC_DEFUN([AC_CHECK_HEADERS_ONCE], [ 30 : 31 AC_FOREACH([gl_HEADER_NAME], [$1], [ 32 AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(defn([gl_HEADER_NAME]), 33 [-./], [___])), [ 34 AC_CHECK_HEADERS(gl_HEADER_NAME) 35 ]) 36 AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME, 37 [-./], [___]))) 38 ]) 39]) 40 41# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of 42# AC_CHECK_FUNCS(FUNC1 FUNC2 ...). 43AC_DEFUN([AC_CHECK_FUNCS_ONCE], [ 44 : 45 AC_FOREACH([gl_FUNC_NAME], [$1], [ 46 AC_DEFUN([gl_CHECK_FUNC_]defn([gl_FUNC_NAME]), [ 47 AC_CHECK_FUNCS(defn([gl_FUNC_NAME])) 48 ]) 49 AC_REQUIRE([gl_CHECK_FUNC_]defn([gl_FUNC_NAME])) 50 ]) 51]) 52 53# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of 54# AC_CHECK_DECLS(DECL1, DECL2, ...). 55AC_DEFUN([AC_CHECK_DECLS_ONCE], [ 56 : 57 AC_FOREACH([gl_DECL_NAME], [$1], [ 58 AC_DEFUN([gl_CHECK_DECL_]defn([gl_DECL_NAME]), [ 59 AC_CHECK_DECLS(defn([gl_DECL_NAME])) 60 ]) 61 AC_REQUIRE([gl_CHECK_DECL_]defn([gl_DECL_NAME])) 62 ]) 63]) 64