Commit | Line | Data |
---|---|---|
b429a4ee GM |
1 | /* conf_post.h --- configure.ac includes this via AH_BOTTOM |
2 | ||
3 | Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2012 | |
4 | Free Software Foundation, Inc. | |
5 | ||
6 | This file is part of GNU Emacs. | |
7 | ||
8 | GNU Emacs is free software: you can redistribute it and/or modify | |
9 | it under the terms of the GNU General Public License as published by | |
10 | the Free Software Foundation, either version 3 of the License, or | |
11 | (at your option) any later version. | |
12 | ||
13 | GNU Emacs is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
19 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |
20 | ||
21 | /* Commentary: | |
22 | ||
23 | Rather than writing this code directly in AH_BOTTOM, we include it | |
24 | via this file. This is so that it does not get processed by | |
25 | autoheader. Eg, any undefs here would otherwise be commented out. | |
26 | */ | |
27 | ||
28 | /* Code: */ | |
29 | ||
30 | /* On AIX 3 this must be included before any other include file. */ | |
31 | #include <alloca.h> | |
32 | #if ! HAVE_ALLOCA | |
33 | # error "alloca not available on this machine" | |
34 | #endif | |
35 | ||
36 | #ifdef SIGNAL_H_AHB | |
37 | #undef SIGNAL_H_AHB | |
38 | #include <signal.h> | |
39 | #endif | |
40 | ||
41 | /* This silences a few compilation warnings on FreeBSD. */ | |
42 | #ifdef BSD_SYSTEM_AHB | |
43 | #undef BSD_SYSTEM_AHB | |
44 | #undef BSD_SYSTEM | |
45 | #if __FreeBSD__ == 1 | |
46 | #define BSD_SYSTEM 199103 | |
47 | #elif __FreeBSD__ == 2 | |
48 | #define BSD_SYSTEM 199306 | |
49 | #elif __FreeBSD__ >= 3 | |
50 | #define BSD_SYSTEM 199506 | |
51 | #endif | |
52 | #endif | |
53 | ||
c1529ded GM |
54 | /* We have to go this route, rather than the old hpux9 approach of |
55 | renaming the functions via macros. The system's stdlib.h has fully | |
56 | prototyped declarations, which yields a conflicting definition of | |
57 | srand48; it tries to redeclare what was once srandom to be srand48. | |
58 | So we go with HAVE_LRAND48 being defined. Note we also undef | |
59 | HAVE_RANDOM via configure. */ | |
60 | #ifdef HPUX | |
61 | #undef srandom | |
62 | #undef random | |
63 | #endif | |
64 | ||
b429a4ee GM |
65 | /* Define AMPERSAND_FULL_NAME if you use the convention |
66 | that & in the full name stands for the login id. */ | |
67 | /* Turned on June 1996 supposing nobody will mind it. */ | |
68 | #define AMPERSAND_FULL_NAME | |
69 | ||
70 | /* `subprocesses' should be defined if you want to | |
71 | have code for asynchronous subprocesses | |
72 | (as used in M-x compile and M-x shell). | |
73 | Only MSDOS does not support this (it overrides | |
74 | this in its config_opsysfile below). */ | |
75 | ||
76 | #define subprocesses | |
77 | ||
78 | /* Include the os dependent file. */ | |
79 | #ifdef config_opsysfile | |
80 | # include config_opsysfile | |
81 | #endif | |
82 | ||
83 | /* Mac OS X / GNUstep need a bit more pure memory. Of the existing knobs, | |
84 | SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */ | |
85 | #ifdef HAVE_NS | |
86 | #if defined NS_IMPL_GNUSTEP | |
87 | # define SYSTEM_PURESIZE_EXTRA 30000 | |
88 | #elif defined DARWIN_OS | |
89 | # define SYSTEM_PURESIZE_EXTRA 200000 | |
90 | #endif | |
91 | #endif | |
92 | ||
93 | #ifdef emacs /* Don't do this for lib-src. */ | |
94 | /* Tell regex.c to use a type compatible with Emacs. */ | |
95 | #define RE_TRANSLATE_TYPE Lisp_Object | |
96 | #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C) | |
97 | #ifdef make_number | |
98 | /* If make_number is a macro, use it. */ | |
99 | #define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0))) | |
100 | #else | |
101 | /* If make_number is a function, avoid it. */ | |
102 | #define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0)) | |
103 | #endif | |
104 | #endif | |
105 | ||
106 | #include <string.h> | |
107 | #include <stdlib.h> | |
108 | ||
109 | #if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */ | |
110 | #define NO_INLINE __attribute__((noinline)) | |
111 | #else | |
112 | #define NO_INLINE | |
113 | #endif | |
114 | ||
115 | #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) | |
116 | #define EXTERNALLY_VISIBLE __attribute__((externally_visible)) | |
117 | #else | |
118 | #define EXTERNALLY_VISIBLE | |
119 | #endif | |
120 | ||
121 | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) | |
122 | # define ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) | |
123 | #else | |
124 | # define ATTRIBUTE_FORMAT(spec) /* empty */ | |
125 | #endif | |
126 | ||
127 | #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) | |
128 | # define ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ | |
129 | ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) | |
130 | #else | |
131 | # define ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ | |
132 | ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) | |
133 | #endif | |
134 | ||
135 | #define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST | |
136 | ||
137 | /* Some versions of GNU/Linux define noinline in their headers. */ | |
138 | #ifdef noinline | |
139 | #undef noinline | |
140 | #endif | |
141 | ||
142 | /* conf_post.h ends here */ |