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