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