blob: 44de4cdbcebba12565d09224491f94f668827ba1 [file] [log] [blame]
Ying Wang5bdf3052012-09-20 10:06:33 -07001/*
2 * Copyright (C) 2005 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * Android config -- "Darwin". Used for X86 Mac OS X.
19 */
20#ifndef _ANDROID_CONFIG_H
21#define _ANDROID_CONFIG_H
22
23/*
24 * ===========================================================================
25 * !!! IMPORTANT !!!
26 * ===========================================================================
27 *
28 * This file is included by ALL C/C++ source files. Don't put anything in
29 * here unless you are absolutely certain it can't go anywhere else.
30 *
31 * Any C++ stuff must be wrapped with "#ifdef __cplusplus". Do not use "//"
32 * comments.
33 */
34
35/*
36 * Threading model. Choose one:
37 *
38 * HAVE_PTHREADS - use the pthreads library.
39 * HAVE_WIN32_THREADS - use Win32 thread primitives.
40 * -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX
41 */
42#define HAVE_PTHREADS
43
44/*
45 * Do we have the futex syscall?
46 */
47
48/* #define HAVE_FUTEX */
49
50/*
51 * Process creation model. Choose one:
52 *
53 * HAVE_FORKEXEC - use fork() and exec()
54 * HAVE_WIN32_PROC - use CreateProcess()
55 */
56#define HAVE_FORKEXEC
57
58/*
59 * Process out-of-memory adjustment. Set if running on Linux,
60 * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory
61 * badness adjustment.
62 */
63/* #define HAVE_OOM_ADJ */
64
65/*
66 * IPC model. Choose one:
67 *
68 * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget).
69 * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap).
70 * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping).
71 * HAVE_ANDROID_IPC - use Android versions (?, mmap).
72 */
73#define HAVE_MACOSX_IPC
74
75/*
76 * Memory-mapping model. Choose one:
77 *
78 * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h
79 * HAVE_WIN32_FILEMAP - use Win32 filemaps
80 */
81#define HAVE_POSIX_FILEMAP
82
83/*
84 * Define this if you have <termio.h>
85 */
86#define HAVE_TERMIO_H
87
88/*
89 * Define this if you have <sys/sendfile.h>
90 */
91/* #define HAVE_SYS_SENDFILE_H 1 */
92
93/*
94 * Define this if you build against MSVCRT.DLL
95 */
96/* #define HAVE_MS_C_RUNTIME */
97
98/*
99 * Define this if you have sys/uio.h
100 */
101#define HAVE_SYS_UIO_H
102
103/*
104 * Define this if your platforms implements symbolic links
105 * in its filesystems
106 */
107#define HAVE_SYMLINKS
108
109/*
110 * Define this if we have localtime_r().
111 */
112#define HAVE_LOCALTIME_R 1
113
114/*
115 * Define this if we have gethostbyname_r().
116 */
117/* #define HAVE_GETHOSTBYNAME_R */
118
119/*
120 * Define this if we have ioctl().
121 */
122/* #define HAVE_IOCTL */
123
124/*
125 * Define this if we want to use WinSock.
126 */
127/* #define HAVE_WINSOCK */
128
129/*
130 * Define this if have clock_gettime() and friends
131 */
132/* #define HAVE_POSIX_CLOCKS */
133
134/*
Ying Wang5bdf3052012-09-20 10:06:33 -0700135 * Endianness of the target machine. Choose one:
136 *
137 * HAVE_ENDIAN_H -- have endian.h header we can include.
138 * HAVE_LITTLE_ENDIAN -- we are little endian.
139 * HAVE_BIG_ENDIAN -- we are big endian.
140 */
141#if (defined(__ppc__) || defined(__ppc64__))
142# define HAVE_BIG_ENDIAN
143#elif (defined(__i386__) || defined(__x86_64__))
144# define HAVE_LITTLE_ENDIAN
145#endif
146
147/*
148 * We need to choose between 32-bit and 64-bit off_t. All of our code should
149 * agree on the same size. For desktop systems, use 64-bit values,
150 * because some of our libraries (e.g. wxWidgets) expect to be built that way.
151 */
152#define _FILE_OFFSET_BITS 64
153#define _LARGEFILE_SOURCE 1
154
155/*
156 * Define if platform has off64_t (and lseek64 and other xxx64 functions)
157 */
158/* #define HAVE_OFF64_T */
159
160/*
161 * Defined if we have the backtrace() call for retrieving a stack trace.
162 * Needed for CallStack to operate; if not defined, CallStack is
163 * non-functional.
164 */
165#define HAVE_BACKTRACE 0
166
167/*
Ying Wang5bdf3052012-09-20 10:06:33 -0700168 * Defined if we have the cxxabi.h header for demangling C++ symbols. If
169 * not defined, stack crawls will be displayed with raw mangled symbols
170 */
171#define HAVE_CXXABI 0
172
173/*
174 * Defined if we have the gettid() system call.
175 */
176/* #define HAVE_GETTID */
177
178
179/*
180 * Add any extra platform-specific defines here.
181 */
182#define _THREAD_SAFE
183
184/*
185 * Define if we have <malloc.h> header
186 */
187/* #define HAVE_MALLOC_H */
188
189/*
190 * Define if tm struct has tm_gmtoff field
191 */
192#define HAVE_TM_GMTOFF 1
193
194/*
195 * Define if dirent struct has d_type field
196 */
197#define HAVE_DIRENT_D_TYPE 1
198
199/*
200 * Define if we have madvise() in <sys/mman.h>
201 */
202#define HAVE_MADVISE 1
203
204/*
205 * Define if we include <sys/mount.h> for statfs()
206 */
207#define INCLUDE_SYS_MOUNT_FOR_STATFS 1
208
209/*
210 * What CPU architecture does this platform use?
211 */
212#if (defined(__ppc__) || defined(__ppc64__))
213# define ARCH_PPC
214#elif (defined(__i386__) || defined(__x86_64__))
215# define ARCH_X86
216#endif
217
218/*
219 * sprintf() format string for shared library naming.
220 */
221#define OS_SHARED_LIB_FORMAT_STR "lib%s.dylib"
222
223/*
224 * type for the third argument to mincore().
225 */
226#define MINCORE_POINTER_TYPE char *
227
228/*
229 * The default path separator for the platform
230 */
231#define OS_PATH_SEPARATOR '/'
232
233/*
234 * Is the filesystem case sensitive?
235 *
236 * For tools apps, we'll treat is as not case sensitive.
237 */
238/* #define OS_CASE_SENSITIVE */
239
240/*
241 * Define if <sys/socket.h> exists.
242 */
243#define HAVE_SYS_SOCKET_H 1
244
245/*
246 * Define if the strlcpy() function exists on the system.
247 */
248#define HAVE_STRLCPY 1
249
250/*
251 * Define if the open_memstream() function exists on the system.
252 */
253/* #define HAVE_OPEN_MEMSTREAM 1 */
254
255/*
256 * Define if the BSD funopen() function exists on the system.
257 */
258#define HAVE_FUNOPEN 1
259
260/*
261 * Define if writev() exists
262 */
263#define HAVE_WRITEV 1
264
265/*
266 * Define if <stdint.h> exists.
267 */
268#define HAVE_STDINT_H 1
269
270/*
271 * Define if <stdbool.h> exists.
272 */
273#define HAVE_STDBOOL_H 1
274
275/*
276 * Define if <sched.h> exists.
277 */
278#define HAVE_SCHED_H 1
279
280/*
281 * Define if pread() exists
282 */
283#define HAVE_PREAD 1
284
285/*
286 * Define if we have st_mtim in struct stat
287 */
288#define HAVE_STAT_ST_MTIM 1
289
290/*
291 * Define if printf() supports %zd for size_t arguments
292 */
293#define HAVE_PRINTF_ZD 1
294
295/*
296 * Define to 1 if <stdlib.h> provides qsort_r() with a BSD style function prototype.
297 */
298#define HAVE_BSD_QSORT_R 1
299
300/*
301 * Define to 1 if <stdlib.h> provides qsort_r() with a GNU style function prototype.
302 */
303#define HAVE_GNU_QSORT_R 0
304
305#endif /*_ANDROID_CONFIG_H*/