1include(CheckCSourceCompiles)
2
3check_c_source_compiles("
4    int main()
5    {
6    #ifndef _FORTIFY_SOURCE
7        return 0;
8    #else
9        this_is_an_error;
10    #endif
11    }"
12    DODEFINE_FORTIFY_SOURCE)
13check_c_source_compiles("
14    #include <wchar.h>
15    mbstate_t x;
16    int main() { return 0; }"
17    HAVE_MBSTATE)
18if(NOT HAVE_MBSTATE)
19    check_c_source_compiles("
20        #define _XOPEN_SOURCE 500
21        #include <wchar.h>
22        mbstate_t x;
23        int main() { return 0; }"
24        DODEFINE_XOPEN_SOURCE)
25endif()
26check_c_source_compiles("
27    #define __EXTENSIONS__ 1
28    #include <stdio.h>
29    #ifdef HAVE_SYS_TYPES_H
30    # include <sys/types.h>
31    #endif
32    #ifdef HAVE_SYS_STAT_H
33    # include <sys/stat.h>
34    #endif
35    #ifdef STDC_HEADERS
36    # include <stdlib.h>
37    # include <stddef.h>
38    #else
39    # ifdef HAVE_STDLIB_H
40    #  include <stdlib.h>
41    # endif
42    #endif
43    #ifdef HAVE_STRING_H
44    # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
45    #  include <memory.h>
46    # endif
47    # include <string.h>
48    #endif
49    #ifdef HAVE_STRINGS_H
50    # include <strings.h>
51    #endif
52    #ifdef HAVE_INTTYPES_H
53    # include <inttypes.h>
54    #endif
55    #ifdef HAVE_STDINT_H
56    # include <stdint.h>
57    #endif
58    #ifdef HAVE_UNISTD_H
59    # include <unistd.h>
60    #endif
61    int main() { return 0; }"
62    DODEFINE_EXTENSIONS)
63
64add_definitions(
65    -D_DARWIN_C_SOURCE
66    -D_POSIX_PTHREAD_SEMANTICS
67    -D__STDC_WANT_IEC_60559_BFP_EXT__
68    -D__STDC_WANT_IEC_60559_DFP_EXT__
69    -D__STDC_WANT_IEC_60559_FUNCS_EXT__
70    -D__STDC_WANT_IEC_60559_TYPES_EXT__
71    -D__STDC_WANT_LIB_EXT2__
72    -D__STDC_WANT_MATH_SPEC_FUNCS__
73    -D_TANDEM_SOURCE)
74