annotate m4/gnulib-common.m4 @ 40246:c34f677e6117 default tip master

_Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode * lib/_Noreturn.h, m4/gnulib-common.m4: Don't use [[noreturn]] before GCC 4.8.
author Akim Demaille <akim.demaille@gmail.com>
date Sun, 17 Mar 2019 19:27:20 +0100
parents b06060465f09
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
40246
c34f677e6117 _Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode
Akim Demaille <akim.demaille@gmail.com>
parents: 40057
diff changeset
1 # gnulib-common.m4 serial 42
40057
b06060465f09 maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents: 39961
diff changeset
2 dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
7788
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3 dnl This file is free software; the Free Software Foundation
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4 dnl gives unlimited permission to copy and/or distribute it,
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 dnl with or without modifications, as long as this notice is preserved.
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6
39944
eb64273b66c2 Assume Autoconf >= 2.63.
Bruno Haible <bruno@clisp.org>
parents: 39722
diff changeset
7 AC_PREREQ([2.62])
eb64273b66c2 Assume Autoconf >= 2.63.
Bruno Haible <bruno@clisp.org>
parents: 39722
diff changeset
8
9887
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
9 # gl_COMMON
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
10 # is expanded unconditionally through gnulib-tool magic.
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
11 AC_DEFUN([gl_COMMON], [
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
12 dnl Use AC_REQUIRE here, so that the code is expanded once only.
11094
5e937a2f5647 Backport improved autoconf semantics of AC_DEFUN_ONCE.
Eric Blake <ebb9@byu.net>
parents: 11053
diff changeset
13 AC_REQUIRE([gl_00GNULIB])
9887
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
14 AC_REQUIRE([gl_COMMON_BODY])
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
15 ])
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
16 AC_DEFUN([gl_COMMON_BODY], [
15391
af02f1770a6a * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14894
diff changeset
17 AH_VERBATIM([_Noreturn],
16239
91f53c1e1787 doc: C11 and C++11 are now official
Paul Eggert <eggert@cs.ucla.edu>
parents: 16201
diff changeset
18 [/* The _Noreturn keyword of C11. */
39961
4a9dba57ac9e gnulib-common.m4: port _Noreturn to C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 39944
diff changeset
19 #ifndef _Noreturn
40246
c34f677e6117 _Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode
Akim Demaille <akim.demaille@gmail.com>
parents: 40057
diff changeset
20 # if (201103 <= (defined __cplusplus ? __cplusplus : 0) \
c34f677e6117 _Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode
Akim Demaille <akim.demaille@gmail.com>
parents: 40057
diff changeset
21 && (!defined __GNUC__ || 4 < __GNUC__ + (8 <= __GNUC_MINOR__)))
39961
4a9dba57ac9e gnulib-common.m4: port _Noreturn to C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 39944
diff changeset
22 # define _Noreturn [[noreturn]]
4a9dba57ac9e gnulib-common.m4: port _Noreturn to C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 39944
diff changeset
23 # elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
4a9dba57ac9e gnulib-common.m4: port _Noreturn to C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 39944
diff changeset
24 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
4a9dba57ac9e gnulib-common.m4: port _Noreturn to C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 39944
diff changeset
25 /* _Noreturn works as-is. */
4a9dba57ac9e gnulib-common.m4: port _Noreturn to C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 39944
diff changeset
26 # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
15391
af02f1770a6a * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14894
diff changeset
27 # define _Noreturn __attribute__ ((__noreturn__))
39961
4a9dba57ac9e gnulib-common.m4: port _Noreturn to C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 39944
diff changeset
28 # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
15411
7b889c2a4a01 _Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER.
Paul Eggert <eggert@cs.ucla.edu>
parents: 15391
diff changeset
29 # define _Noreturn __declspec (noreturn)
15391
af02f1770a6a * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14894
diff changeset
30 # else
af02f1770a6a * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14894
diff changeset
31 # define _Noreturn
af02f1770a6a * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14894
diff changeset
32 # endif
af02f1770a6a * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14894
diff changeset
33 #endif
af02f1770a6a * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14894
diff changeset
34 ])
9887
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
35 AH_VERBATIM([isoc99_inline],
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
36 [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
37 the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
38 earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
16935
498a2211d839 Write "Mac OS X" instead of "MacOS X".
Bruno Haible <bruno@clisp.org>
parents: 16845
diff changeset
39 __APPLE__ && __MACH__ test for Mac OS X.
9887
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
40 __APPLE_CC__ tests for the Apple compiler and its version.
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
41 __STDC_VERSION__ tests for the C99 mode. */
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
42 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
43 # define __GNUC_STDC_INLINE__ 1
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
44 #endif])
10658
a6a1df49f669 Avoid -Wunused-parameter warnings in public gnulib header files.
Bruno Haible <bruno@clisp.org>
parents: 10066
diff changeset
45 AH_VERBATIM([unused_parameter],
12482
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
46 [/* Define as a marker that can be attached to declarations that might not
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
47 be used. This helps to reduce warnings, such as from
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
48 GCC -Wunused-parameter. */
10658
a6a1df49f669 Avoid -Wunused-parameter warnings in public gnulib header files.
Bruno Haible <bruno@clisp.org>
parents: 10066
diff changeset
49 #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
12482
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
50 # define _GL_UNUSED __attribute__ ((__unused__))
10658
a6a1df49f669 Avoid -Wunused-parameter warnings in public gnulib header files.
Bruno Haible <bruno@clisp.org>
parents: 10066
diff changeset
51 #else
12482
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
52 # define _GL_UNUSED
10658
a6a1df49f669 Avoid -Wunused-parameter warnings in public gnulib header files.
Bruno Haible <bruno@clisp.org>
parents: 10066
diff changeset
53 #endif
12482
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
54 /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
55 is a misnomer outside of parameter lists. */
11bc92a9e2bc gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
Eric Blake <ebb9@byu.net>
parents: 12421
diff changeset
56 #define _UNUSED_PARAMETER_ _GL_UNUSED
14873
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
57
17689
0fc09785fa2f gnulib-common.m4: add _GL_UNUSED_LABEL
Pádraig Brady <P@draigBrady.com>
parents: 17615
diff changeset
58 /* gcc supports the "unused" attribute on possibly unused labels, and
17692
323b09d5b995 rename: mark a label as potentially unused
Ben Walton <bdwalton@gmail.com>
parents: 17691
diff changeset
59 g++ has since version 4.5. Note to support C++ as well as C,
323b09d5b995 rename: mark a label as potentially unused
Ben Walton <bdwalton@gmail.com>
parents: 17691
diff changeset
60 _GL_UNUSED_LABEL should be used with a trailing ; */
17689
0fc09785fa2f gnulib-common.m4: add _GL_UNUSED_LABEL
Pádraig Brady <P@draigBrady.com>
parents: 17615
diff changeset
61 #if !defined __cplusplus || __GNUC__ > 4 \
0fc09785fa2f gnulib-common.m4: add _GL_UNUSED_LABEL
Pádraig Brady <P@draigBrady.com>
parents: 17615
diff changeset
62 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
17691
7d9357b7b5c6 gnulib-common.m4: Fix typo in _GL_UNUSED_LABEL.
Paul Eggert <eggert@cs.ucla.edu>
parents: 17689
diff changeset
63 # define _GL_UNUSED_LABEL _GL_UNUSED
17689
0fc09785fa2f gnulib-common.m4: add _GL_UNUSED_LABEL
Pádraig Brady <P@draigBrady.com>
parents: 17615
diff changeset
64 #else
0fc09785fa2f gnulib-common.m4: add _GL_UNUSED_LABEL
Pádraig Brady <P@draigBrady.com>
parents: 17615
diff changeset
65 # define _GL_UNUSED_LABEL
0fc09785fa2f gnulib-common.m4: add _GL_UNUSED_LABEL
Pádraig Brady <P@draigBrady.com>
parents: 17615
diff changeset
66 #endif
0fc09785fa2f gnulib-common.m4: add _GL_UNUSED_LABEL
Pádraig Brady <P@draigBrady.com>
parents: 17615
diff changeset
67
14873
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
68 /* The __pure__ attribute was added in gcc 2.96. */
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
69 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
70 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
71 #else
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
72 # define _GL_ATTRIBUTE_PURE /* empty */
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
73 #endif
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
74
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
75 /* The __const__ attribute was added in gcc 2.95. */
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
76 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
77 # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
78 #else
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
79 # define _GL_ATTRIBUTE_CONST /* empty */
722fb7942bc8 gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering <meyering@redhat.com>
parents: 14515
diff changeset
80 #endif
19596
0b05f2be9830 maint: port more modules to GCC 8
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
81
0b05f2be9830 maint: port more modules to GCC 8
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
82 /* The __malloc__ attribute was added in gcc 3. */
0b05f2be9830 maint: port more modules to GCC 8
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
83 #if 3 <= __GNUC__
0b05f2be9830 maint: port more modules to GCC 8
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
84 # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
0b05f2be9830 maint: port more modules to GCC 8
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
85 #else
0b05f2be9830 maint: port more modules to GCC 8
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
86 # define _GL_ATTRIBUTE_MALLOC /* empty */
0b05f2be9830 maint: port more modules to GCC 8
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
87 #endif
10658
a6a1df49f669 Avoid -Wunused-parameter warnings in public gnulib header files.
Bruno Haible <bruno@clisp.org>
parents: 10066
diff changeset
88 ])
13274
d87472cc6eec gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty
Jim Meyering <jim@meyering.net>
parents: 13204
diff changeset
89 dnl Preparation for running test programs:
d87472cc6eec gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty
Jim Meyering <jim@meyering.net>
parents: 13204
diff changeset
90 dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
d87472cc6eec gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty
Jim Meyering <jim@meyering.net>
parents: 13204
diff changeset
91 dnl to /dev/tty, so they can be redirected to log files. Such diagnostics
d87472cc6eec gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty
Jim Meyering <jim@meyering.net>
parents: 13204
diff changeset
92 dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N.
d87472cc6eec gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty
Jim Meyering <jim@meyering.net>
parents: 13204
diff changeset
93 LIBC_FATAL_STDERR_=1
d87472cc6eec gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty
Jim Meyering <jim@meyering.net>
parents: 13204
diff changeset
94 export LIBC_FATAL_STDERR_
9887
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
95 ])
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9411
diff changeset
96
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 13066
diff changeset
97 # gl_MODULE_INDICATOR_CONDITION
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 13066
diff changeset
98 # expands to a C preprocessor expression that evaluates to 1 or 0, depending
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 13066
diff changeset
99 # whether a gnulib module that has been requested shall be considered present
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 13066
diff changeset
100 # or not.
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
101 m4_define([gl_MODULE_INDICATOR_CONDITION], [1])
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 13066
diff changeset
102
13066
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12880
diff changeset
103 # gl_MODULE_INDICATOR_SET_VARIABLE([modulename])
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12880
diff changeset
104 # sets the shell variable that indicates the presence of the given module to
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12880
diff changeset
105 # a C preprocessor expression that will evaluate to 1.
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12880
diff changeset
106 AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE],
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12880
diff changeset
107 [
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
108 gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
109 [GNULIB_[]m4_translit([[$1]],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
110 [abcdefghijklmnopqrstuvwxyz./-],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
111 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
112 [gl_MODULE_INDICATOR_CONDITION])
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
113 ])
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
114
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
115 # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable])
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
116 # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION.
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
117 # The shell variable's value is a C preprocessor expression that evaluates
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
118 # to 0 or 1.
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
119 AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
120 [
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
121 m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
122 [
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
123 dnl Simplify the expression VALUE || 1 to 1.
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
124 $1=1
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
125 ],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
126 [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
127 [gl_MODULE_INDICATOR_CONDITION])])
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
128 ])
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
129
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
130 # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition])
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
131 # modifies the shell variable to include the given condition. The shell
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
132 # variable's value is a C preprocessor expression that evaluates to 0 or 1.
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
133 AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR],
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
134 [
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
135 dnl Simplify the expression 1 || CONDITION to 1.
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
136 if test "$[]$1" != 1; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
137 dnl Simplify the expression 0 || CONDITION to CONDITION.
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
138 if test "$[]$1" = 0; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
139 $1=$2
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
140 else
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
141 $1="($[]$1 || $2)"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
142 fi
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14873
diff changeset
143 fi
13066
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12880
diff changeset
144 ])
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12880
diff changeset
145
7788
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
146 # gl_MODULE_INDICATOR([modulename])
13071
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
147 # defines a C macro indicating the presence of the given module
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
148 # in a location where it can be used.
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
149 # | Value | Value |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
150 # | in lib/ | in tests/ |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
151 # --------------------------------------------+---------+-----------+
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
152 # Module present among main modules: | 1 | 1 |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
153 # --------------------------------------------+---------+-----------+
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
154 # Module present among tests-related modules: | 0 | 1 |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
155 # --------------------------------------------+---------+-----------+
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
156 # Module not present at all: | 0 | 0 |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
157 # --------------------------------------------+---------+-----------+
7788
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
158 AC_DEFUN([gl_MODULE_INDICATOR],
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
159 [
13096
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
160 AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]],
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
161 [abcdefghijklmnopqrstuvwxyz./-],
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
162 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]),
13071
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
163 [gl_MODULE_INDICATOR_CONDITION],
13096
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
164 [Define to a C preprocessor expression that evaluates to 1 or 0,
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
165 depending whether the gnulib module $1 shall be considered present.])
13071
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
166 ])
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
167
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
168 # gl_MODULE_INDICATOR_FOR_TESTS([modulename])
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
169 # defines a C macro indicating the presence of the given module
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
170 # in lib or tests. This is useful to determine whether the module
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
171 # should be tested.
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
172 # | Value | Value |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
173 # | in lib/ | in tests/ |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
174 # --------------------------------------------+---------+-----------+
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
175 # Module present among main modules: | 1 | 1 |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
176 # --------------------------------------------+---------+-----------+
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
177 # Module present among tests-related modules: | 1 | 1 |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
178 # --------------------------------------------+---------+-----------+
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
179 # Module not present at all: | 0 | 0 |
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
180 # --------------------------------------------+---------+-----------+
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
181 AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS],
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
182 [
13096
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
183 AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]],
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
184 [abcdefghijklmnopqrstuvwxyz./-],
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
185 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
3e1ae5eb7f94 maint: improve module indicators
Eric Blake <eblake@redhat.com>
parents: 13073
diff changeset
186 [Define to 1 when the gnulib module $1 should be tested.])
7788
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
187 ])
7920
53d558c7086d Add an AC_PROG_MKDIR_P backport.
Bruno Haible <bruno@clisp.org>
parents: 7788
diff changeset
188
14221
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
189 # gl_ASSERT_NO_GNULIB_POSIXCHECK
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
190 # asserts that there will never be a need to #define GNULIB_POSIXCHECK.
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
191 # and thereby enables an optimization of configure and config.h.
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
192 # Used by Emacs.
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
193 AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK],
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
194 [
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
195 dnl Override gl_WARN_ON_USE_PREPARE.
14515
b2069b8212d0 Fix bug with gl_WARN_ON_USE_PREPARE, introduced on 2011-01-23.
Bruno Haible <bruno@clisp.org>
parents: 14221
diff changeset
196 dnl But hide this definition from 'aclocal'.
b2069b8212d0 Fix bug with gl_WARN_ON_USE_PREPARE, introduced on 2011-01-23.
Bruno Haible <bruno@clisp.org>
parents: 14221
diff changeset
197 AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], [])
14221
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
198 ])
b2abfb114786 Allow the user to avoid the GNULIB_TEST_* macros.
Paul Eggert <eggert@cs.ucla.edu>
parents: 14188
diff changeset
199
14188
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
200 # gl_ASSERT_NO_GNULIB_TESTS
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
201 # asserts that there will be no gnulib tests in the scope of the configure.ac
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
202 # and thereby enables an optimization of config.h.
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
203 # Used by Emacs.
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
204 AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS],
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
205 [
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
206 dnl Override gl_MODULE_INDICATOR_FOR_TESTS.
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
207 AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [])
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
208 ])
87bb0468d75c Allow the user to avoid the GNULIB_TEST_* macros.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
209
13887
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
210 # Test whether <features.h> exists.
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
211 # Set HAVE_FEATURES_H.
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
212 AC_DEFUN([gl_FEATURES_H],
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
213 [
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
214 AC_CHECK_HEADERS_ONCE([features.h])
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
215 if test $ac_cv_header_features_h = yes; then
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
216 HAVE_FEATURES_H=1
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
217 else
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
218 HAVE_FEATURES_H=0
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
219 fi
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
220 AC_SUBST([HAVE_FEATURES_H])
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
221 ])
ff73aa93842c Ensure that <features.h> is included before __GLIBC__ is tested.
Bruno Haible <bruno@clisp.org>
parents: 13274
diff changeset
222
12735
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
223 # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH])
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
224 # ----------------------------------------------------
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
225 # Backport of autoconf-2.63b's macro.
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
226 # Remove this macro when we can assume autoconf >= 2.64.
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
227 m4_ifndef([AS_VAR_IF],
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
228 [m4_define([AS_VAR_IF],
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
229 [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])])
77cea116e541 build: guarantee AS_VAR_IF
Simon Josefsson <simon@josefsson.org>
parents: 12559
diff changeset
230
15800
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
231 # gl_PROG_CC_C99
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
232 # Modifies the value of the shell variable CC in an attempt to make $CC
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
233 # understand ISO C99 source code.
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
234 # This is like AC_PROG_CC_C99, except that
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
235 # - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC
19439
8bfc20b57265 maint: shorten https://lists.gnu.org/archive/html/... links
Jim Meyering <meyering@fb.com>
parents: 19192
diff changeset
236 # <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00367.html>,
15800
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
237 # but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99
19439
8bfc20b57265 maint: shorten https://lists.gnu.org/archive/html/... links
Jim Meyering <meyering@fb.com>
parents: 19192
diff changeset
238 # <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00441.html>.
15800
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
239 # Remaining problems:
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
240 # - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
241 # to CC twice
19439
8bfc20b57265 maint: shorten https://lists.gnu.org/archive/html/... links
Jim Meyering <meyering@fb.com>
parents: 19192
diff changeset
242 # <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00431.html>.
16239
91f53c1e1787 doc: C11 and C++11 are now official
Paul Eggert <eggert@cs.ucla.edu>
parents: 16201
diff changeset
243 # - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard.
15800
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
244 AC_DEFUN([gl_PROG_CC_C99],
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
245 [
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
246 dnl Change that version number to the minimum Autoconf version that supports
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
247 dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls.
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
248 m4_version_prereq([9.0],
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
249 [AC_REQUIRE([AC_PROG_CC_C99])],
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
250 [AC_REQUIRE([AC_PROG_CC_STDC])])
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
251 ])
d79b27b411b7 Centralize C99 requirement.
Bruno Haible <bruno@clisp.org>
parents: 15562
diff changeset
252
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
253 # gl_PROG_AR_RANLIB
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
254 # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler.
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
255 # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
256 # the values.
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
257 AC_DEFUN([gl_PROG_AR_RANLIB],
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
258 [
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
259 dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
260 dnl as "cc", and GCC as "gcc". They have different object file formats and
18114
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
261 dnl library formats. In particular, the GNU binutils programs ar and ranlib
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
262 dnl produce libraries that work only with gcc, not with cc.
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
263 AC_REQUIRE([AC_PROG_CC])
18728
bee1d83d3af5 gnulib-common.m4: avoid aclocal.m4 bloat
Paul Eggert <eggert@cs.ucla.edu>
parents: 18710
diff changeset
264 dnl The '][' hides this use from 'aclocal'.
bee1d83d3af5 gnulib-common.m4: avoid aclocal.m4 bloat
Paul Eggert <eggert@cs.ucla.edu>
parents: 18710
diff changeset
265 AC_BEFORE([$0], [A][M_PROG_AR])
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
266 AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler],
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
267 [
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
268 AC_EGREP_CPP([Amsterdam],
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
269 [
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
270 #ifdef __ACK__
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
271 Amsterdam
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
272 #endif
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
273 ],
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
274 [gl_cv_c_amsterdam_compiler=yes],
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
275 [gl_cv_c_amsterdam_compiler=no])
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
276 ])
18114
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
277
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
278 dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
279 dnl building with __ACK__.
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
280 if test $gl_cv_c_amsterdam_compiler = yes; then
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
281 if test -z "$AR"; then
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
282 AR='cc -c.a'
18114
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
283 fi
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
284 if test -z "$ARFLAGS"; then
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
285 ARFLAGS='-o'
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
286 fi
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
287 else
18114
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
288 dnl AM_PROG_AR was added in automake v1.11.2. AM_PROG_AR does not AC_SUBST
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
289 dnl ARFLAGS variable (it is filed into Makefile.in directly by automake
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
290 dnl script on-demand, if not specified by ./configure of course).
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
291 dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
292 dnl will be ignored. Also, pay attention to call AM_PROG_AR in else block
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
293 dnl because AM_PROG_AR is written so it could re-set AR variable even for
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
294 dnl __ACK__. It may seem like its easier to avoid calling the macro here,
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
295 dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
296 dnl default value and automake should usually know them).
18728
bee1d83d3af5 gnulib-common.m4: avoid aclocal.m4 bloat
Paul Eggert <eggert@cs.ucla.edu>
parents: 18710
diff changeset
297 dnl
bee1d83d3af5 gnulib-common.m4: avoid aclocal.m4 bloat
Paul Eggert <eggert@cs.ucla.edu>
parents: 18710
diff changeset
298 dnl The '][' hides this use from 'aclocal'.
bee1d83d3af5 gnulib-common.m4: avoid aclocal.m4 bloat
Paul Eggert <eggert@cs.ucla.edu>
parents: 18710
diff changeset
299 m4_ifdef([A][M_PROG_AR], [A][M_PROG_AR], [:])
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
300 fi
18114
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
301
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
302 dnl In case the code above has not helped with setting AR/ARFLAGS, use
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
303 dnl Automake-documented default values for AR and ARFLAGS, but prefer
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
304 dnl ${host}-ar over ar (useful for cross-compiling).
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
305 AC_CHECK_TOOL([AR], [ar], [ar])
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
306 if test -z "$ARFLAGS"; then
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
307 ARFLAGS='cr'
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
308 fi
e212f9b1ce05 gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
Pavel Raiskup <praiskup@redhat.com>
parents: 18039
diff changeset
309
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
310 AC_SUBST([AR])
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
311 AC_SUBST([ARFLAGS])
15562
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
312 if test -z "$RANLIB"; then
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
313 if test $gl_cv_c_amsterdam_compiler = yes; then
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
314 RANLIB=':'
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
315 else
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
316 dnl Use the ranlib program if it is available.
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
317 AC_PROG_RANLIB
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
318 fi
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
319 fi
c73d0845f357 Allow the user to override the choice of AR, ARFLAGS, RANLIB.
Bruno Haible <bruno@clisp.org>
parents: 15561
diff changeset
320 AC_SUBST([RANLIB])
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
321 ])
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 15411
diff changeset
322
9411
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
323 # AC_C_RESTRICT
17749
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
324 # This definition is copied from post-2.69 Autoconf and overrides the
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
325 # AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
326 # once autoconf >= 2.70 can be assumed. It's painful to check version
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
327 # numbers, and in practice this macro is more up-to-date than Autoconf
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
328 # is, so override Autoconf unconditionally.
9411
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
329 AC_DEFUN([AC_C_RESTRICT],
11007
f6cba5a556ce many *.m4 files: improve m4 quoting
Jim Meyering <meyering@redhat.com>
parents: 10658
diff changeset
330 [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
9411
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
331 [ac_cv_c_restrict=no
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
332 # The order here caters to the fact that C++ does not require restrict.
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
333 for ac_kw in __restrict __restrict__ _Restrict restrict; do
17749
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
334 AC_COMPILE_IFELSE(
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
335 [AC_LANG_PROGRAM(
39722
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
336 [[typedef int *int_ptr;
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
337 int foo (int_ptr $ac_kw ip) { return ip[0]; }
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
338 int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
339 int bar (int ip[$ac_kw]) { return ip[0]; }
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
340 ]],
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
341 [[int s[1];
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
342 int *$ac_kw t = s;
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
343 t[0] = 0;
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
344 return foo (t) + bar (t);
f7fc45eece35 Continue to use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 19596
diff changeset
345 ]])],
9411
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
346 [ac_cv_c_restrict=$ac_kw])
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
347 test "$ac_cv_c_restrict" != no && break
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
348 done
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
349 ])
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
350 AH_VERBATIM([restrict],
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
351 [/* Define to the equivalent of the C99 'restrict' keyword, or to
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
352 nothing if this is not supported. Do not define if restrict is
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
353 supported directly. */
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
354 #undef restrict
17749
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
355 /* Work around a bug in Sun C++: it does not support _Restrict or
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
356 __restrict__, even though the corresponding Sun C compiler ends up with
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
357 "#define restrict _Restrict" or "#define restrict __restrict__" in the
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
358 previous line. Perhaps some future version of Sun C++ will work with
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
359 restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
9411
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
360 #if defined __SUNPRO_CC && !defined __RESTRICT
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
361 # define _Restrict
17749
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
362 # define __restrict__
9411
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
363 #endif])
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
364 case $ac_cv_c_restrict in
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
365 restrict) ;;
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
366 no) AC_DEFINE([restrict], []) ;;
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
367 *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
5ea76912f0b5 Borrow an improved version of AC_C_RESTRICT from autoconf.
Bruno Haible <bruno@clisp.org>
parents: 7920
diff changeset
368 esac
17749
228d489fadb5 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
Paul Eggert <eggert@cs.ucla.edu>
parents: 17692
diff changeset
369 ])# AC_C_RESTRICT
11053
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
370
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
371 # gl_BIGENDIAN
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
372 # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd.
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
373 # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
374 # macros invoke AC_C_BIGENDIAN with arguments.
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
375 AC_DEFUN([gl_BIGENDIAN],
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
376 [
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
377 AC_C_BIGENDIAN
90ea94356c75 Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
378 ])
11229
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
379
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
380 # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it)
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
381 # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
382 # output a spurious "(cached)" mark in the midst of other configure output.
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
383 # This macro should be used instead of AC_CACHE_VAL when it is not surrounded
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
384 # by an AC_MSG_CHECKING/AC_MSG_RESULT pair.
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
385 AC_DEFUN([gl_CACHE_VAL_SILENT],
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
386 [
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
387 saved_as_echo_n="$as_echo_n"
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
388 as_echo_n=':'
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
389 AC_CACHE_VAL([$1], [$2])
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
390 as_echo_n="$saved_as_echo_n"
6dad92faecd1 Avoid spurious "(cached)" in configure output.
Bruno Haible <bruno@clisp.org>
parents: 11105
diff changeset
391 ])
17588
b1b3e9794cf9 include_next: port to autoconf 2.63
Eric Blake <eblake@redhat.com>
parents: 17576
diff changeset
392
b1b3e9794cf9 include_next: port to autoconf 2.63
Eric Blake <eblake@redhat.com>
parents: 17576
diff changeset
393 # AS_VAR_COPY was added in autoconf 2.63b
b1b3e9794cf9 include_next: port to autoconf 2.63
Eric Blake <eblake@redhat.com>
parents: 17576
diff changeset
394 m4_define_default([AS_VAR_COPY],
b1b3e9794cf9 include_next: port to autoconf 2.63
Eric Blake <eblake@redhat.com>
parents: 17576
diff changeset
395 [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])