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