]>
Commit | Line | Data |
---|---|---|
dc6c21da TT |
1 | # glob_h.m4 serial 9 |
2 | dnl Copyright (C) 2018-2022 Free Software Foundation, Inc. | |
c0c3707f CB |
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], | |
dc6c21da TT |
25 | [GL_GENERATE_GLOB_H=true], |
26 | [GL_GENERATE_GLOB_H=false | |
c0c3707f CB |
27 | if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then |
28 | dnl Override <glob.h> always, to support the C++ GNULIB_NAMESPACE. | |
dc6c21da | 29 | GL_GENERATE_GLOB_H=true |
c0c3707f CB |
30 | else |
31 | if test $ac_cv_header_glob_h != yes; then | |
32 | dnl Provide a substitute <glob.h> file. | |
dc6c21da | 33 | GL_GENERATE_GLOB_H=true |
c0c3707f CB |
34 | fi |
35 | fi | |
36 | ]) | |
c0c3707f CB |
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 | [ | |
dc6c21da TT |
48 | gl_GLOB_H_REQUIRE_DEFAULTS |
49 | GL_GENERATE_GLOB_H=true | |
c0c3707f CB |
50 | ]) |
51 | ||
dc6c21da TT |
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. | |
c0c3707f CB |
56 | AC_DEFUN([gl_GLOB_MODULE_INDICATOR], |
57 | [ | |
dc6c21da TT |
58 | dnl Ensure to expand the default settings once only. |
59 | gl_GLOB_H_REQUIRE_DEFAULTS | |
c0c3707f CB |
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 | ||
dc6c21da TT |
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 | ||
c0c3707f CB |
77 | AC_DEFUN([gl_GLOB_H_DEFAULTS], |
78 | [ | |
c0c3707f CB |
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 | ]) |