Mercurial > gnulib
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 |
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 | 7 AC_PREREQ([2.62]) |
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])]) |