]> code.delx.au - gnu-emacs/blob - admin/CPP-DEFINES
Merge from origin/emacs-25
[gnu-emacs] / admin / CPP-DEFINES
1 Here are some of the cpp macros used, together with some short explanation
2 of their use. Feel free to add more macros and more categories.
3 Most of these are from config.in, so it's probably better to put the
4 explanations in that file. Ideally, everything would be defined and
5 documented in config.in, and this file would not be necessary.
6
7
8 ** Distinguishing OSes **
9
10 AIX
11 _AIX
12 CYGWIN Compiling the Cygwin port.
13 __CYGWIN__ Ditto
14 GNU_LINUX
15 HPUX
16 IRIX6_5
17 MSDOS Compiling the MS-DOS port.
18 __MSDOS__ Ditto.
19 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
20 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
21 WINDOWSNT Compiling the native MS-Windows (W32) port.
22 __MINGW32__ Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
23 _MSC_VER Compiling the W32 port with the Microsoft C compiler.
24 MINGW_W64 Compiling the W32 port with the MinGW-w64 port of GCC.
25 DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
26 SOLARIS2
27 USG
28 USG5_4
29
30 ** Distinguishing GUIs **
31
32 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
33 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
34 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
35 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
36 HAVE_X11 Compile support for the X11 GUI.
37 HAVE_X_WINDOWS Compile support for X Window system
38 (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
39 be, and vice versa. At least, this is true for configure, and
40 msdos; not sure about nt.)
41 HAVE_X11R6
42 HAVE_X11R6_XIM
43 HAVE_X11XTR6
44 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
45 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
46 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
47
48 ** Frame types **
49
50 FRAME_TERMCAP_P A tty (character terminal) frame.
51 FRAME_X_P A frame on X Window system.
52 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
53 FRAME_W32_P A frame using native MS-Windows GUI.
54 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
55
56 ** Support for accessing other processes on the system **
57
58 HAVE_PROCFS The /proc filesystem is supported.
59
60 ** Compile-time options **
61
62 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
63 SYSTEM_MALLOC Use the system library's malloc.
64 subprocesses System can use subprocesses (for M-x shell for example).
65 Defined by default, only MSDOS undefines it.
66 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
67 on Lisp_Object use.
68
69 ** System specific macros
70 FIRST_PTY_LETTER
71 HAVE_PTYS
72 INTERRUPT_INPUT
73 NARROWPROTO
74 SEPCHAR
75 SYSTEM_TYPE
76
77 ** Misc macros
78 USER_FULL_NAME If defined, overrides the default pw->pw_gecos for
79 getting at the full user name. Only MSDOS overrides the default.
80
81 ** Miscellaneous defines. Some of these might not be used in the code
82 anymore, so they can be removed.
83
84 AMPERSAND_FULL_NAME
85 BROKEN_DATAGRAM_SOCKETS
86 BROKEN_FIONREAD
87 BROKEN_GET_CURRENT_DIR_NAME
88 BROKEN_PTY_READ_AFTER_EAGAIN
89 DEFAULT_SOUND_DEVICE
90 DEVICE_SEP
91 DIRECTORY_SEP
92 DONT_REOPEN_PTY
93 DOUG_LEA_MALLOC
94 EMACS_CONFIGURATION
95 EMACS_CONFIG_OPTIONS
96 EMACS_INT
97 EMACS_UINT
98 GC_MARK_SECONDARY_STACK
99 GC_MARK_STACK
100 GC_SETJMP_WORKS
101 GNU_MALLOC
102 HAVE_AIX_SMT_EXP
103 HAVE_ALARM
104 HAVE_ALLOCA
105 HAVE_ALLOCA_H
106 HAVE_ALSA
107 HAVE_ATTRIBUTE_ALIGNED
108 HAVE_BDFFONT
109 HAVE_BOXES
110 HAVE_C99_STRTOLD
111 HAVE_CFMAKERAW
112 HAVE_CFSETSPEED
113 HAVE_CLOCK_GETTIME
114 HAVE_CLOCK_SETTIME
115 HAVE_COFF_H
116 HAVE_COM_ERR_H
117 HAVE_COPYSIGN
118 HAVE_DBUS
119 HAVE_DBUS_TYPE_IS_VALID
120 HAVE_DBUS_VALIDATE_BUS_NAME
121 HAVE_DBUS_VALIDATE_INTERFACE
122 HAVE_DBUS_VALIDATE_MEMBER
123 HAVE_DBUS_VALIDATE_PATH
124 HAVE_DBUS_WATCH_GET_UNIX_FD
125 HAVE_DECL_GETENV
126 HAVE_DECL_LOCALTIME_R
127 HAVE_DECL_STRMODE
128 HAVE_DECL_STRTOIMAX
129 HAVE_DECL_STRTOLL
130 HAVE_DECL_STRTOULL
131 HAVE_DECL_STRTOUMAX
132 HAVE_DECL_SYS_SIGLIST
133 HAVE_DECL_TZNAME
134 HAVE_DECL___SYS_SIGLIST
135 HAVE_DIALOGS
136 HAVE_DIFFTIME
137 HAVE_DUP2
138 HAVE_ENDGRENT
139 HAVE_ENDPWENT
140 HAVE_ENVIRON_DECL
141 HAVE_EUIDACCESS
142 HAVE_FORK
143 HAVE_FREEIFADDRS
144 HAVE_FREETYPE
145 HAVE_FSEEKO
146 HAVE_FUTIMENS
147 HAVE_FUTIMES
148 HAVE_FUTIMESAT
149 HAVE_GAI_STRERROR
150 HAVE_GCONF
151 HAVE_GETADDRINFO
152 HAVE_GETDELIM
153 HAVE_GETGRENT
154 HAVE_GETHOSTNAME
155 HAVE_GETIFADDRS
156 HAVE_GETLINE
157 HAVE_GETLOADAVG
158 HAVE_GETOPT_H
159 HAVE_GETOPT_LONG_ONLY
160 HAVE_GETPAGESIZE
161 HAVE_GETPEERNAME
162 HAVE_GETPT
163 HAVE_GETPWENT
164 HAVE_GETRLIMIT
165 HAVE_GETRUSAGE
166 HAVE_GETSOCKNAME
167 HAVE_GETTIMEOFDAY
168 HAVE_GET_CURRENT_DIR_NAME
169 HAVE_GHOSTSCRIPT
170 HAVE_GIF
171 HAVE_GNUTLS
172 HAVE_GPM
173 HAVE_GRANTPT
174 HAVE_GSETTINGS
175 HAVE_GTK3
176 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
177 HAVE_GTK_DIALOG_GET_ACTION_AREA
178 HAVE_GTK_FILE_SELECTION_NEW
179 HAVE_GTK_MAIN
180 HAVE_GTK_MULTIDISPLAY
181 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
182 HAVE_GTK_WIDGET_GET_MAPPED
183 HAVE_GTK_WIDGET_GET_SENSITIVE
184 HAVE_GTK_WIDGET_GET_WINDOW
185 HAVE_GTK_WIDGET_SET_HAS_WINDOW
186 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
187 HAVE_G_TYPE_INIT
188 HAVE_H_ERRNO
189 HAVE_IFADDRS_H
190 HAVE_IMAGEMAGICK
191 HAVE_INET_SOCKETS
192 HAVE_INTTYPES_H
193 HAVE_JPEG
194 HAVE_KERBEROSIV_KRB_H
195 HAVE_KERBEROS_KRB_H
196 HAVE_KRB5_ERROR_E_TEXT
197 HAVE_KRB5_ERROR_TEXT
198 HAVE_KRB5_H
199 HAVE_KRB_H
200 HAVE_LANGINFO_CODESET
201 HAVE_LIBDGC
202 HAVE_LIBKSTAT
203 HAVE_LIBLOCKFILE
204 HAVE_LIBMAIL
205 HAVE_LIBOTF
206 HAVE_LIBPERFSTAT
207 HAVE_LIBPNG_PNG_H
208 HAVE_LIBSELINUX
209 HAVE_LIBXML2
210 HAVE_LIBXMU
211 HAVE_LOCALTIME_R
212 HAVE_LOCAL_SOCKETS
213 HAVE_LONG_FILE_NAMES
214 HAVE_LONG_LONG_INT
215 HAVE_LRAND48
216 HAVE_LSTAT
217 HAVE_LUTIMES
218 HAVE_M17N_FLT
219 HAVE_MACHINE_SOUNDCARD_H
220 HAVE_MACH_MACH_H
221 HAVE_MAGICKEXPORTIMAGEPIXELS
222 HAVE_MAGICKMERGEIMAGELAYERS
223 HAVE_MAILLOCK_H
224 HAVE_MALLOC_MALLOC_H
225 HAVE_MATHERR
226 HAVE_MBSTATE_T
227 HAVE_MEMCMP
228 HAVE_MEMMOVE
229 HAVE_MEMORY_H
230 HAVE_MEMSET
231 HAVE_MENUS
232 HAVE_MKSTEMP
233 HAVE_MMAP
234 HAVE_MULTILINGUAL_MENU
235 HAVE_NANOTIME
236 HAVE_NET_IF_DL_H
237 HAVE_NET_IF_H
238 HAVE_NLIST_H
239 HAVE_OTF_GET_VARIATION_GLYPHS
240 HAVE_PERSONALITY_LINUX32
241 HAVE_PNG
242 HAVE_PNG_H
243 HAVE_POSIX_MEMALIGN
244 HAVE_PROCFS
245 HAVE_PSELECT
246 HAVE_PSTAT_GETDYNAMIC
247 HAVE_PTHREAD
248 HAVE_PTHREAD_H
249 HAVE_PTHREAD_SIGMASK
250 HAVE_PTYS
251 HAVE_PTY_H
252 HAVE_PWD_H
253 HAVE_RANDOM
254 HAVE_READLINK
255 HAVE_READLINKAT
256 HAVE_RECVFROM
257 HAVE_RINT
258 HAVE_RSVG
259 HAVE_SELECT
260 HAVE_SENDTO
261 HAVE_SEQPACKET
262 HAVE_SETITIMER
263 HAVE_SETLOCALE
264 HAVE_SETRLIMIT
265 HAVE_SHARED_GAME_DIR
266 HAVE_SHUTDOWN
267 HAVE_SIGNED_${GLTYPE}
268 HAVE_SIGNED_SIG_ATOMIC_T
269 HAVE_SIGNED_WCHAR_T
270 HAVE_SIGNED_WINT_T
271 HAVE_SIGSET_T
272 HAVE_SNPRINTF
273 HAVE_SOCKETS
274 HAVE_SOUND
275 HAVE_SOUNDCARD_H
276 HAVE_STDINT_H
277 HAVE_STDIO_EXT_H
278 HAVE_STDLIB_H
279 HAVE_STLIB_H_1
280 HAVE_STRINGS_H
281 HAVE_STRING_H
282 HAVE_STRNCASECMP
283 HAVE_STRSIGNAL
284 HAVE_STRTOIMAX
285 HAVE_STRTOLL
286 HAVE_STRTOULL
287 HAVE_STRTOUMAX
288 HAVE_STRUCT_ERA_ENTRY
289 HAVE_STRUCT_IFREQ_IFR_ADDR
290 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
291 HAVE_STRUCT_IFREQ_IFR_BROADADDR
292 HAVE_STRUCT_IFREQ_IFR_FLAGS
293 HAVE_STRUCT_IFREQ_IFR_HWADDR
294 HAVE_STRUCT_IFREQ_IFR_NETMASK
295 HAVE_STRUCT_NLIST_N_UN_N_NAME
296 HAVE_STRUCT_STAT_ST_ATIMENSEC
297 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
298 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
299 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
300 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
301 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
302 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
303 HAVE_STRUCT_TIMEZONE
304 HAVE_STRUCT_TM_TM_ZONE
305 HAVE_STRUCT_UTIMBUF
306 HAVE_ST_DM_MODE
307 HAVE_SYMLINK
308 HAVE_SYNC
309 HAVE_SYS_BITYPES_H
310 HAVE_SYS_INTTYPES_H
311 HAVE_SYS_LOADAVG_H
312 HAVE_SYS_PARAM_H
313 HAVE_SYS_RESOURCE_H
314 HAVE_SYS_SELECT_H
315 HAVE_SYS_SOCKET_H
316 HAVE_SYS_SOUNDCARD_H
317 HAVE_SYS_STAT_H
318 HAVE_SYS_SYSTEMINFO_H
319 HAVE_SYS_TIMEB_H
320 HAVE_SYS_TIME_H
321 HAVE_SYS_TYPES_H
322 HAVE_SYS_UN_H
323 HAVE_SYS_UTSNAME_H
324 HAVE_SYS_VLIMIT_H
325 HAVE_SYS_WAIT_H
326 HAVE_TCATTR
327 HAVE_TERM_H
328 HAVE_TIFF
329 HAVE_TIMEVAL
330 HAVE_TM_GMTOFF
331 HAVE_TM_ZONE
332 HAVE_TOUCHLOCK
333 HAVE_TZNAME
334 HAVE_TZSET
335 HAVE_UNSIGNED_LONG_LONG_INT
336 HAVE_UTIL_H
337 HAVE_UTIMENSAT
338 HAVE_UTIMES
339 HAVE_UTIME_H
340 HAVE_UTMP_H
341 HAVE_VFORK
342 HAVE_VFORK_H
343 HAVE_WCHAR_H
344 HAVE_WCHAR_T
345 HAVE_WINDOW_SYSTEM
346 HAVE_WINSOCK2_H
347 HAVE_WORKING_FORK
348 HAVE_WORKING_UTIMES
349 HAVE_WORKING_VFORK
350 HAVE_WS2TCPIP_H
351 HAVE_XAW3D
352 HAVE_XFT
353 HAVE_XIM
354 HAVE_XPM
355 HAVE_XRMSETDATABASE
356 HAVE_XSCREENNUMBEROFSCREEN
357 HAVE_XSCREENRESOURCESTRING
358 HAVE_X_I18N
359 HAVE_X_MENU
360 HAVE_X_SM
361 HAVE_X_WINDOWS
362 HAVE__BOOL
363 HAVE__FTIME
364 HAVE___BUILTIN_UNWIND_INIT
365 HAVE___EXECUTABLE_START
366 HAVE___FPENDING
367 INTERNAL_TERMINAL
368 IS_ANY_SEP
369 IS_DIRECTORY_SEP
370 MAIL_USE_FLOCK
371 MAIL_USE_LOCKF
372 MAIL_USE_POP
373 MAIL_USE_SYSTEM_LOCK
374 MAXPATHLEN
375 NLIST_STRUCT
376 NO_EDITRES
377 NSIG
378 NSIG_MINIMUM
379 NULL_DEVICE
380 PAGESIZE
381 PREFER_VSUSP
382 PTY_ITERATION
383 PTY_NAME_SPRINTF
384 PTY_OPEN
385 PTY_TTY_NAME_SPRINTF
386 PURESIZE
387 RUN_TIME_REMAP
388 SETUP_SLAVE_PTY
389 SIGNALS_VIA_CHARACTERS
390 STDC_HEADERS
391 SYSTEM_PURESIZE_EXTRA
392 SYSTEM_MALLOC
393 TAB3
394 TABDLY
395 TERM
396 TIME_WITH_SYS_TIME
397 TIOCSIGSEND
398 TM_IN_SYS_TIME
399 UNIX98_PTYS
400 USE_TOOLKIT_SCROLL_BARS
401 USG_SUBTTY_WORKS
402 VALBITS
403 XOS_NEEDS_TIME_H
404 _FILE_OFFSET_BITS
405 _LP64
406 _longjmp
407 _setjmp
408 abort
409 alloca
410 close
411 emacs
412 free
413 gmtime
414 localtime
415 malloc
416 random
417 read
418 realloc
419 select
420 umask
421 vfork
422
423
424 src/sysdep.c:
425 write
426
427 src/syssignal.h:
428 signal
429 sigmask
430 sigsetmask
431
432
433 lib/dup2.c:
434 dup2
435
436 lib/signal.h:
437 signal
438
439 lib/stdio.h:
440 fdopen
441 fopen
442 fwrite
443 popen
444 rename
445
446 lib/stdlib.h:
447 calloc
448 srandom (conf_post.h may undo)
449
450 lib/strftime.c:
451 tzname
452 tzset
453
454 lib/sys/stat.h:
455 mkdir
456
457 lib/unistd.h:
458 chown
459 dup
460 dup2
461 ftruncate
462 isatty
463 link
464 lseek
465 pipe
466 rmdir
467 sleep
468 unlink
469
470
471 MS DOS stuff:
472
473 _NAIVE_DOS_REGS
474
475
476 MS stuff:
477
478 USE_CRT_DLL
479
480 ms-w32.h:
481 DebPrint
482 EMACSDEBUG
483 MUST_UNDEF__STDC__
484
485 _VARARGS_
486 _WINSOCKAPI_
487 _WINSOCK_H
488
489 access
490 calloc
491 chdir
492 chmod
493 chown
494 creat
495 ctime
496 dup
497 dup2
498 execlp
499 execvp (also emacsclient.c [WINDOWSNT])
500 fdopen
501 fileno
502 fopen
503 fsync
504 ftruncate
505 getdefdir
506 getdisk
507 getpid
508 isatty
509 kill
510 link
511 lseek
512 mkdir
513 mktemp
514 open
515 pclose
516 pipe
517 popen
518 rename
519 rmdir
520 signal
521 sleep
522 spawnve
523 strdup
524 stricmp
525 strnicmp
526 strupr
527 sys_nerr
528 tzname
529 tzset
530 umask
531 unlink
532 utimbuf
533 utime
534 wait (also movemail.c [WINDOWSNT])
535 write
536
537 lib-src/ntlib:
538 access
539 chdir
540 chmod
541 creat
542 dup
543 dup2
544 execlp
545 execvp
546 fdopen
547 fileno
548 fopen
549 getpid
550 index
551 isatty
552 lseek
553 mkdir
554 mktemp
555 open
556 pclose
557 pipe
558 popen
559 rmdir
560 rindex
561 sleep
562 umask
563 unlink
564 utime