1 # glob_h.m4 serial 9 2 dnl Copyright (C) 2018-2022 Free Software Foundation, Inc. 3 dnl This file is free software; the Free Software Foundation 4 dnl gives unlimited permission to copy and/or distribute it, 5 dnl with or without modifications, as long as this notice is preserved. 6 7 dnl From Bruno Haible. 8 9 AC_DEFUN_ONCE([gl_GLOB_H], 10 [ 11 AC_REQUIRE([gl_GLOB_H_DEFAULTS]) 12 m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])]) 13 AC_REQUIRE([AC_C_RESTRICT]) 14 AC_CHECK_HEADERS_ONCE([glob.h]) 15 gl_CHECK_NEXT_HEADERS([glob.h]) 16 17 if test $ac_cv_header_glob_h = yes; then 18 HAVE_GLOB_H=1 19 else 20 HAVE_GLOB_H=0 21 fi 22 AC_SUBST([HAVE_GLOB_H]) 23 24 m4_ifdef([gl_POSIXCHECK], 25 [GL_GENERATE_GLOB_H=true], 26 [GL_GENERATE_GLOB_H=false 27 if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then 28 dnl Override <glob.h> always, to support the C++ GNULIB_NAMESPACE. 29 GL_GENERATE_GLOB_H=true 30 else 31 if test $ac_cv_header_glob_h != yes; then 32 dnl Provide a substitute <glob.h> file. 33 GL_GENERATE_GLOB_H=true 34 fi 35 fi 36 ]) 37 38 dnl Check for declarations of anything we want to poison if the 39 dnl corresponding gnulib module is not in use. 40 gl_WARN_ON_USE_PREPARE([[#include <glob.h> 41 ]], 42 [glob globfree glob_pattern_p]) 43 ]) 44 45 dnl Unconditionally enables the replacement of <glob.h>. 46 AC_DEFUN([gl_REPLACE_GLOB_H], 47 [ 48 gl_GLOB_H_REQUIRE_DEFAULTS 49 GL_GENERATE_GLOB_H=true 50 ]) 51 52 # gl_GLOB_MODULE_INDICATOR([modulename]) 53 # sets the shell variable that indicates the presence of the given module 54 # to a C preprocessor expression that will evaluate to 1. 55 # This macro invocation must not occur in macros that are AC_REQUIREd. 56 AC_DEFUN([gl_GLOB_MODULE_INDICATOR], 57 [ 58 dnl Ensure to expand the default settings once only. 59 gl_GLOB_H_REQUIRE_DEFAULTS 60 gl_MODULE_INDICATOR_SET_VARIABLE([$1]) 61 dnl Define it also as a C macro, for the benefit of the unit tests. 62 gl_MODULE_INDICATOR_FOR_TESTS([$1]) 63 ]) 64 65 # Initializes the default values for AC_SUBSTed shell variables. 66 # This macro must not be AC_REQUIREd. It must only be invoked, and only 67 # outside of macros or in macros that are not AC_REQUIREd. 68 AC_DEFUN([gl_GLOB_H_REQUIRE_DEFAULTS], 69 [ 70 m4_defun(GL_MODULE_INDICATOR_PREFIX[_GLOB_H_MODULE_INDICATOR_DEFAULTS], [ 71 gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GLOB]) 72 ]) 73 m4_require(GL_MODULE_INDICATOR_PREFIX[_GLOB_H_MODULE_INDICATOR_DEFAULTS]) 74 AC_REQUIRE([gl_GLOB_H_DEFAULTS]) 75 ]) 76 77 AC_DEFUN([gl_GLOB_H_DEFAULTS], 78 [ 79 dnl Assume POSIX and GNU behavior unless another module says otherwise. 80 HAVE_GLOB=1; AC_SUBST([HAVE_GLOB]) 81 HAVE_GLOB_PATTERN_P=1; AC_SUBST([HAVE_GLOB_PATTERN_P]) 82 REPLACE_GLOB=0; AC_SUBST([REPLACE_GLOB]) 83 REPLACE_GLOB_PATTERN_P=0; AC_SUBST([REPLACE_GLOB_PATTERN_P]) 84 ]) 85