]>
Commit | Line | Data |
---|---|---|
1 | # Sanity test a C compiler. | |
2 | ||
3 | # Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc. | |
4 | # | |
5 | # This program is free software: you can redistribute it and/or modify | |
6 | # it under the terms of the GNU General Public License as published by | |
7 | # the Free Software Foundation, either version 3 of the License, or | |
8 | # (at your option) any later version. | |
9 | # | |
10 | # This program is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU General Public License | |
16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 | ||
18 | # Written by Paul Eggert. | |
19 | ||
20 | AC_DEFUN([BISON_TEST_FOR_WORKING_C_COMPILER], [ | |
21 | AC_COMPILE_IFELSE( | |
22 | [AC_LANG_PROGRAM( | |
23 | [[#include <limits.h> | |
24 | int test_array[CHAR_BIT];]])], | |
25 | [], | |
26 | [AC_MSG_FAILURE([cannot compile a simple C program])]) | |
27 | AC_SUBST([BISON_C_WORKS], [:]) | |
28 | ]) | |
29 | ||
30 | # BISON_CHECK_WITH_POSIXLY_CORRECT(CODE) | |
31 | # -------------------------------------- | |
32 | # Run the Autoconf CODE with POSIXLY_CORRECT set to 1, and restored to | |
33 | # its initial value afterwards. | |
34 | AC_DEFUN([BISON_CHECK_WITH_POSIXLY_CORRECT], | |
35 | [gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' | |
36 | case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in | |
37 | xx) gl_had_POSIXLY_CORRECT=exported ;; | |
38 | x) gl_had_POSIXLY_CORRECT=yes ;; | |
39 | *) gl_had_POSIXLY_CORRECT= ;; | |
40 | esac | |
41 | POSIXLY_CORRECT=1 | |
42 | export POSIXLY_CORRECT | |
43 | $1 | |
44 | case $gl_had_POSIXLY_CORRECT in | |
45 | exported) ;; | |
46 | yes) AS_UNSET([POSIXLY_CORRECT]); POSIXLY_CORRECT=1 ;; | |
47 | *) AS_UNSET([POSIXLY_CORRECT]) ;; | |
48 | esac | |
49 | ]) | |
50 | ||
51 | # BISON_LANG_COMPILER_POSIXLY_CORRECT | |
52 | # ----------------------------------- | |
53 | # Whether the compiler for the current language supports -g in | |
54 | # POSIXLY_CORRECT mode. clang-2.9 on OS X does not, because | |
55 | # "clang-mp-2.9 -o test -g test.c" launches "/usr/bin/dsymutil test -o | |
56 | # test.dSYM" which fails with "error: unable to open executable '-o'". | |
57 | # | |
58 | # Sets <LANG>_COMPILER_POSIXLY_CORRECT to true/false. | |
59 | AC_DEFUN([BISON_LANG_COMPILER_POSIXLY_CORRECT], | |
60 | [AC_CACHE_CHECK([whether $_AC_CC supports POSIXLY_CORRECT=1], | |
61 | [bison_cv_[]_AC_LANG_ABBREV[]_supports_posixly_correct], | |
62 | [BISON_CHECK_WITH_POSIXLY_CORRECT( | |
63 | [AC_LINK_IFELSE([AC_LANG_PROGRAM], | |
64 | [bison_cv_[]_AC_LANG_ABBREV[]_supports_posixly_correct=yes], | |
65 | [bison_cv_[]_AC_LANG_ABBREV[]_supports_posixly_correct=no])])]) | |
66 | case $bison_cv_[]_AC_LANG_ABBREV[]_supports_posixly_correct in | |
67 | yes) AC_SUBST(_AC_LANG_PREFIX[_COMPILER_POSIXLY_CORRECT], [true]) ;; | |
68 | no) AC_SUBST(_AC_LANG_PREFIX[_COMPILER_POSIXLY_CORRECT], [false]);; | |
69 | esac | |
70 | ]) | |
71 | ||
72 | # BISON_C_COMPILER_POSIXLY_CORRECT | |
73 | # -------------------------------- | |
74 | # Whether the C compiler supports -g in POSIXLY_CORRECT mode. | |
75 | AC_DEFUN([BISON_C_COMPILER_POSIXLY_CORRECT], | |
76 | [AC_LANG_PUSH([C]) | |
77 | BISON_LANG_COMPILER_POSIXLY_CORRECT | |
78 | AC_LANG_POP([C]) | |
79 | ]) |